5 #ifndef __DDK_RTLTYPES_H
6 #define __DDK_RTLTYPES_H
9 #define COMPRESSION_FORMAT_NONE 0x0000
10 #define COMPRESSION_FORMAT_DEFAULT 0x0001
11 #define COMPRESSION_FORMAT_LZNT1 0x0002
13 #define COMPRESSION_ENGINE_STANDARD 0x0000
14 #define COMPRESSION_ENGINE_MAXIMUM 0x0100
15 #define COMPRESSION_ENGINE_HIBER 0x0200
18 typedef struct _INITIAL_TEB
25 } INITIAL_TEB, *PINITIAL_TEB;
27 typedef struct _CONTROLLER_OBJECT
31 PVOID ControllerExtension;
32 KDEVICE_QUEUE DeviceWaitQueue;
35 } CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
37 typedef struct _STRING
40 * Length in bytes of the string stored in buffer
45 * Maximum length of the string
55 typedef STRING ANSI_STRING;
56 typedef PSTRING PANSI_STRING;
58 typedef STRING OEM_STRING;
59 typedef PSTRING POEM_STRING;
62 typedef struct _TIME_FIELDS
72 } TIME_FIELDS, *PTIME_FIELDS;
74 typedef struct _RTL_BITMAP
78 } RTL_BITMAP, *PRTL_BITMAP;
80 typedef struct _RTL_HEAP_DEFINITION
84 } RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
86 typedef struct _RTL_ATOM_TABLE
90 PVOID Lock; /* fast mutex (kernel mode)/ critical section (user mode) */
93 } RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
95 typedef struct _LB_RANGE
101 typedef struct _RTL_NLS_DATA
104 USHORT MaxCharacterSize; // SBCS = 1, DBCS = 2
105 WCHAR DefaultCharacter;
110 LB_RANGE LeadByteRange[6];
112 PWCHAR MultiByteToUnicode;
113 PCHAR UnicodeToMultiByte;
114 PWCHAR DosMultiByteToUnicode;
116 } RTL_NLS_DATA, *PRTL_NLS_DATA;
118 typedef struct _RTL_NLS_TABLE
120 RTL_NLS_DATA OemInfo;
121 RTL_NLS_DATA AnsiInfo;
123 PWCHAR DowncaseTable;
124 } RTL_NLS_TABLE, *PRTL_NLS_TABLE;
127 typedef struct _RTL_SPLAY_LINKS
129 struct _RTL_SPLAY_LINKS *Parent;
130 struct _RTL_SPLAY_LINKS *LeftChild;
131 struct _RTL_SPLAY_LINKS *RightChild;
132 } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
134 struct _RTL_GENERIC_TABLE;
136 typedef enum _RTL_GENERIC_COMPARE_RESULTS
141 } RTL_GENERIC_COMPARE_RESULTS;
143 typedef enum _TABLE_SEARCH_RESULT
149 } TABLE_SEARCH_RESULT;
151 typedef RTL_GENERIC_COMPARE_RESULTS NTAPI
152 (*PRTL_GENERIC_COMPARE_ROUTINE)(struct _RTL_GENERIC_TABLE *GenericTable,
157 (*PRTL_GENERIC_ALLOCATE_ROUTINE)(struct _RTL_GENERIC_TABLE *GenericTable,
162 (*PRTL_GENERIC_FREE_ROUTINE)(struct _RTL_GENERIC_TABLE *GenericTable,
166 typedef struct _RTL_GENERIC_TABLE
174 PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
175 PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
176 PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
178 } RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
181 typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
186 } RTL_MESSAGE_RESOURCE_ENTRY, *PRTL_MESSAGE_RESOURCE_ENTRY;
188 typedef struct _RTL_MESSAGE_RESOURCE_BLOCK
192 ULONG OffsetToEntries;
193 } RTL_MESSAGE_RESOURCE_BLOCK, *PRTL_MESSAGE_RESOURCE_BLOCK;
195 typedef struct _RTL_MESSAGE_RESOURCE_DATA
197 ULONG NumberOfBlocks;
198 RTL_MESSAGE_RESOURCE_BLOCK Blocks[1];
199 } RTL_MESSAGE_RESOURCE_DATA, *PRTL_MESSAGE_RESOURCE_DATA;
202 typedef NTSTATUS STDCALL
203 (*PRTL_QUERY_REGISTRY_ROUTINE)(PWSTR ValueName,
210 typedef struct _RTL_QUERY_REGISTRY_TABLE
212 PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
219 } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
222 typedef struct _GENERATE_NAME_CONTEXT
225 BOOLEAN CheckSumInserted;
228 ULONG ExtensionLength;
229 WCHAR ExtensionBuffer[4];
230 ULONG LastIndexValue;
231 } GENERATE_NAME_CONTEXT, *PGENERATE_NAME_CONTEXT;
234 typedef struct _COMPRESSED_DATA_INFO
236 USHORT CompressionFormatAndEngine;
237 UCHAR CompressionUnitShift;
241 USHORT NumberOfChunks;
242 ULONG CompressedChunkSizes[1];
243 } COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
245 #endif /* __DDK_RTLTYPES_H */