Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
3.0 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. Index.h
  5. Abstract:
  6. This module contains definitions common to only indexsup.c and viewsup.c
  7. Author:
  8. Tom Miller [TomM] 8-Jan-1996
  9. Revision History:
  10. --*/
  11. //
  12. // Define all private support routines. Documentation of routine interface
  13. // is with the routine itself.
  14. //
  15. VOID
  16. NtfsGrowLookupStack (
  17. IN PSCB Scb,
  18. IN OUT PINDEX_CONTEXT IndexContext,
  19. IN PINDEX_LOOKUP_STACK *Sp
  20. );
  21. BOOLEAN
  22. ReadIndexBuffer (
  23. IN PIRP_CONTEXT IrpContext,
  24. IN PSCB Scb,
  25. IN LONGLONG IndexBlock,
  26. IN BOOLEAN Reread,
  27. OUT PINDEX_LOOKUP_STACK Sp
  28. );
  29. PINDEX_ALLOCATION_BUFFER
  30. GetIndexBuffer (
  31. IN PIRP_CONTEXT IrpContext,
  32. IN PSCB Scb,
  33. OUT PINDEX_LOOKUP_STACK Sp,
  34. OUT PLONGLONG EndOfValidData
  35. );
  36. VOID
  37. DeleteIndexBuffer (
  38. IN PIRP_CONTEXT IrpContext,
  39. IN PSCB Scb,
  40. IN VCN IndexBlockNumber
  41. );
  42. VOID
  43. FindFirstIndexEntry (
  44. IN PIRP_CONTEXT IrpContext,
  45. IN PSCB Scb,
  46. IN PVOID Value,
  47. IN OUT PINDEX_CONTEXT IndexContext
  48. );
  49. BOOLEAN
  50. FindNextIndexEntry (
  51. IN PIRP_CONTEXT IrpContext,
  52. IN PSCB Scb,
  53. IN PVOID Value,
  54. IN BOOLEAN ValueContainsWildcards,
  55. IN BOOLEAN IgnoreCase,
  56. IN OUT PINDEX_CONTEXT IndexContext,
  57. IN BOOLEAN NextFlag,
  58. OUT PBOOLEAN MustRestart OPTIONAL
  59. );
  60. PATTRIBUTE_RECORD_HEADER
  61. FindMoveableIndexRoot (
  62. IN PIRP_CONTEXT IrpContext,
  63. IN PSCB Scb,
  64. IN OUT PINDEX_CONTEXT IndexContext
  65. );
  66. PINDEX_ENTRY
  67. BinarySearchIndex (
  68. IN PIRP_CONTEXT IrpContext,
  69. IN PSCB Scb,
  70. IN PINDEX_LOOKUP_STACK Sp,
  71. IN PVOID Value
  72. );
  73. BOOLEAN
  74. AddToIndex (
  75. IN PIRP_CONTEXT IrpContext,
  76. IN PSCB Scb,
  77. IN PINDEX_ENTRY InsertIndexEntry,
  78. IN OUT PINDEX_CONTEXT IndexContext,
  79. OUT PQUICK_INDEX QuickIndex OPTIONAL,
  80. IN BOOLEAN FindRoot
  81. );
  82. VOID
  83. InsertSimpleRoot (
  84. IN PIRP_CONTEXT IrpContext,
  85. IN PSCB Scb,
  86. IN PINDEX_ENTRY InsertIndexEntry,
  87. IN OUT PINDEX_CONTEXT IndexContext
  88. );
  89. VOID
  90. PushIndexRoot (
  91. IN PIRP_CONTEXT IrpContext,
  92. IN PSCB Scb,
  93. IN OUT PINDEX_CONTEXT IndexContext
  94. );
  95. VOID
  96. InsertSimpleAllocation (
  97. IN PIRP_CONTEXT IrpContext,
  98. IN PSCB Scb,
  99. IN PINDEX_ENTRY InsertIndexEntry,
  100. IN PINDEX_LOOKUP_STACK Sp,
  101. OUT PQUICK_INDEX QuickIndex OPTIONAL
  102. );
  103. PINDEX_ENTRY
  104. InsertWithBufferSplit (
  105. IN PIRP_CONTEXT IrpContext,
  106. IN PSCB Scb,
  107. IN PINDEX_ENTRY InsertIndexEntry,
  108. IN OUT PINDEX_CONTEXT IndexContext,
  109. OUT PQUICK_INDEX QuickIndex OPTIONAL
  110. );
  111. VOID
  112. DeleteFromIndex (
  113. IN PIRP_CONTEXT IrpContext,
  114. IN PSCB Scb,
  115. IN OUT PINDEX_CONTEXT IndexContext
  116. );
  117. VOID
  118. DeleteSimple (
  119. IN PIRP_CONTEXT IrpContext,
  120. IN PSCB Scb,
  121. IN PINDEX_ENTRY IndexEntry,
  122. IN OUT PINDEX_CONTEXT IndexContext
  123. );
  124. VOID
  125. PruneIndex (
  126. IN PIRP_CONTEXT IrpContext,
  127. IN PSCB Scb,
  128. IN OUT PINDEX_CONTEXT IndexContext,
  129. OUT PINDEX_ENTRY *DeleteEntry
  130. );