ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

rtltypes.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  *                           Runtime Library Types                            *
00003  ******************************************************************************/
00004 
00005 $if (_WDMDDK_)
00006 #define RTL_REGISTRY_ABSOLUTE             0
00007 #define RTL_REGISTRY_SERVICES             1
00008 #define RTL_REGISTRY_CONTROL              2
00009 #define RTL_REGISTRY_WINDOWS_NT           3
00010 #define RTL_REGISTRY_DEVICEMAP            4
00011 #define RTL_REGISTRY_USER                 5
00012 #define RTL_REGISTRY_MAXIMUM              6
00013 #define RTL_REGISTRY_HANDLE               0x40000000
00014 #define RTL_REGISTRY_OPTIONAL             0x80000000
00015 
00016 /* RTL_QUERY_REGISTRY_TABLE.Flags */
00017 #define RTL_QUERY_REGISTRY_SUBKEY         0x00000001
00018 #define RTL_QUERY_REGISTRY_TOPKEY         0x00000002
00019 #define RTL_QUERY_REGISTRY_REQUIRED       0x00000004
00020 #define RTL_QUERY_REGISTRY_NOVALUE        0x00000008
00021 #define RTL_QUERY_REGISTRY_NOEXPAND       0x00000010
00022 #define RTL_QUERY_REGISTRY_DIRECT         0x00000020
00023 #define RTL_QUERY_REGISTRY_DELETE         0x00000040
00024 
00025 #define HASH_STRING_ALGORITHM_DEFAULT     0
00026 #define HASH_STRING_ALGORITHM_X65599      1
00027 #define HASH_STRING_ALGORITHM_INVALID     0xffffffff
00028 
00029 typedef struct _RTL_BITMAP {
00030   ULONG SizeOfBitMap;
00031   PULONG Buffer;
00032 } RTL_BITMAP, *PRTL_BITMAP;
00033 
00034 typedef struct _RTL_BITMAP_RUN {
00035   ULONG StartingIndex;
00036   ULONG NumberOfBits;
00037 } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
00038 
00039 _Function_class_(RTL_QUERY_REGISTRY_ROUTINE)
00040 _IRQL_requires_max_(PASSIVE_LEVEL)
00041 _IRQL_requires_same_
00042 typedef NTSTATUS
00043 (NTAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
00044   _In_z_ PWSTR ValueName,
00045   _In_ ULONG ValueType,
00046   _In_reads_bytes_opt_(ValueLength) PVOID ValueData,
00047   _In_ ULONG ValueLength,
00048   _In_opt_ PVOID Context,
00049   _In_opt_ PVOID EntryContext);
00050 
00051 typedef struct _RTL_QUERY_REGISTRY_TABLE {
00052   PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
00053   ULONG Flags;
00054   PCWSTR Name;
00055   PVOID EntryContext;
00056   ULONG DefaultType;
00057   PVOID DefaultData;
00058   ULONG DefaultLength;
00059 } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
00060 
00061 typedef struct _TIME_FIELDS {
00062   CSHORT Year;
00063   CSHORT Month;
00064   CSHORT Day;
00065   CSHORT Hour;
00066   CSHORT Minute;
00067   CSHORT Second;
00068   CSHORT Milliseconds;
00069   CSHORT Weekday;
00070 } TIME_FIELDS, *PTIME_FIELDS;
00071 
00072 /* Slist Header */
00073 #ifndef _SLIST_HEADER_
00074 #define _SLIST_HEADER_
00075 
00076 #if defined(_WIN64)
00077 
00078 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
00079   struct _SLIST_ENTRY *Next;
00080 } SLIST_ENTRY, *PSLIST_ENTRY;
00081 
00082 typedef struct _SLIST_ENTRY32 {
00083   ULONG Next;
00084 } SLIST_ENTRY32, *PSLIST_ENTRY32;
00085 
00086 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
00087   _ANONYMOUS_STRUCT struct {
00088     ULONGLONG Alignment;
00089     ULONGLONG Region;
00090   } DUMMYSTRUCTNAME;
00091   struct {
00092     ULONGLONG Depth:16;
00093     ULONGLONG Sequence:9;
00094     ULONGLONG NextEntry:39;
00095     ULONGLONG HeaderType:1;
00096     ULONGLONG Init:1;
00097     ULONGLONG Reserved:59;
00098     ULONGLONG Region:3;
00099   } Header8;
00100   struct {
00101     ULONGLONG Depth:16;
00102     ULONGLONG Sequence:48;
00103     ULONGLONG HeaderType:1;
00104     ULONGLONG Init:1;
00105     ULONGLONG Reserved:2;
00106     ULONGLONG NextEntry:60;
00107   } Header16;
00108   struct {
00109     ULONGLONG Depth:16;
00110     ULONGLONG Sequence:48;
00111     ULONGLONG HeaderType:1;
00112     ULONGLONG Reserved:3;
00113     ULONGLONG NextEntry:60;
00114   } HeaderX64;
00115 } SLIST_HEADER, *PSLIST_HEADER;
00116 
00117 typedef union _SLIST_HEADER32 {
00118   ULONGLONG Alignment;
00119   _ANONYMOUS_STRUCT struct {
00120     SLIST_ENTRY32 Next;
00121     USHORT Depth;
00122     USHORT Sequence;
00123   } DUMMYSTRUCTNAME;
00124 } SLIST_HEADER32, *PSLIST_HEADER32;
00125 
00126 #else
00127 
00128 #define SLIST_ENTRY SINGLE_LIST_ENTRY
00129 #define _SLIST_ENTRY _SINGLE_LIST_ENTRY
00130 #define PSLIST_ENTRY PSINGLE_LIST_ENTRY
00131 
00132 typedef SLIST_ENTRY SLIST_ENTRY32, *PSLIST_ENTRY32;
00133 
00134 typedef union _SLIST_HEADER {
00135   ULONGLONG Alignment;
00136   _ANONYMOUS_STRUCT struct {
00137     SLIST_ENTRY Next;
00138     USHORT Depth;
00139     USHORT Sequence;
00140   } DUMMYSTRUCTNAME;
00141 } SLIST_HEADER, *PSLIST_HEADER;
00142 
00143 typedef SLIST_HEADER SLIST_HEADER32, *PSLIST_HEADER32;
00144 
00145 #endif /* defined(_WIN64) */
00146 
00147 #endif /* _SLIST_HEADER_ */
00148 
00149 /* MS definition is broken! */
00150 extern BOOLEAN NTSYSAPI NlsMbCodePageTag;
00151 extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag;
00152 #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
00153 #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
00154 
00155 #define SHORT_LEAST_SIGNIFICANT_BIT       0
00156 #define SHORT_MOST_SIGNIFICANT_BIT        1
00157 
00158 #define LONG_LEAST_SIGNIFICANT_BIT        0
00159 #define LONG_3RD_MOST_SIGNIFICANT_BIT     1
00160 #define LONG_2ND_MOST_SIGNIFICANT_BIT     2
00161 #define LONG_MOST_SIGNIFICANT_BIT         3
00162 
00163 #define RTLVERLIB_DDI(x) Wdmlib##x
00164 
00165 typedef BOOLEAN
00166 (*PFN_RTL_IS_NTDDI_VERSION_AVAILABLE)(
00167   _In_ ULONG Version);
00168 
00169 typedef BOOLEAN
00170 (*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(
00171   _In_ ULONG Version);
00172 
00173 $endif (_WDMDDK_)
00174 $if (_NTDDK_)
00175 
00176 #ifndef _RTL_RUN_ONCE_DEF
00177 #define _RTL_RUN_ONCE_DEF
00178 
00179 #define RTL_RUN_ONCE_INIT {0}
00180 
00181 #define RTL_RUN_ONCE_CHECK_ONLY     0x00000001UL
00182 #define RTL_RUN_ONCE_ASYNC          0x00000002UL
00183 #define RTL_RUN_ONCE_INIT_FAILED    0x00000004UL
00184 
00185 #define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
00186 
00187 #define RTL_HASH_ALLOCATED_HEADER            0x00000001
00188 
00189 #define RTL_HASH_RESERVED_SIGNATURE 0
00190 
00191 /* RtlVerifyVersionInfo() ComparisonType */
00192 
00193 #define VER_EQUAL                       1
00194 #define VER_GREATER                     2
00195 #define VER_GREATER_EQUAL               3
00196 #define VER_LESS                        4
00197 #define VER_LESS_EQUAL                  5
00198 #define VER_AND                         6
00199 #define VER_OR                          7
00200 
00201 #define VER_CONDITION_MASK              7
00202 #define VER_NUM_BITS_PER_CONDITION_MASK 3
00203 
00204 /* RtlVerifyVersionInfo() TypeMask */
00205 
00206 #define VER_MINORVERSION                  0x0000001
00207 #define VER_MAJORVERSION                  0x0000002
00208 #define VER_BUILDNUMBER                   0x0000004
00209 #define VER_PLATFORMID                    0x0000008
00210 #define VER_SERVICEPACKMINOR              0x0000010
00211 #define VER_SERVICEPACKMAJOR              0x0000020
00212 #define VER_SUITENAME                     0x0000040
00213 #define VER_PRODUCT_TYPE                  0x0000080
00214 
00215 #define VER_NT_WORKSTATION              0x0000001
00216 #define VER_NT_DOMAIN_CONTROLLER        0x0000002
00217 #define VER_NT_SERVER                   0x0000003
00218 
00219 #define VER_PLATFORM_WIN32s             0
00220 #define VER_PLATFORM_WIN32_WINDOWS      1
00221 #define VER_PLATFORM_WIN32_NT           2
00222 
00223 typedef union _RTL_RUN_ONCE {
00224   PVOID Ptr;
00225 } RTL_RUN_ONCE, *PRTL_RUN_ONCE;
00226 
00227 _Function_class_(RTL_RUN_ONCE_INIT_FN)
00228 _IRQL_requires_same_
00229 typedef ULONG /* LOGICAL */
00230 (NTAPI *PRTL_RUN_ONCE_INIT_FN) (
00231   _Inout_ PRTL_RUN_ONCE RunOnce,
00232   _Inout_opt_ PVOID Parameter,
00233   _Inout_opt_ PVOID *Context);
00234 
00235 #endif /* _RTL_RUN_ONCE_DEF */
00236 
00237 typedef enum _TABLE_SEARCH_RESULT {
00238   TableEmptyTree,
00239   TableFoundNode,
00240   TableInsertAsLeft,
00241   TableInsertAsRight
00242 } TABLE_SEARCH_RESULT;
00243 
00244 typedef enum _RTL_GENERIC_COMPARE_RESULTS {
00245   GenericLessThan,
00246   GenericGreaterThan,
00247   GenericEqual
00248 } RTL_GENERIC_COMPARE_RESULTS;
00249 
00250 // Forwarder
00251 struct _RTL_AVL_TABLE;
00252 
00253 _IRQL_requires_same_
00254 _Function_class_(RTL_AVL_COMPARE_ROUTINE)
00255 typedef RTL_GENERIC_COMPARE_RESULTS
00256 (NTAPI RTL_AVL_COMPARE_ROUTINE) (
00257   _In_ struct _RTL_AVL_TABLE *Table,
00258   _In_ PVOID FirstStruct,
00259   _In_ PVOID SecondStruct);
00260 typedef RTL_AVL_COMPARE_ROUTINE *PRTL_AVL_COMPARE_ROUTINE;
00261 
00262 _IRQL_requires_same_
00263 _Function_class_(RTL_AVL_ALLOCATE_ROUTINE)
00264 __drv_allocatesMem(Mem)
00265 typedef PVOID
00266 (NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
00267   _In_ struct _RTL_AVL_TABLE *Table,
00268   _In_ CLONG ByteSize);
00269 typedef RTL_AVL_ALLOCATE_ROUTINE *PRTL_AVL_ALLOCATE_ROUTINE;
00270 
00271 _IRQL_requires_same_
00272 _Function_class_(RTL_AVL_FREE_ROUTINE)
00273 typedef VOID
00274 (NTAPI RTL_AVL_FREE_ROUTINE) (
00275   _In_ struct _RTL_AVL_TABLE *Table,
00276   _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer);
00277 typedef RTL_AVL_FREE_ROUTINE *PRTL_AVL_FREE_ROUTINE;
00278 
00279 _IRQL_requires_same_
00280 _Function_class_(RTL_AVL_MATCH_FUNCTION)
00281 typedef NTSTATUS
00282 (NTAPI RTL_AVL_MATCH_FUNCTION) (
00283   _In_ struct _RTL_AVL_TABLE *Table,
00284   _In_ PVOID UserData,
00285   _In_ PVOID MatchData);
00286 typedef RTL_AVL_MATCH_FUNCTION *PRTL_AVL_MATCH_FUNCTION;
00287 
00288 typedef struct _RTL_BALANCED_LINKS {
00289   struct _RTL_BALANCED_LINKS *Parent;
00290   struct _RTL_BALANCED_LINKS *LeftChild;
00291   struct _RTL_BALANCED_LINKS *RightChild;
00292   CHAR Balance;
00293   UCHAR Reserved[3];
00294 } RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
00295 
00296 typedef struct _RTL_AVL_TABLE {
00297   RTL_BALANCED_LINKS BalancedRoot;
00298   PVOID OrderedPointer;
00299   ULONG WhichOrderedElement;
00300   ULONG NumberGenericTableElements;
00301   ULONG DepthOfTree;
00302   PRTL_BALANCED_LINKS RestartKey;
00303   ULONG DeleteCount;
00304   PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
00305   PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
00306   PRTL_AVL_FREE_ROUTINE FreeRoutine;
00307   PVOID TableContext;
00308 } RTL_AVL_TABLE, *PRTL_AVL_TABLE;
00309 
00310 typedef struct _RTL_SPLAY_LINKS {
00311   struct _RTL_SPLAY_LINKS *Parent;
00312   struct _RTL_SPLAY_LINKS *LeftChild;
00313   struct _RTL_SPLAY_LINKS *RightChild;
00314 } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
00315 
00316 #ifndef RTL_USE_AVL_TABLES
00317 
00318 struct _RTL_GENERIC_TABLE;
00319 
00320 _IRQL_requires_same_
00321 _Function_class_(RTL_GENERIC_COMPARE_ROUTINE)
00322 typedef RTL_GENERIC_COMPARE_RESULTS
00323 (NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
00324   _In_ struct _RTL_GENERIC_TABLE *Table,
00325   _In_ PVOID FirstStruct,
00326   _In_ PVOID SecondStruct);
00327 typedef RTL_GENERIC_COMPARE_ROUTINE *PRTL_GENERIC_COMPARE_ROUTINE;
00328 
00329 _IRQL_requires_same_
00330 _Function_class_(RTL_GENERIC_ALLOCATE_ROUTINE)
00331 __drv_allocatesMem(Mem)
00332 typedef PVOID
00333 (NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
00334   _In_ struct _RTL_GENERIC_TABLE *Table,
00335   _In_ CLONG ByteSize);
00336 typedef RTL_GENERIC_ALLOCATE_ROUTINE *PRTL_GENERIC_ALLOCATE_ROUTINE;
00337 
00338 _IRQL_requires_same_
00339 _Function_class_(RTL_GENERIC_FREE_ROUTINE)
00340 typedef VOID
00341 (NTAPI RTL_GENERIC_FREE_ROUTINE) (
00342   _In_ struct _RTL_GENERIC_TABLE *Table,
00343   _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer);
00344 typedef RTL_GENERIC_FREE_ROUTINE *PRTL_GENERIC_FREE_ROUTINE;
00345 
00346 typedef struct _RTL_GENERIC_TABLE {
00347   PRTL_SPLAY_LINKS TableRoot;
00348   LIST_ENTRY InsertOrderList;
00349   PLIST_ENTRY OrderedPointer;
00350   ULONG WhichOrderedElement;
00351   ULONG NumberGenericTableElements;
00352   PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
00353   PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
00354   PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
00355   PVOID TableContext;
00356 } RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
00357 
00358 #endif /* !RTL_USE_AVL_TABLES */
00359 
00360 #ifdef RTL_USE_AVL_TABLES
00361 
00362 #undef  RTL_GENERIC_COMPARE_ROUTINE
00363 #undef PRTL_GENERIC_COMPARE_ROUTINE
00364 #undef  RTL_GENERIC_ALLOCATE_ROUTINE
00365 #undef PRTL_GENERIC_ALLOCATE_ROUTINE
00366 #undef  RTL_GENERIC_FREE_ROUTINE
00367 #undef PRTL_GENERIC_FREE_ROUTINE
00368 #undef  RTL_GENERIC_TABLE
00369 #undef PRTL_GENERIC_TABLE
00370 
00371 #define  RTL_GENERIC_COMPARE_ROUTINE     RTL_AVL_COMPARE_ROUTINE
00372 #define PRTL_GENERIC_COMPARE_ROUTINE    PRTL_AVL_COMPARE_ROUTINE
00373 #define  RTL_GENERIC_ALLOCATE_ROUTINE    RTL_AVL_ALLOCATE_ROUTINE
00374 #define PRTL_GENERIC_ALLOCATE_ROUTINE   PRTL_AVL_ALLOCATE_ROUTINE
00375 #define  RTL_GENERIC_FREE_ROUTINE        RTL_AVL_FREE_ROUTINE
00376 #define PRTL_GENERIC_FREE_ROUTINE       PRTL_AVL_FREE_ROUTINE
00377 #define  RTL_GENERIC_TABLE               RTL_AVL_TABLE
00378 #define PRTL_GENERIC_TABLE              PRTL_AVL_TABLE
00379 
00380 #endif /* RTL_USE_AVL_TABLES */
00381 
00382 #define RTL_HASH_ALLOCATED_HEADER 0x00000001
00383 
00384 typedef struct _RTL_DYNAMIC_HASH_TABLE_ENTRY {
00385   LIST_ENTRY Linkage;
00386   ULONG_PTR Signature;
00387 } RTL_DYNAMIC_HASH_TABLE_ENTRY, *PRTL_DYNAMIC_HASH_TABLE_ENTRY;
00388 
00389 typedef struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT {
00390   PLIST_ENTRY ChainHead;
00391   PLIST_ENTRY PrevLinkage;
00392   ULONG_PTR Signature;
00393 } RTL_DYNAMIC_HASH_TABLE_CONTEXT, *PRTL_DYNAMIC_HASH_TABLE_CONTEXT;
00394 
00395 typedef struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR {
00396   RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry;
00397   PLIST_ENTRY ChainHead;
00398   ULONG BucketIndex;
00399 } RTL_DYNAMIC_HASH_TABLE_ENUMERATOR, *PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR;
00400 
00401 typedef struct _RTL_DYNAMIC_HASH_TABLE {
00402   ULONG Flags;
00403   ULONG Shift;
00404   ULONG TableSize;
00405   ULONG Pivot;
00406   ULONG DivisorMask;
00407   ULONG NumEntries;
00408   ULONG NonEmptyBuckets;
00409   ULONG NumEnumerators;
00410   PVOID Directory;
00411 } RTL_DYNAMIC_HASH_TABLE, *PRTL_DYNAMIC_HASH_TABLE;
00412 
00413 typedef struct _OSVERSIONINFOA {
00414   ULONG dwOSVersionInfoSize;
00415   ULONG dwMajorVersion;
00416   ULONG dwMinorVersion;
00417   ULONG dwBuildNumber;
00418   ULONG dwPlatformId;
00419   CHAR szCSDVersion[128];
00420 } OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
00421 
00422 typedef struct _OSVERSIONINFOW {
00423   ULONG dwOSVersionInfoSize;
00424   ULONG dwMajorVersion;
00425   ULONG dwMinorVersion;
00426   ULONG dwBuildNumber;
00427   ULONG dwPlatformId;
00428   WCHAR szCSDVersion[128];
00429 } OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
00430 
00431 typedef struct _OSVERSIONINFOEXA {
00432   ULONG dwOSVersionInfoSize;
00433   ULONG dwMajorVersion;
00434   ULONG dwMinorVersion;
00435   ULONG dwBuildNumber;
00436   ULONG dwPlatformId;
00437   CHAR szCSDVersion[128];
00438   USHORT wServicePackMajor;
00439   USHORT wServicePackMinor;
00440   USHORT wSuiteMask;
00441   UCHAR wProductType;
00442   UCHAR wReserved;
00443 } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
00444 
00445 typedef struct _OSVERSIONINFOEXW {
00446   ULONG dwOSVersionInfoSize;
00447   ULONG dwMajorVersion;
00448   ULONG dwMinorVersion;
00449   ULONG dwBuildNumber;
00450   ULONG dwPlatformId;
00451   WCHAR szCSDVersion[128];
00452   USHORT wServicePackMajor;
00453   USHORT wServicePackMinor;
00454   USHORT wSuiteMask;
00455   UCHAR wProductType;
00456   UCHAR wReserved;
00457 } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
00458 
00459 #ifdef UNICODE
00460 typedef OSVERSIONINFOEXW OSVERSIONINFOEX;
00461 typedef POSVERSIONINFOEXW POSVERSIONINFOEX;
00462 typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;
00463 typedef OSVERSIONINFOW OSVERSIONINFO;
00464 typedef POSVERSIONINFOW POSVERSIONINFO;
00465 typedef LPOSVERSIONINFOW LPOSVERSIONINFO;
00466 #else
00467 typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
00468 typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
00469 typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
00470 typedef OSVERSIONINFOA OSVERSIONINFO;
00471 typedef POSVERSIONINFOA POSVERSIONINFO;
00472 typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
00473 #endif /* UNICODE */
00474 
00475 #define HASH_ENTRY_KEY(x)    ((x)->Signature)
00476 
00477 $endif (_NTDDK_)
00478 $if (_NTIFS_)
00479 
00480 #define RTL_SYSTEM_VOLUME_INFORMATION_FOLDER    L"System Volume Information"
00481 
00482 _Function_class_(RTL_ALLOCATE_STRING_ROUTINE)
00483 _IRQL_requires_max_(PASSIVE_LEVEL)
00484 __drv_allocatesMem(Mem)
00485 typedef PVOID
00486 (NTAPI *PRTL_ALLOCATE_STRING_ROUTINE)(
00487   _In_ SIZE_T NumberOfBytes);
00488 
00489 #if _WIN32_WINNT >= 0x0600
00490 _Function_class_(RTL_REALLOCATE_STRING_ROUTINE)
00491 _IRQL_requires_max_(PASSIVE_LEVEL)
00492 __drv_allocatesMem(Mem)
00493 typedef PVOID
00494 (NTAPI *PRTL_REALLOCATE_STRING_ROUTINE)(
00495   _In_ SIZE_T NumberOfBytes,
00496   IN PVOID Buffer);
00497 #endif
00498 
00499 typedef VOID
00500 (NTAPI *PRTL_FREE_STRING_ROUTINE)(
00501   _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer);
00502 
00503 extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine;
00504 extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine;
00505 
00506 #if _WIN32_WINNT >= 0x0600
00507 extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
00508 #endif
00509 
00510 _Function_class_(RTL_HEAP_COMMIT_ROUTINE)
00511 _IRQL_requires_same_
00512 typedef NTSTATUS
00513 (NTAPI *PRTL_HEAP_COMMIT_ROUTINE) (
00514   _In_ PVOID Base,
00515   _Inout_ PVOID *CommitAddress,
00516   _Inout_ PSIZE_T CommitSize);
00517 
00518 typedef struct _RTL_HEAP_PARAMETERS {
00519   ULONG Length;
00520   SIZE_T SegmentReserve;
00521   SIZE_T SegmentCommit;
00522   SIZE_T DeCommitFreeBlockThreshold;
00523   SIZE_T DeCommitTotalFreeThreshold;
00524   SIZE_T MaximumAllocationSize;
00525   SIZE_T VirtualMemoryThreshold;
00526   SIZE_T InitialCommit;
00527   SIZE_T InitialReserve;
00528   PRTL_HEAP_COMMIT_ROUTINE CommitRoutine;
00529   SIZE_T Reserved[2];
00530 } RTL_HEAP_PARAMETERS, *PRTL_HEAP_PARAMETERS;
00531 
00532 #if (NTDDI_VERSION >= NTDDI_WIN2K)
00533 
00534 typedef struct _GENERATE_NAME_CONTEXT {
00535   USHORT Checksum;
00536   BOOLEAN CheckSumInserted;
00537   _Field_range_(<=, 8) UCHAR NameLength;
00538   WCHAR NameBuffer[8];
00539   _Field_range_(<=, 4) ULONG ExtensionLength;
00540   WCHAR ExtensionBuffer[4];
00541   ULONG LastIndexValue;
00542 } GENERATE_NAME_CONTEXT, *PGENERATE_NAME_CONTEXT;
00543 
00544 typedef struct _PREFIX_TABLE_ENTRY {
00545   CSHORT NodeTypeCode;
00546   CSHORT NameLength;
00547   struct _PREFIX_TABLE_ENTRY *NextPrefixTree;
00548   RTL_SPLAY_LINKS Links;
00549   PSTRING Prefix;
00550 } PREFIX_TABLE_ENTRY, *PPREFIX_TABLE_ENTRY;
00551 
00552 typedef struct _PREFIX_TABLE {
00553   CSHORT NodeTypeCode;
00554   CSHORT NameLength;
00555   PPREFIX_TABLE_ENTRY NextPrefixTree;
00556 } PREFIX_TABLE, *PPREFIX_TABLE;
00557 
00558 typedef struct _UNICODE_PREFIX_TABLE_ENTRY {
00559   CSHORT NodeTypeCode;
00560   CSHORT NameLength;
00561   struct _UNICODE_PREFIX_TABLE_ENTRY *NextPrefixTree;
00562   struct _UNICODE_PREFIX_TABLE_ENTRY *CaseMatch;
00563   RTL_SPLAY_LINKS Links;
00564   PUNICODE_STRING Prefix;
00565 } UNICODE_PREFIX_TABLE_ENTRY, *PUNICODE_PREFIX_TABLE_ENTRY;
00566 
00567 typedef struct _UNICODE_PREFIX_TABLE {
00568   CSHORT NodeTypeCode;
00569   CSHORT NameLength;
00570   PUNICODE_PREFIX_TABLE_ENTRY NextPrefixTree;
00571   PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry;
00572 } UNICODE_PREFIX_TABLE, *PUNICODE_PREFIX_TABLE;
00573 
00574 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
00575 
00576 #if (NTDDI_VERSION >= NTDDI_WINXP)
00577 typedef struct _COMPRESSED_DATA_INFO {
00578   USHORT CompressionFormatAndEngine;
00579   UCHAR CompressionUnitShift;
00580   UCHAR ChunkShift;
00581   UCHAR ClusterShift;
00582   UCHAR Reserved;
00583   USHORT NumberOfChunks;
00584   ULONG CompressedChunkSizes[ANYSIZE_ARRAY];
00585 } COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
00586 #endif
00587 $endif (_NTIFS_)

Generated on Sat May 26 2012 04:29:45 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.