5 #ifndef __DDK_RTLTYPES_H
6 #define __DDK_RTLTYPES_H
10 #define COMPRESSION_FORMAT_NONE 0x0000
11 #define COMPRESSION_FORMAT_DEFAULT 0x0001
12 #define COMPRESSION_FORMAT_LZNT1 0x0002
14 #define COMPRESSION_ENGINE_STANDARD 0x0000
15 #define COMPRESSION_ENGINE_MAXIMUM 0x0100
16 #define COMPRESSION_ENGINE_HIBER 0x0200
18 typedef struct _CONTROLLER_OBJECT
22 PVOID ControllerExtension;
23 KDEVICE_QUEUE DeviceWaitQueue;
26 } CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
28 typedef struct _STRING
31 * Length in bytes of the string stored in buffer
36 * Maximum length of the string
46 typedef STRING ANSI_STRING;
47 typedef PSTRING PANSI_STRING;
49 typedef STRING OEM_STRING;
50 typedef PSTRING POEM_STRING;
52 typedef struct _TIME_FIELDS
62 } TIME_FIELDS, *PTIME_FIELDS;
64 typedef struct _RTL_BITMAP
68 } RTL_BITMAP, *PRTL_BITMAP;
72 #define STDCALL_FUNC STDCALL
74 #define STDCALL_FUNC(a) (__stdcall a )
78 typedef NTSTATUS STDCALL_FUNC
79 (*PRTL_QUERY_REGISTRY_ROUTINE) (PWSTR ValueName,
86 typedef struct _RTL_QUERY_REGISTRY_TABLE
88 PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
95 } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
97 typedef struct _COMPRESSED_DATA_INFO
99 USHORT CompressionFormatAndEngine;
100 UCHAR CompressionUnitShift;
104 USHORT NumberOfChunks;
105 ULONG CompressedChunkSizes[1];
106 } COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
108 typedef struct _GENERATE_NAME_CONTEXT
111 BOOLEAN CheckSumInserted;
114 ULONG ExtensionLength;
115 WCHAR ExtensionBuffer[4];
116 ULONG LastIndexValue;
117 } GENERATE_NAME_CONTEXT, *PGENERATE_NAME_CONTEXT;
119 typedef struct _RTL_SPLAY_LINKS
121 struct _RTL_SPLAY_LINKS *Parent;
122 struct _RTL_SPLAY_LINKS *LeftChild;
123 struct _RTL_SPLAY_LINKS *RightChild;
124 } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
126 #else /* __USE_W32API */
128 #include <ddk/ntifs.h>
130 #endif /* __USE_W32API */
132 typedef struct _USER_STACK
134 PVOID FixedStackBase;
135 PVOID FixedStackLimit;
136 PVOID ExpandableStackBase;
137 PVOID ExpandableStackLimit;
138 PVOID ExpandableStackBottom;
139 } USER_STACK, *PUSER_STACK;
141 typedef struct _RTL_HEAP_DEFINITION
145 } RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
147 typedef struct _RTL_ATOM_TABLE
151 PVOID Lock; /* fast mutex (kernel mode)/ critical section (user mode) */
154 } RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
156 typedef struct _LB_RANGE
162 typedef struct _RTL_NLS_DATA
165 USHORT MaxCharacterSize; // SBCS = 1, DBCS = 2
166 WCHAR DefaultCharacter;
171 LB_RANGE LeadByteRange[6];
173 PWCHAR MultiByteToUnicode;
174 PCHAR UnicodeToMultiByte;
175 PWCHAR DosMultiByteToUnicode;
177 } RTL_NLS_DATA, *PRTL_NLS_DATA;
179 typedef struct _RTL_NLS_TABLE
181 RTL_NLS_DATA OemInfo;
182 RTL_NLS_DATA AnsiInfo;
184 PWCHAR DowncaseTable;
185 } RTL_NLS_TABLE, *PRTL_NLS_TABLE;
187 struct _RTL_GENERIC_TABLE;
189 typedef enum _RTL_GENERIC_COMPARE_RESULTS
194 } RTL_GENERIC_COMPARE_RESULTS;
196 typedef enum _TABLE_SEARCH_RESULT
202 } TABLE_SEARCH_RESULT;
204 typedef RTL_GENERIC_COMPARE_RESULTS NTAPI
205 (*PRTL_GENERIC_COMPARE_ROUTINE)(struct _RTL_GENERIC_TABLE *GenericTable,
210 (*PRTL_GENERIC_ALLOCATE_ROUTINE)(struct _RTL_GENERIC_TABLE *GenericTable,
215 (*PRTL_GENERIC_FREE_ROUTINE)(struct _RTL_GENERIC_TABLE *GenericTable,
219 typedef struct _RTL_GENERIC_TABLE
227 PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
228 PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
229 PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
231 } RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
234 typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
239 } RTL_MESSAGE_RESOURCE_ENTRY, *PRTL_MESSAGE_RESOURCE_ENTRY;
241 typedef struct _RTL_MESSAGE_RESOURCE_BLOCK
245 ULONG OffsetToEntries;
246 } RTL_MESSAGE_RESOURCE_BLOCK, *PRTL_MESSAGE_RESOURCE_BLOCK;
248 typedef struct _RTL_MESSAGE_RESOURCE_DATA
250 ULONG NumberOfBlocks;
251 RTL_MESSAGE_RESOURCE_BLOCK Blocks[1];
252 } RTL_MESSAGE_RESOURCE_DATA, *PRTL_MESSAGE_RESOURCE_DATA;
255 (*PRTL_BASE_PROCESS_START_ROUTINE)(PTHREAD_START_ROUTINE StartAddress,
258 #endif /* __DDK_RTLTYPES_H */