ReactOS  0.4.15-dev-440-g5f37b68
rtltypes.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  rtltypes.h
8 
9 Abstract:
10 
11  Type definitions for the Run-Time Library
12 
13 Author:
14 
15  Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16 
17 --*/
18 
19 #ifndef _RTLTYPES_H
20 #define _RTLTYPES_H
21 
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <mmtypes.h>
27 #include <ldrtypes.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 //
34 // Maximum Atom Length
35 //
36 #define RTL_MAXIMUM_ATOM_LENGTH 255
37 
38 //
39 // Process Parameters Flags
40 //
41 #define RTL_USER_PROCESS_PARAMETERS_NORMALIZED 0x01
42 #define RTL_USER_PROCESS_PARAMETERS_PROFILE_USER 0x02
43 #define RTL_USER_PROCESS_PARAMETERS_PROFILE_KERNEL 0x04
44 #define RTL_USER_PROCESS_PARAMETERS_PROFILE_SERVER 0x08
45 #define RTL_USER_PROCESS_PARAMETERS_UNKNOWN 0x10
46 #define RTL_USER_PROCESS_PARAMETERS_RESERVE_1MB 0x20
47 #define RTL_USER_PROCESS_PARAMETERS_RESERVE_16MB 0x40
48 #define RTL_USER_PROCESS_PARAMETERS_CASE_SENSITIVE 0x80
49 #define RTL_USER_PROCESS_PARAMETERS_DISABLE_HEAP_CHECKS 0x100
50 #define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_1 0x200
51 #define RTL_USER_PROCESS_PARAMETERS_PROCESS_OR_2 0x400
52 #define RTL_USER_PROCESS_PARAMETERS_PRIVATE_DLL_PATH 0x1000
53 #define RTL_USER_PROCESS_PARAMETERS_LOCAL_DLL_PATH 0x2000
54 #define RTL_USER_PROCESS_PARAMETERS_IMAGE_KEY_MISSING 0x4000
55 #define RTL_USER_PROCESS_PARAMETERS_NX 0x20000
56 
57 #define RTL_MAX_DRIVE_LETTERS 32
58 #define RTL_DRIVE_LETTER_VALID (USHORT)0x0001
59 
60 //
61 // End of Exception List
62 //
63 #define EXCEPTION_CHAIN_END ((PEXCEPTION_REGISTRATION_RECORD)-1)
64 
65 //
66 // Thread Error Mode Flags
67 //
68 /* Also defined in psdk/winbase.h */
69 #define SEM_FAILCRITICALERRORS 0x0001
70 #define SEM_NOGPFAULTERRORBOX 0x0002
71 #define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
72 #define SEM_NOOPENFILEERRORBOX 0x8000
73 
74 #define RTL_SEM_FAILCRITICALERRORS (SEM_FAILCRITICALERRORS << 4)
75 #define RTL_SEM_NOGPFAULTERRORBOX (SEM_NOGPFAULTERRORBOX << 4)
76 #define RTL_SEM_NOALIGNMENTFAULTEXCEPT (SEM_NOALIGNMENTFAULTEXCEPT << 4)
77 
78 //
79 // Range and Range List Flags
80 //
81 #define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
82 #define RTL_RANGE_LIST_ADD_SHARED 0x00000002
83 
84 #define RTL_RANGE_SHARED 0x01
85 #define RTL_RANGE_CONFLICT 0x02
86 
87 //
88 // Flags in RTL_ACTIVATION_CONTEXT_STACK_FRAME (from Checked NTDLL)
89 //
90 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_RELEASE_ON_DEACTIVATION 0x01
91 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_NO_DEACTIVATE 0x02
92 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_ON_FREE_LIST 0x04
93 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_HEAP_ALLOCATED 0x08
94 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_NOT_REALLY_ACTIVATED 0x10
95 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_ACTIVATED 0x20
96 #define RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_DEACTIVATED 0x40
97 
98 //
99 // Activation Context Frame Flags (from Checked NTDLL)
100 //
101 #define RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_FORMAT_WHISTLER 0x01
102 
103 //
104 // RtlActivateActivationContextEx Flags (from Checked NTDLL)
105 //
106 #define RTL_ACTIVATE_ACTIVATION_CONTEXT_EX_FLAG_RELEASE_ON_STACK_DEALLOCATION 0x01
107 
108 //
109 // RtlDeactivateActivationContext Flags (based on Win32 flag and name of above)
110 //
111 #define RTL_DEACTIVATE_ACTIVATION_CONTEXT_FLAG_FORCE_EARLY_DEACTIVATION 0x01
112 
113 //
114 // RtlQueryActivationContext Flags (based on Win32 flag and name of above)
115 //
116 #define RTL_QUERY_ACTIVATION_CONTEXT_FLAG_USE_ACTIVE_ACTIVATION_CONTEXT 0x01
117 #define RTL_QUERY_ACTIVATION_CONTEXT_FLAG_IS_HMODULE 0x02
118 #define RTL_QUERY_ACTIVATION_CONTEXT_FLAG_IS_ADDRESS 0x04
119 #define RTL_QUERY_ACTIVATION_CONTEXT_FLAG_NO_ADDREF 0x80000000
120 
121 //
122 // Public Heap Flags
123 //
124 #if !defined(NTOS_MODE_USER) && !defined(_NTIFS_)
125 #define HEAP_NO_SERIALIZE 0x00000001
126 #define HEAP_GROWABLE 0x00000002
127 #define HEAP_GENERATE_EXCEPTIONS 0x00000004
128 #define HEAP_ZERO_MEMORY 0x00000008
129 #define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010
130 #define HEAP_TAIL_CHECKING_ENABLED 0x00000020
131 #define HEAP_FREE_CHECKING_ENABLED 0x00000040
132 #define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080
133 #define HEAP_CREATE_ALIGN_16 0x00010000
134 #define HEAP_CREATE_ENABLE_TRACING 0x00020000
135 #define HEAP_CREATE_ENABLE_EXECUTE 0x00040000
136 #endif
137 
138 //
139 // User-Defined Heap Flags and Classes
140 //
141 #define HEAP_SETTABLE_USER_VALUE 0x00000100
142 #define HEAP_SETTABLE_USER_FLAG1 0x00000200
143 #define HEAP_SETTABLE_USER_FLAG2 0x00000400
144 #define HEAP_SETTABLE_USER_FLAG3 0x00000800
145 #define HEAP_SETTABLE_USER_FLAGS 0x00000E00
146 #define HEAP_CLASS_0 0x00000000
147 #define HEAP_CLASS_1 0x00001000
148 #define HEAP_CLASS_2 0x00002000
149 #define HEAP_CLASS_3 0x00003000
150 #define HEAP_CLASS_4 0x00004000
151 #define HEAP_CLASS_5 0x00005000
152 #define HEAP_CLASS_6 0x00006000
153 #define HEAP_CLASS_7 0x00007000
154 #define HEAP_CLASS_8 0x00008000
155 #define HEAP_CLASS_MASK 0x0000F000
156 
157 //
158 // Internal HEAP Structure Flags
159 //
160 #define HEAP_FLAG_PAGE_ALLOCS 0x01000000
161 #define HEAP_PROTECTION_ENABLED 0x02000000
162 #define HEAP_BREAK_WHEN_OUT_OF_VM 0x04000000
163 #define HEAP_NO_ALIGNMENT 0x08000000
164 #define HEAP_CAPTURE_STACK_BACKTRACES 0x08000000
165 #define HEAP_SKIP_VALIDATION_CHECKS 0x10000000
166 #define HEAP_VALIDATE_ALL_ENABLED 0x20000000
167 #define HEAP_VALIDATE_PARAMETERS_ENABLED 0x40000000
168 #define HEAP_LOCK_USER_ALLOCATED 0x80000000
169 
170 //
171 // Heap Validation Flags
172 //
173 #define HEAP_CREATE_VALID_MASK \
174  (HEAP_NO_SERIALIZE | \
175  HEAP_GROWABLE | \
176  HEAP_GENERATE_EXCEPTIONS | \
177  HEAP_ZERO_MEMORY | \
178  HEAP_REALLOC_IN_PLACE_ONLY | \
179  HEAP_TAIL_CHECKING_ENABLED | \
180  HEAP_FREE_CHECKING_ENABLED | \
181  HEAP_DISABLE_COALESCE_ON_FREE | \
182  HEAP_CLASS_MASK | \
183  HEAP_CREATE_ALIGN_16 | \
184  HEAP_CREATE_ENABLE_TRACING | \
185  HEAP_CREATE_ENABLE_EXECUTE)
186 #ifdef C_ASSERT
187 C_ASSERT(HEAP_CREATE_VALID_MASK == 0x0007F0FF);
188 #endif
189 
190 //
191 // Native image architecture
192 //
193 #if defined(_M_IX86)
194 #define IMAGE_FILE_MACHINE_NATIVE IMAGE_FILE_MACHINE_I386
195 #elif defined(_M_ARM)
196 #define IMAGE_FILE_MACHINE_NATIVE IMAGE_FILE_MACHINE_ARM
197 #elif defined(_M_AMD64)
198 #define IMAGE_FILE_MACHINE_NATIVE IMAGE_FILE_MACHINE_AMD64
199 #else
200 #error Define these please!
201 #endif
202 
203 //
204 // Registry Keys
205 //
206 #define RTL_REGISTRY_ABSOLUTE 0
207 #define RTL_REGISTRY_SERVICES 1
208 #define RTL_REGISTRY_CONTROL 2
209 #define RTL_REGISTRY_WINDOWS_NT 3
210 #define RTL_REGISTRY_DEVICEMAP 4
211 #define RTL_REGISTRY_USER 5
212 #define RTL_REGISTRY_MAXIMUM 6
213 #define RTL_REGISTRY_HANDLE 0x40000000
214 #define RTL_REGISTRY_OPTIONAL 0x80000000
215 #define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
216 #define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
217 #define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
218 #define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
219 #define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
220 #define RTL_QUERY_REGISTRY_DIRECT 0x00000020
221 #define RTL_QUERY_REGISTRY_DELETE 0x00000040
222 
223 //
224 // Versioning
225 //
226 #define VER_MINORVERSION 0x0000001
227 #define VER_MAJORVERSION 0x0000002
228 #define VER_BUILDNUMBER 0x0000004
229 #define VER_PLATFORMID 0x0000008
230 #define VER_SERVICEPACKMINOR 0x0000010
231 #define VER_SERVICEPACKMAJOR 0x0000020
232 #define VER_SUITENAME 0x0000040
233 #define VER_PRODUCT_TYPE 0x0000080
234 #define VER_PLATFORM_WIN32s 0
235 #define VER_PLATFORM_WIN32_WINDOWS 1
236 #define VER_PLATFORM_WIN32_NT 2
237 #define VER_EQUAL 1
238 #define VER_GREATER 2
239 #define VER_GREATER_EQUAL 3
240 #define VER_LESS 4
241 #define VER_LESS_EQUAL 5
242 #define VER_AND 6
243 #define VER_OR 7
244 #define VER_CONDITION_MASK 7
245 #define VER_NUM_BITS_PER_CONDITION_MASK 3
246 
247 //
248 // Timezone IDs
249 //
250 #define TIME_ZONE_ID_UNKNOWN 0
251 #define TIME_ZONE_ID_STANDARD 1
252 #define TIME_ZONE_ID_DAYLIGHT 2
253 
254 //
255 // Maximum Path Length
256 //
257 #define MAX_PATH 260
258 
259 //
260 // RTL Lock Type (Critical Section or Resource)
261 //
262 #define RTL_CRITSECT_TYPE 0
263 #define RTL_RESOURCE_TYPE 1
264 
265 //
266 // RtlAcquirePrivileges Flags
267 //
268 #define RTL_ACQUIRE_PRIVILEGE_IMPERSONATE 1
269 #define RTL_ACQUIRE_PRIVILEGE_PROCESS 2
270 
271 #ifdef NTOS_MODE_USER
272 
273 //
274 // String Hash Algorithms
275 //
276 #define HASH_STRING_ALGORITHM_DEFAULT 0
277 #define HASH_STRING_ALGORITHM_X65599 1
278 #define HASH_STRING_ALGORITHM_INVALID 0xffffffff
279 
280 //
281 // RtlDuplicateString Flags
282 //
283 #define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE 1
284 #define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING 2
285 
286 //
287 // RtlFindCharInUnicodeString Flags
288 //
289 #define RTL_FIND_CHAR_IN_UNICODE_STRING_START_AT_END 1
290 #define RTL_FIND_CHAR_IN_UNICODE_STRING_COMPLEMENT_CHAR_SET 2
291 #define RTL_FIND_CHAR_IN_UNICODE_STRING_CASE_INSENSITIVE 4
292 
293 //
294 // RtlDosApplyFileIsolationRedirection_Ustr Flags
295 //
296 #define RTL_DOS_APPLY_FILE_REDIRECTION_USTR_FLAG_RESPECT_DOT_LOCAL 0x01
297 
298 //
299 // Codepages
300 //
301 #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
302 #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
303 #define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
304 
305 //
306 // Activation Contexts
307 //
308 #define INVALID_ACTIVATION_CONTEXT ((PVOID)(LONG_PTR)-1)
309 
310 //
311 // C++ CONST casting
312 //
313 #if defined(__cplusplus)
314 #define RTL_CONST_CAST(type) const_cast<type>
315 #else
316 #define RTL_CONST_CAST(type) (type)
317 #endif
318 
319 //
320 // Constant String Macro
321 //
322 #define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
323 { \
324  sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
325  sizeof(__SOURCE_STRING__), \
326  (__SOURCE_STRING__) \
327 }
328 
329 //
330 // Constant Object Attributes Macro
331 //
332 #define RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a) \
333 { \
334  sizeof(OBJECT_ATTRIBUTES), \
335  NULL, \
336  RTL_CONST_CAST(PUNICODE_STRING)(n), \
337  a, \
338  NULL, \
339  NULL \
340 }
341 
342 #define RTL_INIT_OBJECT_ATTRIBUTES(n, a) \
343  RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a)
344 
345 #else /* NTOS_MODE_USER */
346 //
347 // Message Resource Flag
348 //
349 #define MESSAGE_RESOURCE_UNICODE 0x0001
350 
351 #endif /* !NTOS_MODE_USER */
352 
353 //
354 // RtlImageNtHeaderEx Flags
355 //
356 #define RTL_IMAGE_NT_HEADER_EX_FLAG_NO_RANGE_CHECK 0x00000001
357 
358 
359 #define MAXIMUM_LEADBYTES 12
360 
361 //
362 // RTL Debug Queries
363 //
364 #define RTL_DEBUG_QUERY_MODULES 0x01
365 #define RTL_DEBUG_QUERY_BACKTRACES 0x02
366 #define RTL_DEBUG_QUERY_HEAPS 0x04
367 #define RTL_DEBUG_QUERY_HEAP_TAGS 0x08
368 #define RTL_DEBUG_QUERY_HEAP_BLOCKS 0x10
369 #define RTL_DEBUG_QUERY_LOCKS 0x20
370 
371 //
372 // RTL Handle Flags
373 //
374 #define RTL_HANDLE_VALID 0x1
375 
376 //
377 // RTL Atom Flags
378 //
379 #define RTL_ATOM_IS_PINNED 0x1
380 
381 //
382 // Critical section lock bits
383 //
384 #define CS_LOCK_BIT 0x1
385 #define CS_LOCK_BIT_V 0x0
386 #define CS_LOCK_WAITER_WOKEN 0x2
387 #define CS_LOCK_WAITER_INC 0x4
388 
389 //
390 // Codepage Tags
391 //
392 #ifdef NTOS_MODE_USER
395 
396 //
397 // Constant String Macro
398 //
399 #define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
400 { \
401  sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
402  sizeof(__SOURCE_STRING__), \
403  (__SOURCE_STRING__) \
404 }
405 
406 #endif /* NTOS_MODE_USER */
407 
408 //
409 // Constant Large Integer Macro
410 //
411 #ifdef NONAMELESSUNION
412 C_ASSERT(FIELD_OFFSET(LARGE_INTEGER, u.LowPart) == 0);
413 #else
414 C_ASSERT(FIELD_OFFSET(LARGE_INTEGER, LowPart) == 0);
415 #endif
416 #define RTL_CONSTANT_LARGE_INTEGER(quad_part) { { (quad_part), (quad_part)>>32 } }
417 #define RTL_MAKE_LARGE_INTEGER(low_part, high_part) { { (low_part), (high_part) } }
418 
419 //
420 // Boot Status Data Field Types
421 //
422 typedef enum _RTL_BSD_ITEM_TYPE
423 {
442 
443 #ifdef NTOS_MODE_USER
444 //
445 // Table and Compare result types
446 //
447 typedef enum _TABLE_SEARCH_RESULT
448 {
454 
455 typedef enum _RTL_GENERIC_COMPARE_RESULTS
456 {
461 
462 #endif /* NTOS_MODE_USER */
463 
464 //
465 // RTL Path Types
466 //
467 typedef enum _RTL_PATH_TYPE
468 {
477 } RTL_PATH_TYPE;
478 
479 #ifndef NTOS_MODE_USER
480 
481 //
482 // Heap Information Class
483 //
485 {
489 
490 //
491 // Callback function for RTL Timers or Registered Waits
492 //
493 typedef VOID
495  PVOID pvContext,
496  BOOLEAN fTimerOrWaitFired
497 );
498 
499 //
500 // Handler during Vectored RTL Exceptions
501 //
502 typedef LONG
504  PEXCEPTION_POINTERS ExceptionPointers
505 );
506 
507 //
508 // Worker Thread Callback for Rtl
509 //
510 typedef VOID
513 );
514 
515 #else /* !NTOS_MODE_USER */
516 
517 //
518 // RTL Library Allocation/Free Routines
519 //
520 typedef PVOID
521 (NTAPI *PRTL_ALLOCATE_STRING_ROUTINE)(
523 );
524 
525 typedef PVOID
526 (NTAPI *PRTL_REALLOCATE_STRING_ROUTINE)(
528  PVOID Buffer
529 );
530 
531 typedef
532 VOID
534  PVOID Buffer
535 );
536 
537 extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine;
539 extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
540 
541 #endif /* NTOS_MODE_USER */
542 
543 //
544 // Unhandled Exception Filter
545 //
546 typedef ULONG
548  _In_ struct _EXCEPTION_POINTERS *ExceptionInfo
549 );
551 
552 //
553 // Callback for RTL Heap Enumeration
554 //
555 typedef NTSTATUS
557  _In_ PVOID HeapHandle,
558  _In_ PVOID UserParam
559 );
560 
561 //
562 // Thread and Process Start Routines for RtlCreateUserThread/Process
563 //
566 );
567 
568 typedef VOID
570  PTHREAD_START_ROUTINE StartAddress,
572 );
573 
574 //
575 // Worker Start/Exit Function
576 //
577 typedef NTSTATUS
581  _Out_ PHANDLE ThreadHandle
582 );
583 
584 typedef NTSTATUS
587 );
588 
589 //
590 // Declare empty structure definitions so that they may be referenced by
591 // routines before they are defined
592 //
593 struct _RTL_AVL_TABLE;
594 struct _RTL_GENERIC_TABLE;
595 struct _RTL_RANGE;
596 
597 //
598 // Routines and callbacks for the RTL AVL/Generic Table package
599 //
600 #ifdef NTOS_MODE_USER
601 typedef NTSTATUS
602 (NTAPI RTL_AVL_MATCH_FUNCTION)(
603  struct _RTL_AVL_TABLE *Table,
604  PVOID UserData,
606 );
607 typedef RTL_AVL_MATCH_FUNCTION *PRTL_AVL_MATCH_FUNCTION;
608 
610 (NTAPI RTL_AVL_COMPARE_ROUTINE) (
611  struct _RTL_AVL_TABLE *Table,
614 );
615 typedef RTL_AVL_COMPARE_ROUTINE *PRTL_AVL_COMPARE_ROUTINE;
616 
618 (NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
619  struct _RTL_GENERIC_TABLE *Table,
622 );
623 typedef RTL_GENERIC_COMPARE_ROUTINE *PRTL_GENERIC_COMPARE_ROUTINE;
624 
625 typedef PVOID
626 (NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
627  struct _RTL_GENERIC_TABLE *Table,
629 );
630 typedef RTL_GENERIC_ALLOCATE_ROUTINE *PRTL_GENERIC_ALLOCATE_ROUTINE;
631 
632 typedef PVOID
633 (NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
634  struct _RTL_AVL_TABLE *Table,
636 );
637 typedef RTL_AVL_ALLOCATE_ROUTINE *PRTL_AVL_ALLOCATE_ROUTINE;
638 
639 typedef VOID
640 (NTAPI RTL_GENERIC_FREE_ROUTINE) (
641  struct _RTL_GENERIC_TABLE *Table,
642  PVOID Buffer
643 );
644 typedef RTL_GENERIC_FREE_ROUTINE *PRTL_GENERIC_FREE_ROUTINE;
645 
646 typedef VOID
647 (NTAPI RTL_AVL_FREE_ROUTINE) (
648  struct _RTL_AVL_TABLE *Table,
649  PVOID Buffer
650 );
651 typedef RTL_AVL_FREE_ROUTINE *PRTL_AVL_FREE_ROUTINE;
652 
653 #ifdef RTL_USE_AVL_TABLES
654 #undef RTL_GENERIC_COMPARE_ROUTINE
655 #undef PRTL_GENERIC_COMPARE_ROUTINE
656 #undef RTL_GENERIC_ALLOCATE_ROUTINE
657 #undef PRTL_GENERIC_ALLOCATE_ROUTINE
658 #undef RTL_GENERIC_FREE_ROUTINE
659 #undef PRTL_GENERIC_FREE_ROUTINE
660 
661 #define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
662 #define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
663 #define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
664 #define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
665 #define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
666 #define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
667 #endif /* RTL_USE_AVL_TABLES */
668 
669 #endif /* NTOS_MODE_USER */
670 
671 //
672 // RTL Query Registry callback
673 //
674 #ifdef NTOS_MODE_USER
675 typedef NTSTATUS
683 );
684 #endif
685 
686 //
687 // RTL Secure Memory callbacks
688 //
689 #ifdef NTOS_MODE_USER
690 typedef NTSTATUS
691 (NTAPI *PRTL_SECURE_MEMORY_CACHE_CALLBACK)(
694 );
695 #endif
696 
697 //
698 // RTL Range List callbacks
699 //
700 #ifdef NTOS_MODE_USER
701 typedef BOOLEAN
702 (NTAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
703  PVOID Context,
704  struct _RTL_RANGE *Range
705 );
706 
707 //
708 // Custom Heap Commit Routine for RtlCreateHeap
709 //
710 typedef NTSTATUS
712  _In_ PVOID Base,
715 );
716 
717 //
718 // Parameters for RtlCreateHeap
719 //
720 typedef struct _RTL_HEAP_PARAMETERS
721 {
722  ULONG Length;
732  SIZE_T Reserved[2];
734 
735 //
736 // RTL Bitmap structures
737 //
738 typedef struct _RTL_BITMAP
739 {
741  PULONG Buffer;
743 
744 typedef struct _RTL_BITMAP_RUN
745 {
749 
750 //
751 // RtlGenerateXxxName context
752 //
753 typedef struct _GENERATE_NAME_CONTEXT
754 {
757  UCHAR NameLength;
758  WCHAR NameBuffer[8];
759  ULONG ExtensionLength;
763 
764 //
765 // RTL Splay and Balanced Links structures
766 //
767 typedef struct _RTL_SPLAY_LINKS
768 {
769  struct _RTL_SPLAY_LINKS *Parent;
770  struct _RTL_SPLAY_LINKS *LeftChild;
773 
774 typedef struct _RTL_BALANCED_LINKS
775 {
776  struct _RTL_BALANCED_LINKS *Parent;
779  CHAR Balance;
780  UCHAR Reserved[3];
782 
783 //
784 // RTL Avl/Generic Tables
785 //
786 #ifndef RTL_USE_AVL_TABLES
787 typedef struct _RTL_GENERIC_TABLE
788 {
799 #endif /* !RTL_USE_AVL_TABLES */
800 
801 typedef struct _RTL_AVL_TABLE
802 {
815 
816 #ifdef RTL_USE_AVL_TABLES
817 #undef RTL_GENERIC_TABLE
818 #undef PRTL_GENERIC_TABLE
819 
820 #define RTL_GENERIC_TABLE RTL_AVL_TABLE
821 #define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
822 #endif /* RTL_USE_AVL_TABLES */
823 
824 //
825 // RTL Compression Buffer
826 //
827 typedef struct _COMPRESSED_DATA_INFO {
832  UCHAR Reserved;
836 
837 //
838 // RtlQueryRegistry Data
839 //
840 typedef struct _RTL_QUERY_REGISTRY_TABLE
841 {
843  ULONG Flags;
844  PCWSTR Name;
850 
851 //
852 // RTL Unicode Table Structures
853 //
854 typedef struct _UNICODE_PREFIX_TABLE_ENTRY
855 {
863 
864 typedef struct _UNICODE_PREFIX_TABLE
865 {
871 
872 //
873 // Pfx* routines' table structures
874 //
875 typedef struct _PREFIX_TABLE_ENTRY
876 {
881  PSTRING Prefix;
883 
884 typedef struct _PREFIX_TABLE
885 {
890 
891 //
892 // Time Structure for RTL Time calls
893 //
894 typedef struct _TIME_FIELDS
895 {
896  CSHORT Year;
897  CSHORT Month;
898  CSHORT Day;
899  CSHORT Hour;
900  CSHORT Minute;
901  CSHORT Second;
903  CSHORT Weekday;
905 
906 //
907 // Activation Context Frame
908 //
910 {
913  ULONG Flags;
915 
916 typedef struct _RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_BASIC
917 {
918  SIZE_T Size;
919  ULONG Format;
921 } RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_BASIC, *PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_BASIC;
922 
923 typedef struct _RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED
924 {
925  SIZE_T Size;
926  ULONG Format;
928  PVOID Extra1;
929  PVOID Extra2;
930  PVOID Extra3;
931  PVOID Extra4;
932 } RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED, *PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED;
933 
934 typedef RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
935 typedef PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED PRTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
936 
937 typedef struct _RTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME
938 {
941  PVOID ActivationStackBackTrace[8];
942 } RTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME, *PRTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME;
943 
944 typedef struct _ACTIVATION_CONTEXT_DATA
945 {
946  ULONG Magic;
947  ULONG HeaderSize;
948  ULONG FormatVersion;
949  ULONG TotalSize;
950  ULONG DefaultTocOffset;
951  ULONG ExtendedTocOffset;
952  ULONG AssemblyRosterOffset;
953  ULONG Flags;
954 } ACTIVATION_CONTEXT_DATA, *PACTIVATION_CONTEXT_DATA;
955 
956 typedef struct _ACTIVATION_CONTEXT_STACK_FRAMELIST
957 {
958  ULONG Magic;
959  ULONG FramesInUse;
960  LIST_ENTRY Links;
961  ULONG Flags;
962  ULONG NotFramesInUse;
963  RTL_HEAP_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME Frames[32];
964 } ACTIVATION_CONTEXT_STACK_FRAMELIST, *PACTIVATION_CONTEXT_STACK_FRAMELIST;
965 
966 #endif /* NTOS_MODE_USER */
967 
968 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
970 {
977 #else
978 typedef struct _ACTIVATION_CONTEXT_STACK
979 {
980  ULONG Flags;
985 #endif
986 
987 //
988 // ACE Structure
989 //
990 typedef struct _ACE
991 {
994 } ACE, *PACE;
995 
996 //
997 // Information Structures for RTL Debug Functions
998 //
1000 {
1012 
1013 typedef struct _RTL_PROCESS_MODULES
1014 {
1018 
1020 {
1027 
1028 typedef struct _RTL_HEAP_TAG_INFO
1029 {
1034 
1036 {
1043 
1044 typedef struct _RTL_HEAP_USAGE
1045 {
1056 
1057 typedef struct _RTL_HEAP_WALK_ENTRY
1058 {
1064  union
1065  {
1066  struct
1067  {
1072  } Block;
1073  struct
1074  {
1079  } Segment;
1080  };
1082 
1083 typedef struct _RTL_HEAP_ENTRY
1084 {
1088  union
1089  {
1090  struct
1091  {
1094  } s1;
1095  struct
1096  {
1099  } s2;
1100  } u;
1102 
1103 typedef struct _RTL_HEAP_TAG
1104 {
1112 
1114 {
1129 
1130 typedef struct _RTL_PROCESS_HEAPS
1131 {
1135 
1137 {
1149 
1150 typedef struct _RTL_PROCESS_LOCKS
1151 {
1155 
1157 {
1164 
1166 {
1173 
1175 {
1179  //
1180  // Option array continues below
1181  //
1183 
1185 {
1198  union
1199  {
1202  };
1214 
1215 //
1216 // Fiber local storage data
1217 //
1218 #define RTL_FLS_MAXIMUM_AVAILABLE 128
1219 typedef struct _RTL_FLS_DATA
1220 {
1224 
1225 
1226 //
1227 // Unload Event Trace Structure for RtlGetUnloadEventTrace
1228 //
1229 #define RTL_UNLOAD_EVENT_TRACE_NUMBER 16
1230 
1232 {
1240 
1241 //
1242 // RTL Handle Structures
1243 //
1245 {
1246  union
1247  {
1250  };
1252 
1253 typedef struct _RTL_HANDLE_TABLE
1254 {
1263 
1264 //
1265 // RTL Boot Status Data Item
1266 //
1267 typedef struct _RTL_BSD_ITEM
1268 {
1273 
1274 //
1275 // Data Sub-Structures for "bootstat.dat" RTL Data File
1276 //
1278 {
1280  struct
1281  {
1287  } Flags;
1296 
1298 {
1305 
1307 {
1312  struct
1313  {
1316  } Flags;
1326 
1327 //
1328 // Main Structure for "bootstat.dat" RTL Data File
1329 //
1330 typedef struct _RTL_BSD_DATA
1331 {
1332  ULONG Version; // RtlBsdItemVersionNumber
1333  ULONG ProductType; // RtlBsdItemProductType
1334  BOOLEAN AabEnabled; // RtlBsdItemAabEnabled
1335  UCHAR AabTimeout; // RtlBsdItemAabTimeout
1336  BOOLEAN LastBootSucceeded; // RtlBsdItemBootGood
1337  BOOLEAN LastBootShutdown; // RtlBsdItemBootShutdown
1338  BOOLEAN SleepInProgress; // RtlBsdSleepInProgress
1340  UCHAR BootAttemptCount; // RtlBsdItemBootAttemptCount
1341  UCHAR LastBootCheckpoint; // RtlBsdItemBootCheckpoint
1342  UCHAR Checksum; // RtlBsdItemChecksum
1343  ULONG LastBootId; // RtlBsdItemBootId
1344  ULONG LastSuccessfulShutdownBootId; // RtlBsdItemShutdownBootId
1345  ULONG LastReportedAbnormalShutdownBootId; // RtlBsdItemReportedAbnormalShutdownBootId
1346  RTL_BSD_DATA_ERROR_INFO ErrorInfo; // RtlBsdItemErrorInfo
1347  RTL_BSD_POWER_BUTTON_PRESS_INFO PowerButtonPressInfo; // RtlBsdItemPowerButtonPressInfo
1349 
1350 #ifdef NTOS_MODE_USER
1351 //
1352 // Exception Record
1353 //
1354 typedef struct _EXCEPTION_REGISTRATION_RECORD
1355 {
1359 #endif /* NTOS_MODE_USER */
1360 
1361 //
1362 // Current Directory Structures
1363 //
1364 typedef struct _CURDIR
1365 {
1368 } CURDIR, *PCURDIR;
1369 
1370 typedef struct _RTLP_CURDIR_REF
1371 {
1375 
1376 typedef struct _RTL_RELATIVE_NAME_U
1377 {
1382 
1384 {
1390 
1392 {
1397 
1398 //
1399 // Private State structure for RtlAcquirePrivilege/RtlReleasePrivilege
1400 //
1401 typedef struct _RTL_ACQUIRE_STATE
1402 {
1410 
1411 #ifndef NTOS_MODE_USER
1412 
1413 //
1414 // RTL Critical Section Structures
1415 //
1417 {
1426 
1428 {
1436 
1437 #endif /* !NTOS_MODE_USER */
1438 
1439 //
1440 // RTL Private Heap Structures
1441 //
1442 typedef struct _HEAP_LOCK
1443 {
1444  union
1445  {
1447 #ifndef NTOS_MODE_USER
1449 #endif
1450  UCHAR Padding[0x68]; /* Max ERESOURCE size for x64 build. Needed because RTL is built only once */
1451  };
1452 } HEAP_LOCK, *PHEAP_LOCK;
1453 
1454 //
1455 // RTL Range List Structures
1456 //
1457 typedef struct _RTL_RANGE_LIST
1458 {
1464 
1465 typedef struct _RTL_RANGE
1466 {
1473 } RTL_RANGE, *PRTL_RANGE;
1474 
1475 typedef struct _RANGE_LIST_ITERATOR
1476 {
1482 
1483 //
1484 // RTL Resource
1485 //
1486 #define RTL_RESOURCE_FLAG_LONG_TERM ((ULONG)0x00000001)
1487 
1488 typedef struct _RTL_RESOURCE
1489 {
1500 
1501 //
1502 // Structures for RtlCreateUserProcess
1503 //
1504 typedef struct _RTL_USER_PROCESS_PARAMETERS
1505 {
1534 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
1536 #endif
1537 #if (NTDDI_VERSION >= NTDDI_WIN7)
1539 #endif
1541 
1543 {
1550 
1551 #if (NTDDI_VERSION >= NTDDI_WIN7)
1552 
1554 {
1559 
1560 typedef enum _RTL_UMSCTX_FLAGS
1561 {
1563 #if (NTDDI_VERSION < NTDDI_WIN8)
1564  UMSCTX_HAS_QUANTUM_REQ_BIT,
1565  UMSCTX_HAS_AFFINITY_REQ_BIT,
1566  UMSCTX_HAS_PRIORITY_REQ_BIT,
1567 #endif
1574 
1576 
1577 #define UMSCTX_SCHEDULED_THREAD_MASK (1 << UMSCTX_SCHEDULED_THREAD_BIT)
1578 #define UMSCTX_SUSPENDED_MASK (1 << UMSCTX_SUSPENDED_BIT)
1579 #define UMSCTX_VOLATILE_CONTEXT_MASK (1 << UMSCTX_VOLATILE_CONTEXT_BIT)
1580 #define UMSCTX_TERMINATED_MASK (1 << UMSCTX_TERMINATED_BIT)
1581 #define UMSCTX_DEBUG_ACTIVE_MASK (1 << UMSCTX_DEBUG_ACTIVE_BIT)
1582 #define UMSCTX_RUNNING_ON_SELF_THREAD_MASK (1 << UMSCTX_RUNNING_ON_SELF_THREAD_BIT)
1583 #define UMSCTX_DENY_RUNNING_ON_SELF_THREAD_MASK (1 << UMSCTX_DENY_RUNNING_ON_SELF_THREAD_BIT)
1584 
1585 //
1586 // UMS Context
1587 //
1588 typedef struct DECLSPEC_ALIGN(16) _RTL_UMS_CONTEXT
1589 {
1591  CONTEXT Context;
1592  PVOID Teb;
1593  PVOID UserContext;
1594  union
1595  {
1596  struct
1597  {
1598  ULONG ScheduledThread : 1;
1599 #if (NTDDI_VERSION < NTDDI_WIN8)
1600  ULONG HasQuantumReq : 1;
1601  ULONG HasAffinityReq : 1;
1602  ULONG HasPriorityReq : 1;
1603 #endif
1604  ULONG Suspended : 1;
1605  ULONG VolatileContext : 1;
1606  ULONG Terminated : 1;
1607  ULONG DebugActive : 1;
1608  ULONG RunningOnSelfThread : 1;
1609  ULONG DenyRunningOnSelfThread : 1;
1610 #if (NTDDI_VERSION < NTDDI_WIN8)
1611  ULONG ReservedFlags : 22;
1612 #endif
1613  };
1614  LONG Flags;
1615  };
1616  union
1617  {
1618  struct
1619  {
1620 #if (NTDDI_VERSION >= NTDDI_WIN8)
1621  ULONG64 KernelUpdateLock : 2;
1622 #else
1623  ULONG64 KernelUpdateLock : 1;
1624  ULONG64 Reserved : 1;
1625 #endif
1626  ULONG64 PrimaryClientID : 62;
1627  };
1628  ULONG64 ContextLock;
1629  };
1630 #if (NTDDI_VERSION < NTDDI_WIN8)
1631  ULONG64 QuantumValue;
1632  GROUP_AFFINITY AffinityMask;
1633  LONG Priority;
1634 #endif
1635  struct _RTL_UMS_CONTEXT* PrimaryUmsContext;
1636  ULONG SwitchCount;
1637  ULONG KernelYieldCount;
1638  ULONG MixedYieldCount;
1639  ULONG YieldCount;
1641 #endif // #if (NTDDI_VERSION >= NTDDI_WIN7)
1642 
1643 //
1644 // RTL Atom Table Structures
1645 //
1647 {
1656 
1657 typedef struct _RTL_ATOM_TABLE
1658 {
1660  union
1661  {
1662 #ifdef NTOS_MODE_USER
1664 #else
1666 #endif
1667  };
1668  union
1669  {
1670 #ifdef NTOS_MODE_USER
1671  RTL_HANDLE_TABLE RtlHandleTable;
1672 #else
1674 #endif
1675  };
1679 
1680 //
1681 // Timezone Information
1682 //
1684 {
1693 
1694 //
1695 // Hotpatch Header
1696 //
1697 typedef struct _RTL_PATCH_HEADER
1698 {
1704  struct _HOTPATCH_HEADER *HotpatchHeader;
1711 
1712 //
1713 // Header for NLS Files
1714 //
1715 typedef struct _NLS_FILE_HEADER
1716 {
1718  USHORT CodePage;
1726 
1727 //
1728 // Stack Traces
1729 //
1731 {
1738 
1739 
1741 {
1742  union
1743  {
1745 
1746  /* Padding for ERESOURCE */
1747 #if defined(_M_AMD64)
1748  UCHAR Padding[0x68];
1749 #else
1751 #endif
1752  } Lock;
1753 
1755 
1759 
1762 
1766 
1770 
1771 // Validate that our padding is big enough:
1772 #ifndef NTOS_MODE_USER
1773 #if defined(_M_AMD64)
1774 C_ASSERT(sizeof(ERESOURCE) <= 0x68);
1775 #else
1776 C_ASSERT(sizeof(ERESOURCE) <= 56);
1777 #endif
1778 #endif
1779 
1780 
1781 //
1782 // Trace Database
1783 //
1784 
1786 
1787 typedef struct _RTL_TRACE_BLOCK
1788 {
1798 
1799 typedef struct _RTL_TRACE_DATABASE
1800 {
1808 #ifdef NTOS_MODE_USER
1810 #else
1811  union
1812  {
1815  } u;
1816 #endif
1824 
1825 typedef struct _RTL_TRACE_SEGMENT
1826 {
1835 
1836 typedef struct _RTL_TRACE_ENUMERATE
1837 {
1842 
1843 //
1844 // Auto-Managed Rtl* String Buffer
1845 //
1846 typedef struct _RTL_BUFFER
1847 {
1855 
1857 {
1862 
1863 #ifndef NTOS_MODE_USER
1864 
1865 //
1866 // Message Resource Entry, Block and Data
1867 //
1869 {
1874 
1876 {
1881 
1883 {
1887 
1888 #endif /* !NTOS_MODE_USER */
1889 
1890 #ifdef NTOS_MODE_USER
1891 
1892 //
1893 // Memory Stream
1894 //
1895 #ifndef CONST_VTBL
1896 #ifdef CONST_VTABLE
1897 #define CONST_VTBL const
1898 #else
1899 #define CONST_VTBL
1900 #endif
1901 #endif
1902 
1903 struct IStreamVtbl;
1904 struct IStream;
1905 struct tagSTATSTG;
1906 
1907 typedef struct _RTL_MEMORY_STREAM RTL_MEMORY_STREAM, *PRTL_MEMORY_STREAM;
1908 
1909 typedef VOID
1910 (NTAPI *PRTL_MEMORY_STREAM_FINAL_RELEASE_ROUTINE)(
1911  _In_ PRTL_MEMORY_STREAM Stream
1912 );
1913 
1914 struct _RTL_MEMORY_STREAM
1915 {
1916  CONST_VTBL struct IStreamVtbl *Vtbl;
1917  LONG RefCount;
1918  ULONG Unk1;
1919  PVOID Current;
1920  PVOID Start;
1921  PVOID End;
1922  PRTL_MEMORY_STREAM_FINAL_RELEASE_ROUTINE FinalRelease;
1924 };
1925 
1926 #endif /* NTOS_MODE_USER */
1927 
1928 #ifdef __cplusplus
1929 }
1930 #endif
1931 
1932 #endif /* !_RTLTYPES_H */
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
PHANDLE_TABLE ExHandleTable
Definition: rtltypes.h:1673
UCHAR BootAttemptCount
Definition: rtltypes.h:1340
struct _RTLP_CURDIR_REF RTLP_CURDIR_REF
USHORT Weekday
Definition: env_spec_w32.h:718
signed char * PCHAR
Definition: retypes.h:7
BOOLEAN CheckSumInserted
Definition: rtltypes.h:595
struct _RTL_TRACE_SEGMENT * SegmentList
Definition: rtltypes.h:1804
struct _RTL_HEAP_TAG_INFO RTL_HEAP_TAG_INFO
enum _RTL_UMSCTX_FLAGS * PRTL_UMSCTX_FLAGS
FAST_MUTEX FastMutex
Definition: rtltypes.h:1665
PULONG Buffer
Definition: typedefs.h:90
struct _RTL_BALANCED_LINKS * PRTL_BALANCED_LINKS
PSTRING Prefix
Definition: rtltypes.h:608
RTL_GENERIC_COMPARE_ROUTINE * PRTL_GENERIC_COMPARE_ROUTINE
Definition: rtltypes.h:448
enum _RTL_PATH_TYPE RTL_PATH_TYPE
const uint16_t * PCWSTR
Definition: typedefs.h:56
struct _RTL_TRACE_ENUMERATE RTL_TRACE_ENUMERATE
struct _RTL_RESOURCE RTL_RESOURCE
Definition: rtltypes.h:1730
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
Definition: rtltypes.h:381
SIZE_T BytesReserved
Definition: rtltypes.h:1049
Definition: rtltypes.h:1646
LIST_ENTRY PatchList
Definition: rtltypes.h:1699
struct _RTL_PROCESS_BACKTRACE_INFORMATION * PRTL_PROCESS_BACKTRACE_INFORMATION
USHORT TagIndex
Definition: rtltypes.h:1041
ASMGENDATA Table[]
Definition: genincdata.c:61
ULONG NumberOfAllocations
Definition: rtltypes.h:1105
Definition: rtltypes.h:1868
PVOID LastEntry
Definition: rtltypes.h:1078
struct _EXCEPTION_REGISTRATION_RECORD * Next
Definition: compat.h:395
RTL_GENERIC_ALLOCATE_ROUTINE * PRTL_GENERIC_ALLOCATE_ROUTINE
Definition: rtltypes.h:457
ULONG TraceCount
Definition: rtltypes.h:1733
UCHAR OverheadBytes
Definition: rtltypes.h:1061
struct _RTL_QUERY_REGISTRY_TABLE * PRTL_QUERY_REGISTRY_TABLE
UCHAR NameLength
Definition: rtltypes.h:1653
PRTL_PROCESS_MODULES Modules
Definition: rtltypes.h:1200
USHORT TagIndex
Definition: rtltypes.h:1108
struct _RTL_PROCESS_VERIFIER_OPTIONS * PRTL_PROCESS_VERIFIER_OPTIONS
struct _UNICODE_PREFIX_TABLE_ENTRY * NextPrefixTree
Definition: rtltypes.h:620
USHORT CodePage
Definition: precomp.h:21
LIST_ENTRY FrameListCache
Definition: rtltypes.h:972
BOOLEAN LastBootShutdown
Definition: rtltypes.h:1337
SIZE_T BytesReservedMaximum
Definition: rtltypes.h:1050
struct _RTL_BSD_ITEM RTL_BSD_ITEM
struct _RTL_HANDLE_TABLE * PRTL_HANDLE_TABLE
struct _RTL_ATOM_TABLE_ENTRY * PRTL_ATOM_TABLE_ENTRY
USHORT UniDefaultChar
Definition: precomp.h:24
struct _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK
CSHORT NodeTypeCode
Definition: rtltypes.h:612
BOOLEAN NLS_MB_OEM_CODE_PAGE_TAG
PVOID DataAddress
Definition: rtltypes.h:1059
Definition: ntbasedef.h:635
SIZE_T Size
Definition: rtltypes.h:1850
BOOLEAN NLS_MB_CODE_PAGE_TAG
PRTL_STACK_TRACE_ENTRY Buckets[ANYSIZE_ARRAY]
Definition: rtltypes.h:1768
enum _RTL_UMS_SCHEDULER_REASON * PRTL_UMS_SCHEDULER_REASON
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
struct _UNICODE_PREFIX_TABLE * PUNICODE_PREFIX_TABLE
SIZE_T Size
Definition: rtltypes.h:1085
_RTL_PATH_TYPE
Definition: rtltypes.h:467
USHORT Flags
Definition: rtltypes.h:1086
ULONGLONG Start
Definition: rtltypes.h:1467
struct _PREFIX_TABLE PREFIX_TABLE
PLIST_ENTRY RangeListHead
Definition: rtltypes.h:1477
UNICODE_STRING WindowTitle
Definition: rtltypes.h:1529
PRTL_HANDLE_TABLE_ENTRY FreeHandles
Definition: rtltypes.h:1258
_Inout_ PVOID _Inout_ PSIZE_T CommitSize
Definition: rtltypes.h:574
PRTL_HEAP_TAG Tags
Definition: rtltypes.h:1126
struct _CURDIR * PCURDIR
_RTL_BSD_ITEM_TYPE
Definition: rtltypes.h:422
uint16_t * PWSTR
Definition: typedefs.h:55
LONG(NTAPI * PVECTORED_EXCEPTION_HANDLER)(PEXCEPTION_POINTERS ExceptionPointers)
Definition: rtltypes.h:503
PLIST_ENTRY MergedHead
Definition: rtltypes.h:1478
ULONG DepthOfTree
Definition: rtltypes.h:422
RTL_DRIVE_LETTER_CURDIR CurrentDirectories[RTL_MAX_DRIVE_LETTERS]
Definition: rtltypes.h:1533
USHORT HeaderSize
Definition: precomp.h:20
struct _RTL_FLS_DATA * PRTL_FLS_DATA
struct _RTL_BALANCED_LINKS RTL_BALANCED_LINKS
PUNICODE_STRING Prefix
Definition: rtltypes.h:623
struct _ACE ACE
PRTL_HEAP_COMMIT_ROUTINE CommitRoutine
Definition: nt_native.h:1676
unsigned char * PUCHAR
Definition: retypes.h:3
struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD
ULONG(NTAPI * RTL_TRACE_HASH_FUNCTION)(ULONG Count, PVOID *Trace)
Definition: rtltypes.h:1785
char CHAR
Definition: xmlstorage.h:175
struct DECLSPEC_ALIGN(16) _RTL_UMS_CONTEXT
Definition: rtltypes.h:1588
struct _RTL_PROCESS_MODULES * PRTL_PROCESS_MODULES
struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME * Previous
Definition: winternl.h:249
HANDLE ContainingDirectory
Definition: rtltypes.h:1379
struct _ACE * PACE
struct _RTL_HEAP_ENTRY::@2619::@2620 s1
PRTL_HEAP_USAGE_ENTRY Entries
Definition: rtltypes.h:1051
enum _TABLE_SEARCH_RESULT TABLE_SEARCH_RESULT
struct _RTL_BSD_DATA_ERROR_INFO * PRTL_BSD_DATA_ERROR_INFO
enum _RTL_UMS_SCHEDULER_REASON RTL_UMS_SCHEDULER_REASON
LONG NTSTATUS
Definition: precomp.h:26
#define HEAP_CREATE_VALID_MASK
Definition: rtltypes.h:173
struct _RTL_DEBUG_INFORMATION RTL_DEBUG_INFORMATION
UCHAR Flags
Definition: rtltypes.h:1652
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2373
_In_ KPRIORITY Priority
Definition: kefuncs.h:503
struct _RTL_BSD_DATA RTL_BSD_DATA
ULONG NumberOfBuckets
Definition: rtltypes.h:1676
struct _RTL_ATOM_TABLE * PRTL_ATOM_TABLE
USHORT Atom
Definition: rtltypes.h:1650
struct _RTL_BSD_ITEM * PRTL_BSD_ITEM
UCHAR OldPrivBuffer[1024]
Definition: rtltypes.h:1408
ULONG DeleteCount
Definition: rtltypes.h:424
struct _RTL_USER_PROCESS_INFORMATION RTL_USER_PROCESS_INFORMATION
_RTL_UMS_SCHEDULER_REASON
Definition: rtltypes.h:1553
struct _RTL_BITMAP_RUN * PRTL_BITMAP_RUN
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
PVOID CurrentUpperCommitLimit
Definition: rtltypes.h:1758
ULONG MaximumNumberOfHandles
Definition: rtltypes.h:1255
struct _RTL_DRIVE_LETTER_CURDIR RTL_DRIVE_LETTER_CURDIR
struct _RTL_HEAP_WALK_ENTRY::@2615::@2618 Segment
struct _PREFIX_TABLE_ENTRY * NextPrefixTree
Definition: rtltypes.h:606
VOID(NTAPI * WAITORTIMERCALLBACKFUNC)(PVOID pvContext, BOOLEAN fTimerOrWaitFired)
Definition: rtltypes.h:494
ULONG TimeoutBoost
Definition: rtltypes.h:1497
struct _RTL_TRACE_SEGMENT * NextSegment
Definition: rtltypes.h:1829
struct _RTL_TIME_ZONE_INFORMATION * PRTL_TIME_ZONE_INFORMATION
SIZE_T Settable
Definition: rtltypes.h:1068
UCHAR Checksum
Definition: rtltypes.h:1342
* PRTL_BITMAP
Definition: rtltypes.h:32
struct _HEAP_LOCK HEAP_LOCK
* PRTL_UMS_CONTEXT
Definition: rtltypes.h:1640
ULONG LastReportedAbnormalShutdownBootId
Definition: rtltypes.h:1345
UNICODE_STRING ShellInfo
Definition: rtltypes.h:1531
USHORT CreatorBackTraceIndex
Definition: rtltypes.h:1109
struct _RTL_TRACE_DATABASE * Database
Definition: rtltypes.h:1828
FAST_MUTEX FastMutex
Definition: rtltypes.h:1814
USHORT TagIndex
Definition: rtltypes.h:1069
ACCESS_MASK AccessMask
Definition: rtltypes.h:993
ULONG DeCommitFreeBlockThreshold
Definition: nt_native.h:1670
struct _RTL_RANGE * PRTL_RANGE
struct _RTL_BSD_DATA_ERROR_INFO RTL_BSD_DATA_ERROR_INFO
ULONG Version
Definition: rtltypes.h:1332
UNICODE_STRING DesktopInfo
Definition: rtltypes.h:1530
struct _RTL_UNICODE_STRING_BUFFER * PRTL_UNICODE_STRING_BUFFER
LARGE_INTEGER LastReferenceTime
Definition: rtltypes.h:1292
PRTL_PROCESS_VERIFIER_OPTIONS VerifierOptions
Definition: rtltypes.h:1208
struct _RTL_PROCESS_HEAPS RTL_PROCESS_HEAPS
PVOID DebugInfo
Definition: rtltypes.h:1498
#define NTSYSAPI
Definition: ntoskrnl.h:14
USHORT Flags
Definition: rtltypes.h:1871
SIZE_T CommittedSize
Definition: rtltypes.h:1097
PVOID UserData
Definition: rtltypes.h:1469
PVOID FirstEntry
Definition: rtltypes.h:1077
ULONG(NTAPI * RTLP_UNHANDLED_EXCEPTION_FILTER)(_In_ struct _EXCEPTION_POINTERS *ExceptionInfo)
Definition: rtltypes.h:547
union _RTL_HEAP_ENTRY::@2619 u
struct _RTL_PATCH_HEADER * NextPath
Definition: rtltypes.h:1701
struct _RTL_DEBUG_INFORMATION * PRTL_DEBUG_INFORMATION
static int Link(const char **args)
Definition: vfdcmd.c:2414
struct _RTL_PROCESS_MODULES RTL_PROCESS_MODULES
PEXCEPTION_ROUTINE Handler
Definition: compat.h:396
struct _RTL_HEAP_ENTRY RTL_HEAP_ENTRY
#define MAXIMUM_LEADBYTES
Definition: rtltypes.h:359
PVOID TableContext
Definition: rtltypes.h:428
struct _HEAP_LOCK * PHEAP_LOCK
LIST_ENTRY ListHead
Definition: rtltypes.h:1459
PRTL_PROCESS_LOCKS Locks
Definition: rtltypes.h:1205
ULONG(NTAPI * PTHREAD_START_ROUTINE)(PVOID Parameter)
Definition: rtltypes.h:564
RTL_PROCESS_BACKTRACE_INFORMATION BackTraces[1]
Definition: rtltypes.h:1171
uint32_t ULONG_PTR
Definition: typedefs.h:64
PLDR_DATA_TABLE_ENTRY PatchLdrDataTableEntry
Definition: rtltypes.h:1708
struct _RTL_CRITICAL_SECTION_DEBUG * PRTL_RESOURCE_DEBUG
PTOKEN_PRIVILEGES OldPrivileges
Definition: rtltypes.h:1405
struct _RTL_RELATIVE_NAME_U * PRTL_RELATIVE_NAME_U
struct _RTL_TRACE_ENUMERATE * PRTL_TRACE_ENUMERATE
WCHAR MinimumStaticBufferForTerminalNul
Definition: rtltypes.h:1860
struct tagRange Range
UCHAR Flags
Definition: rtltypes.h:1472
RTL_BSD_DATA_ERROR_INFO ErrorInfo
Definition: rtltypes.h:1346
PVOID OrderedPointer
Definition: rtltypes.h:419
struct _MESSAGE_RESOURCE_ENTRY * PMESSAGE_RESOURCE_ENTRY
struct _RTL_GENERIC_TABLE * PRTL_GENERIC_TABLE
RTL_BALANCED_LINKS BalancedRoot
Definition: rtltypes.h:418
ULONG CLONG
Definition: umtypes.h:126
_In_ PUNICODE_STRING ValueName
Definition: cmfuncs.h:264
SIZE_T BytesCommitted
Definition: rtltypes.h:1048
enum _RTL_UMSCTX_FLAGS RTL_UMSCTX_FLAGS
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_ ULONG _In_ ULONG _In_opt_ PVOID Context
Definition: rtltypes.h:47
PVOID BackTrace[32]
Definition: rtltypes.h:1736
PRTL_ATOM_TABLE_ENTRY Buckets[1]
Definition: rtltypes.h:1677
HANDLE ExclusiveSemaphore
Definition: rtltypes.h:1493
struct _RTL_BITMAP_RUN RTL_BITMAP_RUN
struct _RTL_RESOURCE * PRTL_RESOURCE
struct _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG
struct _COMPRESSED_DATA_INFO * PCOMPRESSED_DATA_INFO
PVOID Address
Definition: rtltypes.h:1038
ULONG_PTR * PSIZE_T
Definition: typedefs.h:79
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine
Definition: nt_native.h:109
WCHAR ExtensionBuffer[4]
Definition: rtltypes.h:599
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
struct _RTL_HEAP_PARAMETERS RTL_HEAP_PARAMETERS
SIZE_T BytesAllocated
Definition: rtltypes.h:1032
static LPOVERLAPPED_COMPLETION_ROUTINE Function
Definition: sync.c:681
#define CONST_VTBL
Definition: objbase.h:222
struct _RTL_ACQUIRE_STATE * PRTL_ACQUIRE_STATE
struct _MESSAGE_RESOURCE_DATA * PMESSAGE_RESOURCE_DATA
struct _RTL_BSD_DATA_POWER_TRANSITION RTL_BSD_DATA_POWER_TRANSITION
long LONG
Definition: pedump.c:60
struct _RTL_CRITICAL_SECTION_DEBUG * PRTL_CRITICAL_SECTION_DEBUG
struct _PREFIX_TABLE_ENTRY * PPREFIX_TABLE_ENTRY
USHORT HandleIndex
Definition: rtltypes.h:1649
struct _RTL_PROCESS_LOCK_INFORMATION * PRTL_PROCESS_LOCK_INFORMATION
_HEAP_INFORMATION_CLASS
Definition: rtltypes.h:484
struct _ACTIVATION_CONTEXT_STACK * PACTIVATION_CONTEXT_STACK
RTL_GENERIC_FREE_ROUTINE * PRTL_GENERIC_FREE_ROUTINE
Definition: rtltypes.h:465
BOOLEAN SleepInProgress
Definition: rtltypes.h:1338
CRITICAL_SECTION CriticalSection
Definition: iprtprio.c:40
struct _UNICODE_PREFIX_TABLE UNICODE_PREFIX_TABLE
struct _RTL_PROCESS_MODULE_INFORMATION * PRTL_PROCESS_MODULE_INFORMATION
struct _RTL_PROCESS_BACKTRACES * PRTL_PROCESS_BACKTRACES
RTL_TRACE_HASH_FUNCTION HashFunction
Definition: rtltypes.h:1819
Definition: rtltypes.h:617
union _RTL_TRACE_DATABASE::@2635 u
struct _RTL_TRACE_DATABASE * Database
Definition: rtltypes.h:1838
PRTL_HEAP_ENTRY Entries
Definition: rtltypes.h:1127
struct _PREFIX_TABLE_ENTRY PREFIX_TABLE_ENTRY
struct _RTL_HEAP_WALK_ENTRY RTL_HEAP_WALK_ENTRY
VOID(NTAPI * PRTL_BASE_PROCESS_START_ROUTINE)(PTHREAD_START_ROUTINE StartAddress, PVOID Parameter)
Definition: rtltypes.h:569
RTL_PROCESS_LOCK_INFORMATION Locks[1]
Definition: rtltypes.h:1153
struct _RTL_TIME_ZONE_INFORMATION RTL_TIME_ZONE_INFORMATION
struct _ACTIVATION_CONTEXT_STACK ACTIVATION_CONTEXT_STACK
struct _RTL_HEAP_INFORMATION * PRTL_HEAP_INFORMATION
struct _RTL_TRACE_BLOCK * Block
Definition: rtltypes.h:1840
USHORT AllocatorBackTraceIndex
Definition: rtltypes.h:1040
unsigned char BOOLEAN
PTOKEN_PRIVILEGES NewPrivileges
Definition: rtltypes.h:1406
static WCHAR Address[46]
Definition: ping.c:68
PVOID FirstBlock
Definition: rtltypes.h:1098
#define _Out_
Definition: no_sal2.h:323
struct _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA
enum _RTL_BSD_ITEM_TYPE RTL_BSD_ITEM_TYPE
PLDR_DATA_TABLE_ENTRY TargetLdrDataTableEntry
Definition: rtltypes.h:1707
ULONG NumberOfFrees
Definition: rtltypes.h:1106
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
struct _RTL_AVL_TABLE RTL_AVL_TABLE
struct _RTL_BUFFER RTL_BUFFER
void * PVOID
Definition: retypes.h:9
struct _RTL_PATCH_HEADER * PRTL_PATCH_HEADER
USHORT Milliseconds
Definition: env_spec_w32.h:717
CSHORT NameLength
Definition: rtltypes.h:619
USHORT TransDefaultChar
Definition: precomp.h:25
struct _RTL_TRACE_SEGMENT RTL_TRACE_SEGMENT
PRTL_HANDLE_TABLE_ENTRY CommittedHandles
Definition: rtltypes.h:1259
UCHAR LastBootCheckpoint
Definition: rtltypes.h:1341
Definition: rtltypes.h:1035
USHORT AllocatorBackTraceIndex
Definition: rtltypes.h:1070
struct _RTL_STACK_TRACE_ENTRY RTL_STACK_TRACE_ENTRY
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
Definition: compat.h:378
struct _STACK_TRACE_DATABASE * PSTACK_TRACE_DATABASE
struct _RTL_PROCESS_MODULE_INFORMATION_EX * PRTL_PROCESS_MODULE_INFORMATION_EX
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine
Definition: rtltypes.h:474
struct _RTL_HANDLE_TABLE_ENTRY RTL_HANDLE_TABLE_ENTRY
struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME RTL_ACTIVATION_CONTEXT_STACK_FRAME
struct _RTL_TRACE_BLOCK * PRTL_TRACE_BLOCK
FAST_MUTEX
Definition: extypes.h:17
HANDLE CriticalSectionHandle
Definition: rtltypes.h:1210
struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME * ActiveFrame
Definition: rtltypes.h:971
struct _TIME_FIELDS TIME_FIELDS
PRTL_DRIVE_LETTER_CURDIR CurrentDirectories
Definition: rtltypes.h:1393
struct _RTL_PERTHREAD_CURDIR * PRTL_PERTHREAD_CURDIR
ULONG_PTR CommittedSize
Definition: rtltypes.h:1075
SECTION_IMAGE_INFORMATION ImageInformation
Definition: rtltypes.h:1548
UNICODE_STRING TargetDllName
Definition: rtltypes.h:1705
ULONG VirtualMemoryThreshold
Definition: nt_native.h:1673
PRTL_PROCESS_BACKTRACES BackTraces
Definition: rtltypes.h:1203
struct _RTL_HEAP_USAGE * PRTL_HEAP_USAGE
UCHAR Text[ANYSIZE_ARRAY]
Definition: rtltypes.h:1872
struct _RTL_TRACE_SEGMENT * PRTL_TRACE_SEGMENT
_IRQL_requires_same_ _In_ PVOID _In_ PVOID SecondStruct
Definition: rtltypes.h:379
CSHORT NodeTypeCode
Definition: rtltypes.h:618
CSHORT NameLength
Definition: rtltypes.h:605
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct _RTL_TRACE_DATABASE * PRTL_TRACE_DATABASE
struct _RTL_UNICODE_STRING_BUFFER RTL_UNICODE_STRING_BUFFER
struct _RTL_BSD_DATA_POWER_TRANSITION * PRTL_BSD_DATA_POWER_TRANSITION
_Inout_ PVOID * CommitAddress
Definition: rtltypes.h:574
USHORT DefaultChar
Definition: precomp.h:23
uint64_t ULONGLONG
Definition: typedefs.h:66
struct _RTL_BSD_DATA * PRTL_BSD_DATA
struct _RTL_HANDLE_TABLE_ENTRY * PRTL_HANDLE_TABLE_ENTRY
USHORT ReferenceCount
Definition: rtltypes.h:1651
ULONG CompressedChunkSizes[ANYSIZE_ARRAY]
Definition: rtltypes.h:643
UCHAR LeadByte[MAXIMUM_LEADBYTES]
Definition: precomp.h:27
PRTL_HEAP_USAGE_ENTRY AddedEntries
Definition: rtltypes.h:1052
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:353
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
Definition: rtltypes.h:473
struct _RTL_HEAP_USAGE_ENTRY * Next
Definition: rtltypes.h:1037
_In_opt_ PVOID _Out_ PLARGE_INTEGER Cookie
Definition: cmfuncs.h:13
struct _RTL_STACK_TRACE_ENTRY * HashChain
Definition: rtltypes.h:1732
struct _RTL_USER_PROCESS_PARAMETERS * PRTL_USER_PROCESS_PARAMETERS
_RTL_GENERIC_COMPARE_RESULTS
Definition: rtltypes.h:365
RTL_BSD_POWER_BUTTON_PRESS_INFO PowerButtonPressInfo
Definition: rtltypes.h:1347
ULONG WhichOrderedElement
Definition: rtltypes.h:420
ULONG NumberGenericTableElements
Definition: rtltypes.h:421
struct _RTL_HEAP_USAGE_ENTRY * PRTL_HEAP_USAGE_ENTRY
BOOLEAN AabEnabled
Definition: rtltypes.h:1334
USHORT Flags
Definition: rtltypes.h:1063
NTSTATUS(* PRTL_HEAP_COMMIT_ROUTINE)(IN PVOID Base, IN OUT PVOID *CommitAddress, IN OUT PULONG CommitSize)
Definition: nt_native.h:1660
_In_ GUID _In_ PVOID ValueData
Definition: hubbusif.h:311
#define RTL_MAX_DRIVE_LETTERS
Definition: rtltypes.h:57
struct _UNICODE_PREFIX_TABLE_ENTRY * PUNICODE_PREFIX_TABLE_ENTRY
struct _RTL_BSD_POWER_BUTTON_PRESS_INFO * PRTL_BSD_POWER_BUTTON_PRESS_INFO
struct _RTL_TRACE_BLOCK ** Buckets
Definition: rtltypes.h:1818
struct _COMPRESSED_DATA_INFO COMPRESSED_DATA_INFO
_RTL_UMSCTX_FLAGS
Definition: rtltypes.h:1560
struct _RTL_HEAP_ENTRY::@2619::@2621 s2
#define _Inout_
Definition: no_sal2.h:244
struct _RTL_CRITICAL_SECTION * PRTL_CRITICAL_SECTION
static IN LPSTR Unk1
Definition: ldrinit.c:47
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
PVOID PatchImageBase
Definition: rtltypes.h:1700
struct _RTL_HEAP_WALK_ENTRY::@2615::@2617 Block
RTL_AVL_MATCH_FUNCTION * PRTL_AVL_MATCH_FUNCTION
Definition: rtltypes.h:407
RTL_PROCESS_MODULE_INFORMATION BaseInfo
Definition: rtltypes.h:1022
struct _CURDIR CURDIR
struct _ACTIVATION_CONTEXT * ActivationContext
Definition: winternl.h:250
Definition: partlist.h:33
NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine
struct _MESSAGE_RESOURCE_BLOCK * PMESSAGE_RESOURCE_BLOCK
ULONG NumberOfBits
Definition: typedefs.h:96
struct _RTL_HEAP_PARAMETERS * PRTL_HEAP_PARAMETERS
UNICODE_STRING DosPath
Definition: rtltypes.h:1388
struct _RTL_PROCESS_MODULE_INFORMATION RTL_PROCESS_MODULE_INFORMATION
unsigned __int64 ULONG64
Definition: imports.h:198
ULONG ExclusiveWaiters
Definition: rtltypes.h:1494
unsigned char UCHAR
Definition: xmlstorage.h:181
struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE
struct _RTL_ACQUIRE_STATE RTL_ACQUIRE_STATE
PPREFIX_TABLE_ENTRY NextPrefixTree
Definition: rtltypes.h:614
ULONG NumberGenericTableElements
Definition: rtltypes.h:472
UNICODE_STRING ImagePathName
Definition: btrfs_drv.h:1947
HANDLE CriticalSectionOwnerThread
Definition: rtltypes.h:1211
USHORT CreatorBackTraceIndex
Definition: rtltypes.h:1118
struct _RTL_RANGE_LIST RTL_RANGE_LIST
PRTL_SPLAY_LINKS TableRoot
Definition: rtltypes.h:468
struct _RTL_HEAP_TAG RTL_HEAP_TAG
PRTL_GENERIC_FREE_ROUTINE FreeRoutine
Definition: rtltypes.h:475
ULONG_PTR UnCommittedSize
Definition: rtltypes.h:1076
#define NTSTATUS
Definition: precomp.h:20
UNICODE_STRING String
Definition: rtltypes.h:1858
struct _RTL_FLS_DATA RTL_FLS_DATA
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
#define VOID
Definition: acefi.h:82
struct _RTL_BSD_DATA_POWER_TRANSITION::@2626 Flags
ULONG SizeOfBitMap
Definition: typedefs.h:89
struct _RTL_HEAP_USAGE_ENTRY RTL_HEAP_USAGE_ENTRY
ULONG NumberOfAllocations
Definition: rtltypes.h:1030
Definition: btrfs_drv.h:1922
struct _RTL_PROCESS_LOCKS * PRTL_PROCESS_LOCKS
struct _RTL_PROCESS_LOCKS RTL_PROCESS_LOCKS
_IRQL_requires_same_ _In_ PVOID FirstStruct
Definition: rtltypes.h:379
struct _RTL_STACK_TRACE_ENTRY * PRTL_STACK_TRACE_ENTRY
#define Trace(x)
Definition: zutil.h:197
struct _RTL_PROCESS_HEAPS * PRTL_PROCESS_HEAPS
PRTL_AVL_COMPARE_ROUTINE CompareRoutine
Definition: rtltypes.h:425
Definition: rtltypes.h:1057
RTL_BITMAP
Definition: rtltypes.h:32
Definition: typedefs.h:118
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
Definition: CrNtStubs.h:75
BOOLEAN LastBootSucceeded
Definition: rtltypes.h:1336
USHORT Length
Definition: rtltypes.h:1870
UNICODE_STRING CommandLine
Definition: btrfs_drv.h:1948
struct _RTL_HEAP_ENTRY * PRTL_HEAP_ENTRY
UCHAR Attributes
Definition: rtltypes.h:1471
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
USHORT CompressionFormatAndEngine
Definition: rtltypes.h:637
PRTL_AVL_FREE_ROUTINE FreeRoutine
Definition: rtltypes.h:427
RTL_AVL_FREE_ROUTINE * PRTL_AVL_FREE_ROUTINE
Definition: rtltypes.h:398
PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry
Definition: rtltypes.h:630
Definition: rtltypes.h:603
struct _RTL_BSD_POWER_BUTTON_PRESS_INFO RTL_BSD_POWER_BUTTON_PRESS_INFO
struct _RTL_HEAP_TAG_INFO * PRTL_HEAP_TAG_INFO
struct _RTL_USER_PROCESS_INFORMATION * PRTL_USER_PROCESS_INFORMATION
enum _RTL_BSD_ITEM_TYPE * PRTL_BSD_ITEM_TYPE
ULONG StartingIndex
Definition: typedefs.h:95
UNICODE_STRING RuntimeData
Definition: rtltypes.h:1532
struct _RTLP_CURDIR_REF * PRTLP_CURDIR_REF
struct _RTL_UNLOAD_EVENT_TRACE * PRTL_UNLOAD_EVENT_TRACE
PVOID CurrentLowerCommitLimit
Definition: rtltypes.h:1757
struct _RTL_PERTHREAD_CURDIR RTL_PERTHREAD_CURDIR
struct _RTL_HEAP_INFORMATION RTL_HEAP_INFORMATION
PUCHAR StaticBuffer
Definition: rtltypes.h:1849
RTL_UMS_CONTEXT
Definition: rtltypes.h:1640
struct _RTL_GENERIC_TABLE RTL_GENERIC_TABLE
NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine
struct _RTL_SPLAY_LINKS RTL_SPLAY_LINKS
UCHAR Padding[0x68]
Definition: rtltypes.h:1450
#define _In_
Definition: no_sal2.h:204
USHORT Index
Definition: rtltypes.h:1734
RTL_CRITICAL_SECTION CriticalSection
Definition: rtltypes.h:1446
ULONG SharedWaiters
Definition: rtltypes.h:1492
ULONG_PTR SIZE_T
Definition: typedefs.h:79
LIST_ENTRY ListEntry
Definition: rtltypes.h:1221
PRTL_CRITICAL_SECTION_DEBUG DebugInfo
Definition: rtltypes.h:1429
UCHAR AabTimeout
Definition: rtltypes.h:1335
ULONG SizeOfHandleTableEntry
Definition: rtltypes.h:1256
struct _PREFIX_TABLE * PPREFIX_TABLE
ULONG NumberOfAllocationFailures
Definition: rtltypes.h:1764
RTL_CRITICAL_SECTION Lock
Definition: rtltypes.h:1490
LONG NumberActive
Definition: rtltypes.h:1495
PUNICODE_STRING ImageName
Definition: rtltypes.h:1394
HANDLE OldImpersonationToken
Definition: rtltypes.h:1404
_In_ ULONG ValueType
Definition: rtltypes.h:45
struct _RTL_HEAP_USAGE RTL_HEAP_USAGE
RTL_SPLAY_LINKS Links
Definition: rtltypes.h:622
LARGE_INTEGER PowerButtonTimestamp
Definition: rtltypes.h:1279
struct _RTL_PROCESS_BACKTRACE_INFORMATION RTL_PROCESS_BACKTRACE_INFORMATION
ULONG Tag
Definition: rtltypes.h:1093
struct _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION
ULONGLONG End
Definition: rtltypes.h:1468
PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine
Definition: rtltypes.h:426
ULONG LastSuccessfulShutdownBootId
Definition: rtltypes.h:1344
unsigned short USHORT
Definition: pedump.c:61
PRTL_PROCESS_HEAPS Heaps
Definition: rtltypes.h:1204
MESSAGE_RESOURCE_BLOCK Blocks[ANYSIZE_ARRAY]
Definition: rtltypes.h:1885
SIZE_T StaticSize
Definition: rtltypes.h:1851
struct _RTL_ATOM_TABLE_ENTRY * HashLink
Definition: rtltypes.h:1648
C_ASSERT(FIELD_OFFSET(LARGE_INTEGER, LowPart)==0)
struct _RTL_AVL_TABLE * PRTL_AVL_TABLE
_IRQL_requires_same_ _In_ PVOID _In_ PVOID MatchData
Definition: rtltypes.h:405
struct _RANGE_LIST_ITERATOR * PRTL_RANGE_LIST_ITERATOR
struct _RTL_HANDLE_TABLE_ENTRY * NextFree
Definition: rtltypes.h:1249
struct _RTL_HEAP_TAG * PRTL_HEAP_TAG
struct _TIME_FIELDS * PTIME_FIELDS
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
PRTL_HEAP_USAGE_ENTRY RemovedEntries
Definition: rtltypes.h:1053
_In_ NTSTATUS ExitStatus
Definition: psfuncs.h:859
struct _RTL_ATOM_TABLE_ENTRY RTL_ATOM_TABLE_ENTRY
RTL_BSD_DATA_POWER_TRANSITION PowerTransition
Definition: rtltypes.h:1339
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
PVOID Owner
Definition: rtltypes.h:1470
PRTL_HANDLE_TABLE_ENTRY UnCommittedHandles
Definition: rtltypes.h:1260
HANDLE SharedSemaphore
Definition: rtltypes.h:1491
unsigned int * PULONG
Definition: retypes.h:1
_TABLE_SEARCH_RESULT
Definition: rtltypes.h:358
struct _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY
enum _RTL_GENERIC_COMPARE_RESULTS RTL_GENERIC_COMPARE_RESULTS
struct _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG
RTLP_UNHANDLED_EXCEPTION_FILTER * PRTLP_UNHANDLED_EXCEPTION_FILTER
Definition: rtltypes.h:550
struct _RTL_RELATIVE_NAME_U RTL_RELATIVE_NAME_U
struct _NLS_FILE_HEADER * PNLS_FILE_HEADER
PLIST_ENTRY OrderedPointer
Definition: rtltypes.h:470
#define RTL_FLS_MAXIMUM_AVAILABLE
Definition: rtltypes.h:1218
struct _RTL_PROCESS_LOCK_INFORMATION RTL_PROCESS_LOCK_INFORMATION
UNICODE_STRING DosPath
Definition: rtltypes.h:1366
struct _NLS_FILE_HEADER NLS_FILE_HEADER
HANDLE Handle
Definition: rtltypes.h:1367
struct _RTL_ATOM_TABLE RTL_ATOM_TABLE
struct _RTL_RANGE_LIST * PRTL_RANGE_LIST
struct _RTL_UNLOAD_EVENT_TRACE RTL_UNLOAD_EVENT_TRACE
ULONG Flags
Definition: rtltypes.h:1248
VOID(NTAPI * WORKERCALLBACKFUNC)(_In_ PVOID Context)
Definition: rtltypes.h:511
struct _GENERATE_NAME_CONTEXT * PGENERATE_NAME_CONTEXT
SIZE_T Size
Definition: rtltypes.h:1039
_IRQL_requires_same_ _In_ PVOID UserData
Definition: rtltypes.h:405
HANDLE OwningThread
Definition: rtltypes.h:1496
USHORT AllocatorBackTraceIndex
Definition: rtltypes.h:1087
struct _RTL_BUFFER * PRTL_BUFFER
struct _RTL_TRACE_BLOCK RTL_TRACE_BLOCK
PRTL_PROCESS_MODULE_INFORMATION_EX ModulesEx
Definition: rtltypes.h:1201
#define BOOLEAN
Definition: pedump.c:73
ULONG LastBootId
Definition: rtltypes.h:1343
PUCHAR Buffer
Definition: rtltypes.h:1848
SIZE_T BytesAllocated
Definition: rtltypes.h:1107
struct _RTL_HEAP_WALK_ENTRY * PRTL_HEAP_WALK_ENTRY
PRTL_BALANCED_LINKS RestartKey
Definition: rtltypes.h:423
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:998
struct _STACK_TRACE_DATABASE STACK_TRACE_DATABASE
ULONG ERESOURCE
Definition: env_spec_w32.h:594
unsigned int ULONG
Definition: retypes.h:1
PUNICODE_PREFIX_TABLE_ENTRY NextPrefixTree
Definition: rtltypes.h:629
Definition: rtltypes.h:1244
struct _RTL_PROCESS_VERIFIER_OPTIONS RTL_PROCESS_VERIFIER_OPTIONS
PVOID DataBuffer
Definition: rtltypes.h:1270
struct _UNICODE_PREFIX_TABLE_ENTRY UNICODE_PREFIX_TABLE_ENTRY
_In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID EntryContext
Definition: rtltypes.h:47
RTL_PROCESS_MODULE_INFORMATION Modules[1]
Definition: rtltypes.h:1016
ULONG ProductType
Definition: rtltypes.h:1333
RTL_SPLAY_LINKS Links
Definition: rtltypes.h:607
LIST_ENTRY InsertOrderList
Definition: rtltypes.h:469
enum _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS
VOID(NTAPI * PRTL_FREE_STRING_ROUTINE)(_In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer)
Definition: rtltypes.h:559
RTL_BSD_ITEM_TYPE Type
Definition: rtltypes.h:1269
NTSTATUS(* PRTL_QUERY_REGISTRY_ROUTINE)(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
Definition: nt_native.h:99
UNICODE_STRING RelativeName
Definition: rtltypes.h:1378
USHORT MaximumCharacterSize
Definition: precomp.h:22
PRTL_STACK_TRACE_ENTRY * EntryIndexArray
Definition: rtltypes.h:1765
RTL_HEAP_INFORMATION Heaps[1]
Definition: rtltypes.h:1133
PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles
Definition: rtltypes.h:1261
RTL_AVL_ALLOCATE_ROUTINE * PRTL_AVL_ALLOCATE_ROUTINE
Definition: rtltypes.h:390
ULONG WhichOrderedElement
Definition: rtltypes.h:471
ULONG DataLength
Definition: rtltypes.h:1271
UCHAR SegmentIndex
Definition: rtltypes.h:1062
struct _UNICODE_PREFIX_TABLE_ENTRY * CaseMatch
Definition: rtltypes.h:621
CSHORT NodeTypeCode
Definition: rtltypes.h:604
USHORT TransUniDefaultChar
Definition: precomp.h:26
struct _RANGE_LIST_ITERATOR RTL_RANGE_LIST_ITERATOR
SIZE_T ReservedForAllocatedSize
Definition: rtltypes.h:1852
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
NTSTATUS(NTAPI * PHEAP_ENUMERATION_ROUTINE)(_In_ PVOID HeapHandle, _In_ PVOID UserParam)
Definition: rtltypes.h:556
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:403
Definition: rtltypes.h:1083
_In_ ULONG _In_ ULONG ValueLength
Definition: rtltypes.h:47
_IRQL_requires_same_ _In_ CLONG ByteSize
Definition: rtltypes.h:389
SIZE_T Settable
Definition: rtltypes.h:1092
struct _HOTPATCH_HEADER * HotpatchHeader
Definition: rtltypes.h:1704
short CSHORT
Definition: umtypes.h:127
ULONG HashCounter[16]
Definition: rtltypes.h:1822
KSPIN_LOCK SpinLock
Definition: rtltypes.h:1813
UCHAR CompressionUnitShift
Definition: rtltypes.h:638
struct _RTL_TRACE_DATABASE RTL_TRACE_DATABASE
struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS
struct _RTL_PATCH_HEADER RTL_PATCH_HEADER
struct _RTL_HANDLE_TABLE RTL_HANDLE_TABLE
ULONG DeCommitTotalFreeThreshold
Definition: nt_native.h:1671
PVOID ReservedForIMalloc
Definition: rtltypes.h:1853
Definition: rtltypes.h:990
ACE_HEADER Header
Definition: rtltypes.h:992
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING Stream
Definition: fltkernel.h:1092
PRTLP_CURDIR_REF CurDirRef
Definition: rtltypes.h:1380
struct _RTL_RANGE RTL_RANGE
ULONG ACCESS_MASK
Definition: nt_native.h:40
struct _GENERATE_NAME_CONTEXT GENERATE_NAME_CONTEXT
struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME * PRTL_ACTIVATION_CONTEXT_STACK_FRAME
struct _EXCEPTION_REGISTRATION_RECORD * PEXCEPTION_REGISTRATION_RECORD
struct _RTL_PROCESS_MODULE_INFORMATION_EX RTL_PROCESS_MODULE_INFORMATION_EX
struct _RTL_DRIVE_LETTER_CURDIR * PRTL_DRIVE_LETTER_CURDIR
SIZE_T DataSize
Definition: rtltypes.h:1060
CSHORT NameLength
Definition: rtltypes.h:613
SIZE_T BytesAllocated
Definition: rtltypes.h:1047
NTSTATUS(NTAPI * PRTL_EXIT_POOL_THREAD)(_In_ NTSTATUS ExitStatus)
Definition: rtltypes.h:585
struct _RTL_CRITICAL_SECTION * CriticalSection
Definition: rtltypes.h:1420
USHORT Depth
Definition: rtltypes.h:1735
struct _RTL_BSD_POWER_BUTTON_PRESS_INFO::@2627 Flags
WCHAR TagName[24]
Definition: rtltypes.h:1110
struct _SYSTEM_HOTPATCH_CODE_INFORMATION * CodeInfo
Definition: rtltypes.h:1709
ERESOURCE Resource
Definition: rtltypes.h:1448
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char * Format
Definition: acpixf.h:1216
NTSTATUS(NTAPI * PRTL_START_POOL_THREAD)(_In_ PTHREAD_START_ROUTINE Function, _In_ PVOID Parameter, _Out_ PHANDLE ThreadHandle)
Definition: rtltypes.h:578
struct _RTL_TRACE_BLOCK * Next
Definition: rtltypes.h:1795
struct _RTL_PROCESS_BACKTRACES RTL_PROCESS_BACKTRACES