Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenrtltypes.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
1.7.6.1
|