1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef _WINTERNL_
|
---|
7 | #define _WINTERNL_
|
---|
8 |
|
---|
9 | #include <windef.h>
|
---|
10 |
|
---|
11 | #ifndef NT_SUCCESS
|
---|
12 | #define NT_SUCCESS(status) ((NTSTATUS) (status) >= 0)
|
---|
13 | #endif
|
---|
14 |
|
---|
15 | #ifndef NT_INFORMATION
|
---|
16 | #define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1)
|
---|
17 | #endif
|
---|
18 |
|
---|
19 | #ifndef NT_WARNING
|
---|
20 | #define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2)
|
---|
21 | #endif
|
---|
22 |
|
---|
23 | #ifndef NT_ERROR
|
---|
24 | #define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)
|
---|
25 | #endif
|
---|
26 |
|
---|
27 | #ifndef DEVICE_TYPE
|
---|
28 | #define DEVICE_TYPE ULONG
|
---|
29 | #endif
|
---|
30 |
|
---|
31 | #ifdef __cplusplus
|
---|
32 | extern "C" {
|
---|
33 | #endif
|
---|
34 |
|
---|
35 | #ifndef __UNICODE_STRING_DEFINED
|
---|
36 | #define __UNICODE_STRING_DEFINED
|
---|
37 | typedef struct _UNICODE_STRING {
|
---|
38 | USHORT Length;
|
---|
39 | USHORT MaximumLength;
|
---|
40 | PWSTR Buffer;
|
---|
41 | } UNICODE_STRING;
|
---|
42 | #endif
|
---|
43 |
|
---|
44 | typedef struct _PEB_LDR_DATA {
|
---|
45 | BYTE Reserved1[8];
|
---|
46 | PVOID Reserved2[3];
|
---|
47 | LIST_ENTRY InMemoryOrderModuleList;
|
---|
48 | } PEB_LDR_DATA,*PPEB_LDR_DATA;
|
---|
49 |
|
---|
50 | typedef struct _LDR_DATA_TABLE_ENTRY {
|
---|
51 | PVOID Reserved1[2];
|
---|
52 | LIST_ENTRY InMemoryOrderLinks;
|
---|
53 | PVOID Reserved2[2];
|
---|
54 | PVOID DllBase;
|
---|
55 | PVOID Reserved3[2];
|
---|
56 | UNICODE_STRING FullDllName;
|
---|
57 | BYTE Reserved4[8];
|
---|
58 | PVOID Reserved5[3];
|
---|
59 | __C89_NAMELESS union {
|
---|
60 | ULONG CheckSum;
|
---|
61 | PVOID Reserved6;
|
---|
62 | };
|
---|
63 | ULONG TimeDateStamp;
|
---|
64 | } LDR_DATA_TABLE_ENTRY,*PLDR_DATA_TABLE_ENTRY;
|
---|
65 |
|
---|
66 | typedef struct _RTL_USER_PROCESS_PARAMETERS {
|
---|
67 | BYTE Reserved1[16];
|
---|
68 | PVOID Reserved2[10];
|
---|
69 | UNICODE_STRING ImagePathName;
|
---|
70 | UNICODE_STRING CommandLine;
|
---|
71 | } RTL_USER_PROCESS_PARAMETERS,*PRTL_USER_PROCESS_PARAMETERS;
|
---|
72 |
|
---|
73 | /* This function pointer is undocumented and just valid for windows 2000.
|
---|
74 | Therefore I guess. */
|
---|
75 | typedef VOID (NTAPI *PPS_POST_PROCESS_INIT_ROUTINE)(VOID);
|
---|
76 |
|
---|
77 | typedef struct _PEB {
|
---|
78 | BYTE Reserved1[2];
|
---|
79 | BYTE BeingDebugged;
|
---|
80 | BYTE Reserved2[1];
|
---|
81 | PVOID Reserved3[2];
|
---|
82 | PPEB_LDR_DATA Ldr;
|
---|
83 | PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
|
---|
84 | PVOID Reserved4[3];
|
---|
85 | PVOID AtlThunkSListPtr;
|
---|
86 | PVOID Reserved5;
|
---|
87 | ULONG Reserved6;
|
---|
88 | PVOID Reserved7;
|
---|
89 | ULONG Reserved8;
|
---|
90 | ULONG AtlThunkSListPtr32;
|
---|
91 | PVOID Reserved9[45];
|
---|
92 | BYTE Reserved10[96];
|
---|
93 | PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine;
|
---|
94 | BYTE Reserved11[128];
|
---|
95 | PVOID Reserved12[1];
|
---|
96 | ULONG SessionId;
|
---|
97 | } PEB,*PPEB;
|
---|
98 |
|
---|
99 | typedef struct _TEB {
|
---|
100 | PVOID Reserved1[12];
|
---|
101 | PPEB ProcessEnvironmentBlock;
|
---|
102 | PVOID Reserved2[399];
|
---|
103 | BYTE Reserved3[1952];
|
---|
104 | PVOID TlsSlots[64];
|
---|
105 | BYTE Reserved4[8];
|
---|
106 | PVOID Reserved5[26];
|
---|
107 | PVOID ReservedForOle;
|
---|
108 | PVOID Reserved6[4];
|
---|
109 | PVOID TlsExpansionSlots;
|
---|
110 | } TEB;
|
---|
111 |
|
---|
112 | typedef TEB *PTEB;
|
---|
113 | #if !defined (_NTDEF_) && !defined (_NTSTATUS_PSDK)
|
---|
114 | #define _NTSTATUS_PSDK
|
---|
115 | typedef LONG NTSTATUS, *PNTSTATUS;
|
---|
116 | #endif
|
---|
117 | typedef CONST char *PCSZ;
|
---|
118 |
|
---|
119 | #ifndef __STRING_DEFINED
|
---|
120 | #define __STRING_DEFINED
|
---|
121 | typedef struct _STRING {
|
---|
122 | USHORT Length;
|
---|
123 | USHORT MaximumLength;
|
---|
124 | PCHAR Buffer;
|
---|
125 | } STRING;
|
---|
126 | #endif
|
---|
127 |
|
---|
128 | typedef STRING *PSTRING;
|
---|
129 | typedef STRING ANSI_STRING;
|
---|
130 | typedef PSTRING PANSI_STRING;
|
---|
131 | typedef PSTRING PCANSI_STRING;
|
---|
132 | typedef STRING OEM_STRING;
|
---|
133 | typedef PSTRING POEM_STRING;
|
---|
134 | typedef CONST STRING *PCOEM_STRING;
|
---|
135 |
|
---|
136 | typedef UNICODE_STRING *PUNICODE_STRING;
|
---|
137 | typedef const UNICODE_STRING *PCUNICODE_STRING;
|
---|
138 |
|
---|
139 | #ifndef __OBJECT_ATTRIBUTES_DEFINED
|
---|
140 | #define __OBJECT_ATTRIBUTES_DEFINED
|
---|
141 | typedef struct _OBJECT_ATTRIBUTES {
|
---|
142 | ULONG Length;
|
---|
143 | #ifdef _WIN64
|
---|
144 | ULONG pad1;
|
---|
145 | #endif
|
---|
146 | HANDLE RootDirectory;
|
---|
147 | PUNICODE_STRING ObjectName;
|
---|
148 | ULONG Attributes;
|
---|
149 | #ifdef _WIN64
|
---|
150 | ULONG pad2;
|
---|
151 | #endif
|
---|
152 | PVOID SecurityDescriptor;
|
---|
153 | PVOID SecurityQualityOfService;
|
---|
154 | } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
|
---|
155 | #endif
|
---|
156 |
|
---|
157 | /* Values for the Attributes member */
|
---|
158 | #define OBJ_INHERIT 0x00000002L
|
---|
159 | #define OBJ_PERMANENT 0x00000010L
|
---|
160 | #define OBJ_EXCLUSIVE 0x00000020L
|
---|
161 | #define OBJ_CASE_INSENSITIVE 0x00000040L
|
---|
162 | #define OBJ_OPENIF 0x00000080L
|
---|
163 | #define OBJ_OPENLINK 0x00000100L
|
---|
164 | #define OBJ_KERNEL_HANDLE 0x00000200L
|
---|
165 | #define OBJ_FORCE_ACCESS_CHECK 0x00000400L
|
---|
166 | #define OBJ_IGNORE_IMPERSONATED_DEVICEMAP 0x00000800L
|
---|
167 | #define OBJ_DONT_REPARSE 0x00001000L
|
---|
168 | #define OBJ_VALID_ATTRIBUTES 0x00001FF2L
|
---|
169 |
|
---|
170 | /* Define the create disposition values */
|
---|
171 | #define FILE_SUPERSEDE 0x00000000
|
---|
172 | #define FILE_OPEN 0x00000001
|
---|
173 | #define FILE_CREATE 0x00000002
|
---|
174 | #define FILE_OPEN_IF 0x00000003
|
---|
175 | #define FILE_OVERWRITE 0x00000004
|
---|
176 | #define FILE_OVERWRITE_IF 0x00000005
|
---|
177 | #define FILE_MAXIMUM_DISPOSITION 0x00000005
|
---|
178 |
|
---|
179 | /* Define the create/open option flags */
|
---|
180 | #define FILE_DIRECTORY_FILE 0x00000001
|
---|
181 | #define FILE_WRITE_THROUGH 0x00000002
|
---|
182 | #define FILE_SEQUENTIAL_ONLY 0x00000004
|
---|
183 | #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
|
---|
184 | #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
|
---|
185 | #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
|
---|
186 | #define FILE_NON_DIRECTORY_FILE 0x00000040
|
---|
187 | #define FILE_CREATE_TREE_CONNECTION 0x00000080
|
---|
188 | #define FILE_COMPLETE_IF_OPLOCKED 0x00000100
|
---|
189 | #define FILE_NO_EA_KNOWLEDGE 0x00000200
|
---|
190 | #define FILE_OPEN_REMOTE_INSTANCE 0x00000400
|
---|
191 | #define FILE_RANDOM_ACCESS 0x00000800
|
---|
192 | #define FILE_DELETE_ON_CLOSE 0x00001000
|
---|
193 | #define FILE_OPEN_BY_FILE_ID 0x00002000
|
---|
194 | #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
|
---|
195 | #define FILE_NO_COMPRESSION 0x00008000
|
---|
196 | #if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
|
---|
197 | #define FILE_OPEN_REQUIRING_OPLOCK 0x00010000
|
---|
198 | #endif
|
---|
199 | #define FILE_RESERVE_OPFILTER 0x00100000
|
---|
200 | #define FILE_OPEN_REPARSE_POINT 0x00200000
|
---|
201 | #define FILE_OPEN_NO_RECALL 0x00400000
|
---|
202 | #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
|
---|
203 | #define FILE_VALID_OPTION_FLAGS 0x00ffffff
|
---|
204 | #define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032
|
---|
205 | #define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032
|
---|
206 | #define FILE_VALID_SET_FLAGS 0x00000036
|
---|
207 |
|
---|
208 | /* Define the I/O status information return values for NtCreateFile/NtOpenFile */
|
---|
209 | #define FILE_SUPERSEDED 0x00000000
|
---|
210 | #define FILE_OPENED 0x00000001
|
---|
211 | #define FILE_CREATED 0x00000002
|
---|
212 | #define FILE_OVERWRITTEN 0x00000003
|
---|
213 | #define FILE_EXISTS 0x00000004
|
---|
214 | #define FILE_DOES_NOT_EXIST 0x00000005
|
---|
215 |
|
---|
216 | /* Helper Macro */
|
---|
217 | #ifndef InitializeObjectAttributes
|
---|
218 | #define InitializeObjectAttributes(p,n,a,r,s) { \
|
---|
219 | (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
|
---|
220 | (p)->RootDirectory = (r); \
|
---|
221 | (p)->Attributes = (a); \
|
---|
222 | (p)->ObjectName = (n); \
|
---|
223 | (p)->SecurityDescriptor = (s); \
|
---|
224 | (p)->SecurityQualityOfService = NULL; \
|
---|
225 | }
|
---|
226 | #endif
|
---|
227 |
|
---|
228 | typedef struct _OBJECT_DATA_INFORMATION {
|
---|
229 | BOOLEAN InheritHandle;
|
---|
230 | BOOLEAN ProtectFromClose;
|
---|
231 | } OBJECT_DATA_INFORMATION, *POBJECT_DATA_INFORMATION;
|
---|
232 |
|
---|
233 | typedef struct _OBJECT_BASIC_INFORMATION {
|
---|
234 | ULONG Attributes;
|
---|
235 | ACCESS_MASK GrantedAccess;
|
---|
236 | ULONG HandleCount;
|
---|
237 | ULONG PointerCount;
|
---|
238 | ULONG PagedPoolUsage;
|
---|
239 | ULONG NonPagedPoolUsage;
|
---|
240 | ULONG Reserved[3];
|
---|
241 | ULONG NameInformationLength;
|
---|
242 | ULONG TypeInformationLength;
|
---|
243 | ULONG SecurityDescriptorLength;
|
---|
244 | LARGE_INTEGER CreateTime;
|
---|
245 | } OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
|
---|
246 |
|
---|
247 | typedef struct _OBJECT_NAME_INFORMATION {
|
---|
248 | UNICODE_STRING Name;
|
---|
249 | } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
|
---|
250 |
|
---|
251 | typedef struct _OBJECT_TYPE_INFORMATION {
|
---|
252 | UNICODE_STRING TypeName;
|
---|
253 | ULONG TotalNumberOfObjects;
|
---|
254 | ULONG TotalNumberOfHandles;
|
---|
255 | ULONG TotalPagedPoolUsage;
|
---|
256 | ULONG TotalNonPagedPoolUsage;
|
---|
257 | ULONG TotalNamePoolUsage;
|
---|
258 | ULONG TotalHandleTableUsage;
|
---|
259 | ULONG HighWaterNumberOfObjects;
|
---|
260 | ULONG HighWaterNumberOfHandles;
|
---|
261 | ULONG HighWaterPagedPoolUsage;
|
---|
262 | ULONG HighWaterNonPagedPoolUsage;
|
---|
263 | ULONG HighWaterNamePoolUsage;
|
---|
264 | ULONG HighWaterHandleTableUsage;
|
---|
265 | ULONG InvalidAttributes;
|
---|
266 | GENERIC_MAPPING GenericMapping;
|
---|
267 | ULONG ValidAccessMask;
|
---|
268 | BOOLEAN SecurityRequired;
|
---|
269 | BOOLEAN MaintainHandleCount;
|
---|
270 | ULONG PoolType;
|
---|
271 | ULONG DefaultPagedPoolCharge;
|
---|
272 | ULONG DefaultNonPagedPoolCharge;
|
---|
273 | } OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION;
|
---|
274 |
|
---|
275 | typedef struct _OBJECT_ALL_INFORMATION {
|
---|
276 | ULONG NumberOfObjects;
|
---|
277 | OBJECT_TYPE_INFORMATION ObjectTypeInformation[1];
|
---|
278 | }OBJECT_ALL_INFORMATION, *POBJECT_ALL_INFORMATION;
|
---|
279 |
|
---|
280 | typedef enum _FILE_INFORMATION_CLASS {
|
---|
281 | FileDirectoryInformation = 1,
|
---|
282 | FileFullDirectoryInformation,
|
---|
283 | FileBothDirectoryInformation,
|
---|
284 | FileBasicInformation,
|
---|
285 | FileStandardInformation,
|
---|
286 | FileInternalInformation,
|
---|
287 | FileEaInformation,
|
---|
288 | FileAccessInformation,
|
---|
289 | FileNameInformation,
|
---|
290 | FileRenameInformation,
|
---|
291 | FileLinkInformation,
|
---|
292 | FileNamesInformation,
|
---|
293 | FileDispositionInformation,
|
---|
294 | FilePositionInformation,
|
---|
295 | FileFullEaInformation,
|
---|
296 | FileModeInformation,
|
---|
297 | FileAlignmentInformation,
|
---|
298 | FileAllInformation,
|
---|
299 | FileAllocationInformation,
|
---|
300 | FileEndOfFileInformation,
|
---|
301 | FileAlternateNameInformation,
|
---|
302 | FileStreamInformation,
|
---|
303 | FilePipeInformation,
|
---|
304 | FilePipeLocalInformation,
|
---|
305 | FilePipeRemoteInformation,
|
---|
306 | FileMailslotQueryInformation,
|
---|
307 | FileMailslotSetInformation,
|
---|
308 | FileCompressionInformation,
|
---|
309 | FileObjectIdInformation,
|
---|
310 | FileCompletionInformation,
|
---|
311 | FileMoveClusterInformation,
|
---|
312 | FileQuotaInformation,
|
---|
313 | FileReparsePointInformation,
|
---|
314 | FileNetworkOpenInformation,
|
---|
315 | FileAttributeTagInformation,
|
---|
316 | FileTrackingInformation,
|
---|
317 | FileIdBothDirectoryInformation,
|
---|
318 | FileIdFullDirectoryInformation,
|
---|
319 | FileValidDataLengthInformation,
|
---|
320 | FileShortNameInformation = 40,
|
---|
321 | FileSfioReserveInformation = 44,
|
---|
322 | FileSfioVolumeInformation = 45,
|
---|
323 | FileHardLinkInformation = 46,
|
---|
324 | FileNormalizedNameInformation = 48,
|
---|
325 | FileIdGlobalTxDirectoryInformation = 50,
|
---|
326 | FileStandardLinkInformation = 54,
|
---|
327 | FileMaximumInformation
|
---|
328 | } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
---|
329 |
|
---|
330 | typedef struct _FILE_DIRECTORY_INFORMATION {
|
---|
331 | ULONG NextEntryOffset;
|
---|
332 | ULONG FileIndex;
|
---|
333 | LARGE_INTEGER CreationTime;
|
---|
334 | LARGE_INTEGER LastAccessTime;
|
---|
335 | LARGE_INTEGER LastWriteTime;
|
---|
336 | LARGE_INTEGER ChangeTime;
|
---|
337 | LARGE_INTEGER EndOfFile;
|
---|
338 | LARGE_INTEGER AllocationSize;
|
---|
339 | ULONG FileAttributes;
|
---|
340 | ULONG FileNameLength;
|
---|
341 | WCHAR FileName[ANYSIZE_ARRAY];
|
---|
342 | } FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;
|
---|
343 |
|
---|
344 | typedef struct _FILE_FULL_DIR_INFORMATION {
|
---|
345 | ULONG NextEntryOffset;
|
---|
346 | ULONG FileIndex;
|
---|
347 | LARGE_INTEGER CreationTime;
|
---|
348 | LARGE_INTEGER LastAccessTime;
|
---|
349 | LARGE_INTEGER LastWriteTime;
|
---|
350 | LARGE_INTEGER ChangeTime;
|
---|
351 | LARGE_INTEGER EndOfFile;
|
---|
352 | LARGE_INTEGER AllocationSize;
|
---|
353 | ULONG FileAttributes;
|
---|
354 | ULONG FileNameLength;
|
---|
355 | ULONG EaSize;
|
---|
356 | WCHAR FileName[ANYSIZE_ARRAY];
|
---|
357 | } FILE_FULL_DIR_INFORMATION, *PFILE_FULL_DIR_INFORMATION;
|
---|
358 |
|
---|
359 | typedef struct _FILE_ID_FULL_DIR_INFORMATION {
|
---|
360 | ULONG NextEntryOffset;
|
---|
361 | ULONG FileIndex;
|
---|
362 | LARGE_INTEGER CreationTime;
|
---|
363 | LARGE_INTEGER LastAccessTime;
|
---|
364 | LARGE_INTEGER LastWriteTime;
|
---|
365 | LARGE_INTEGER ChangeTime;
|
---|
366 | LARGE_INTEGER EndOfFile;
|
---|
367 | LARGE_INTEGER AllocationSize;
|
---|
368 | ULONG FileAttributes;
|
---|
369 | ULONG FileNameLength;
|
---|
370 | ULONG EaSize;
|
---|
371 | LARGE_INTEGER FileId;
|
---|
372 | WCHAR FileName[ANYSIZE_ARRAY];
|
---|
373 | } FILE_ID_FULL_DIR_INFORMATION, *PFILE_ID_FULL_DIR_INFORMATION;
|
---|
374 |
|
---|
375 | typedef struct _FILE_BOTH_DIR_INFORMATION {
|
---|
376 | ULONG NextEntryOffset;
|
---|
377 | ULONG FileIndex;
|
---|
378 | LARGE_INTEGER CreationTime;
|
---|
379 | LARGE_INTEGER LastAccessTime;
|
---|
380 | LARGE_INTEGER LastWriteTime;
|
---|
381 | LARGE_INTEGER ChangeTime;
|
---|
382 | LARGE_INTEGER EndOfFile;
|
---|
383 | LARGE_INTEGER AllocationSize;
|
---|
384 | ULONG FileAttributes;
|
---|
385 | ULONG FileNameLength;
|
---|
386 | ULONG EaSize;
|
---|
387 | CHAR ShortNameLength;
|
---|
388 | WCHAR ShortName[12];
|
---|
389 | WCHAR FileName[ANYSIZE_ARRAY];
|
---|
390 | } FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
|
---|
391 |
|
---|
392 | typedef struct _FILE_ID_BOTH_DIR_INFORMATION {
|
---|
393 | ULONG NextEntryOffset;
|
---|
394 | ULONG FileIndex;
|
---|
395 | LARGE_INTEGER CreationTime;
|
---|
396 | LARGE_INTEGER LastAccessTime;
|
---|
397 | LARGE_INTEGER LastWriteTime;
|
---|
398 | LARGE_INTEGER ChangeTime;
|
---|
399 | LARGE_INTEGER EndOfFile;
|
---|
400 | LARGE_INTEGER AllocationSize;
|
---|
401 | ULONG FileAttributes;
|
---|
402 | ULONG FileNameLength;
|
---|
403 | ULONG EaSize;
|
---|
404 | CHAR ShortNameLength;
|
---|
405 | WCHAR ShortName[12];
|
---|
406 | LARGE_INTEGER FileId;
|
---|
407 | WCHAR FileName[ANYSIZE_ARRAY];
|
---|
408 | } FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION;
|
---|
409 |
|
---|
410 | /* Old names of dir info structures as (partially) used in Nebbitt's
|
---|
411 | Native API Reference. Keep for backward compatibility. */
|
---|
412 | typedef struct _FILE_FULL_DIR_INFORMATION
|
---|
413 | FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION;
|
---|
414 | typedef struct _FILE_ID_FULL_DIR_INFORMATION
|
---|
415 | FILE_ID_FULL_DIRECTORY_INFORMATION, *PFILE_ID_FULL_DIRECTORY_INFORMATION;
|
---|
416 | typedef struct _FILE_BOTH_DIR_INFORMATION
|
---|
417 | FILE_BOTH_DIRECTORY_INFORMATION, *PFILE_BOTH_DIRECTORY_INFORMATION;
|
---|
418 | typedef struct _FILE_ID_BOTH_DIR_INFORMATION
|
---|
419 | FILE_ID_BOTH_DIRECTORY_INFORMATION, *PFILE_ID_BOTH_DIRECTORY_INFORMATION;
|
---|
420 |
|
---|
421 | typedef struct _FILE_BASIC_INFORMATION {
|
---|
422 | LARGE_INTEGER CreationTime;
|
---|
423 | LARGE_INTEGER LastAccessTime;
|
---|
424 | LARGE_INTEGER LastWriteTime;
|
---|
425 | LARGE_INTEGER ChangeTime;
|
---|
426 | ULONG FileAttributes;
|
---|
427 | } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
|
---|
428 |
|
---|
429 | typedef struct _FILE_STANDARD_INFORMATION {
|
---|
430 | LARGE_INTEGER AllocationSize;
|
---|
431 | LARGE_INTEGER EndOfFile;
|
---|
432 | ULONG NumberOfLinks;
|
---|
433 | BOOLEAN DeletePending;
|
---|
434 | BOOLEAN Directory;
|
---|
435 | } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION;
|
---|
436 |
|
---|
437 | typedef struct _FILE_INTERNAL_INFORMATION {
|
---|
438 | LARGE_INTEGER IndexNumber;
|
---|
439 | } FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION;
|
---|
440 |
|
---|
441 | typedef struct _FILE_EA_INFORMATION {
|
---|
442 | ULONG EaSize;
|
---|
443 | } FILE_EA_INFORMATION, *PFILE_EA_INFORMATION;
|
---|
444 |
|
---|
445 | typedef struct _FILE_ACCESS_INFORMATION {
|
---|
446 | ACCESS_MASK AccessFlags;
|
---|
447 | } FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION;
|
---|
448 |
|
---|
449 | typedef struct _FILE_LINK_INFORMATION {
|
---|
450 | BOOLEAN ReplaceIfExists;
|
---|
451 | HANDLE RootDirectory;
|
---|
452 | ULONG FileNameLength;
|
---|
453 | WCHAR FileName[1];
|
---|
454 | } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION;
|
---|
455 |
|
---|
456 | typedef struct _FILE_NAME_INFORMATION {
|
---|
457 | ULONG FileNameLength;
|
---|
458 | WCHAR FileName[1];
|
---|
459 | } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
|
---|
460 |
|
---|
461 | typedef struct _FILE_RENAME_INFORMATION {
|
---|
462 | BOOLEAN ReplaceIfExists;
|
---|
463 | HANDLE RootDirectory;
|
---|
464 | ULONG FileNameLength;
|
---|
465 | WCHAR FileName[1];
|
---|
466 | } FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;
|
---|
467 |
|
---|
468 | typedef struct _FILE_NAMES_INFORMATION {
|
---|
469 | ULONG NextEntryOffset;
|
---|
470 | ULONG FileIndex;
|
---|
471 | ULONG FileNameLength;
|
---|
472 | WCHAR FileName[1];
|
---|
473 | } FILE_NAMES_INFORMATION, *PFILE_NAMES_INFORMATION;
|
---|
474 |
|
---|
475 | typedef struct _FILE_DISPOSITION_INFORMATION {
|
---|
476 | BOOLEAN DoDeleteFile;
|
---|
477 | } FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
|
---|
478 |
|
---|
479 | typedef struct _FILE_POSITION_INFORMATION {
|
---|
480 | LARGE_INTEGER CurrentByteOffset;
|
---|
481 | } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
|
---|
482 |
|
---|
483 | typedef struct _FILE_ALIGNMENT_INFORMATION {
|
---|
484 | ULONG AlignmentRequirement;
|
---|
485 | } FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION;
|
---|
486 |
|
---|
487 | typedef struct _FILE_ALLOCATION_INFORMATION {
|
---|
488 | LARGE_INTEGER AllocationSize;
|
---|
489 | } FILE_ALLOCATION_INFORMATION, *PFILE_ALLOCATION_INFORMATION;
|
---|
490 |
|
---|
491 | typedef struct _FILE_END_OF_FILE_INFORMATION {
|
---|
492 | LARGE_INTEGER EndOfFile;
|
---|
493 | } FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION;
|
---|
494 |
|
---|
495 | typedef struct _FILE_NETWORK_OPEN_INFORMATION {
|
---|
496 | LARGE_INTEGER CreationTime;
|
---|
497 | LARGE_INTEGER LastAccessTime;
|
---|
498 | LARGE_INTEGER LastWriteTime;
|
---|
499 | LARGE_INTEGER ChangeTime;
|
---|
500 | LARGE_INTEGER AllocationSize;
|
---|
501 | LARGE_INTEGER EndOfFile;
|
---|
502 | ULONG FileAttributes;
|
---|
503 | } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;
|
---|
504 |
|
---|
505 | typedef struct _FILE_FULL_EA_INFORMATION {
|
---|
506 | ULONG NextEntryOffset;
|
---|
507 | UCHAR Flags;
|
---|
508 | UCHAR EaNameLength;
|
---|
509 | USHORT EaValueLength;
|
---|
510 | CHAR EaName[1];
|
---|
511 | } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
|
---|
512 |
|
---|
513 | typedef struct _FILE_MODE_INFORMATION {
|
---|
514 | ULONG Mode;
|
---|
515 | } FILE_MODE_INFORMATION, *PFILE_MODE_INFORMATION;
|
---|
516 |
|
---|
517 | typedef struct _FILE_STREAM_INFORMATION {
|
---|
518 | ULONG NextEntryOffset;
|
---|
519 | ULONG StreamNameLength;
|
---|
520 | LARGE_INTEGER StreamSize;
|
---|
521 | LARGE_INTEGER StreamAllocationSize;
|
---|
522 | WCHAR StreamName[1];
|
---|
523 | } FILE_STREAM_INFORMATION, *PFILE_STREAM_INFORMATION;
|
---|
524 |
|
---|
525 | typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION {
|
---|
526 | ULONG FileAttributes;
|
---|
527 | ULONG ReparseTag;
|
---|
528 | } FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION;
|
---|
529 |
|
---|
530 | typedef struct _FILE_MAILSLOT_QUERY_INFORMATION {
|
---|
531 | ULONG MaximumMessageSize;
|
---|
532 | ULONG MailslotQuota;
|
---|
533 | ULONG NextMessageSize;
|
---|
534 | ULONG MessagesAvailable;
|
---|
535 | LARGE_INTEGER ReadTimeout;
|
---|
536 | } FILE_MAILSLOT_QUERY_INFORMATION, *PFILE_MAILSLOT_QUERY_INFORMATION;
|
---|
537 |
|
---|
538 | typedef struct _FILE_MAILSLOT_SET_INFORMATION {
|
---|
539 | LARGE_INTEGER ReadTimeout;
|
---|
540 | } FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION;
|
---|
541 |
|
---|
542 | typedef struct _FILE_PIPE_LOCAL_INFORMATION {
|
---|
543 | ULONG NamedPipeType;
|
---|
544 | ULONG NamedPipeConfiguration;
|
---|
545 | ULONG MaximumInstances;
|
---|
546 | ULONG CurrentInstances;
|
---|
547 | ULONG InboundQuota;
|
---|
548 | ULONG ReadDataAvailable;
|
---|
549 | ULONG OutboundQuota;
|
---|
550 | ULONG WriteQuotaAvailable;
|
---|
551 | ULONG NamedPipeState;
|
---|
552 | ULONG NamedPipeEnd;
|
---|
553 | } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION;
|
---|
554 |
|
---|
555 | typedef struct _FILE_ALL_INFORMATION {
|
---|
556 | FILE_BASIC_INFORMATION BasicInformation;
|
---|
557 | FILE_STANDARD_INFORMATION StandardInformation;
|
---|
558 | FILE_INTERNAL_INFORMATION InternalInformation;
|
---|
559 | FILE_EA_INFORMATION EaInformation;
|
---|
560 | FILE_ACCESS_INFORMATION AccessInformation;
|
---|
561 | FILE_POSITION_INFORMATION PositionInformation;
|
---|
562 | FILE_MODE_INFORMATION ModeInformation;
|
---|
563 | FILE_ALIGNMENT_INFORMATION AlignmentInformation;
|
---|
564 | FILE_NAME_INFORMATION NameInformation;
|
---|
565 | } FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
|
---|
566 |
|
---|
567 | typedef enum _FSINFOCLASS {
|
---|
568 | FileFsVolumeInformation = 1,
|
---|
569 | FileFsLabelInformation,
|
---|
570 | FileFsSizeInformation,
|
---|
571 | FileFsDeviceInformation,
|
---|
572 | FileFsAttributeInformation,
|
---|
573 | FileFsControlInformation,
|
---|
574 | FileFsFullSizeInformation,
|
---|
575 | FileFsObjectIdInformation,
|
---|
576 | FileFsDriverPathInformation,
|
---|
577 | FileFsVolumeFlagsInformation,
|
---|
578 | FileFsMaximumInformation
|
---|
579 | } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
|
---|
580 |
|
---|
581 | typedef struct _FILE_FS_VOLUME_INFORMATION {
|
---|
582 | LARGE_INTEGER VolumeCreationTime;
|
---|
583 | ULONG VolumeSerialNumber;
|
---|
584 | ULONG VolumeLabelLength;
|
---|
585 | BOOLEAN SupportsObjects;
|
---|
586 | WCHAR VolumeLabel[1];
|
---|
587 | } FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
|
---|
588 |
|
---|
589 | typedef struct _FILE_FS_LABEL_INFORMATION {
|
---|
590 | ULONG VolumeLabelLength;
|
---|
591 | WCHAR VolumeLabel[1];
|
---|
592 | } FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION;
|
---|
593 |
|
---|
594 | typedef struct _FILE_FS_SIZE_INFORMATION {
|
---|
595 | LARGE_INTEGER TotalAllocationUnits;
|
---|
596 | LARGE_INTEGER AvailableAllocationUnits;
|
---|
597 | ULONG SectorsPerAllocationUnit;
|
---|
598 | ULONG BytesPerSector;
|
---|
599 | } FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
|
---|
600 |
|
---|
601 | typedef struct _FILE_FS_DEVICE_INFORMATION {
|
---|
602 | DEVICE_TYPE DeviceType;
|
---|
603 | ULONG Characteristics;
|
---|
604 | } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
|
---|
605 |
|
---|
606 | typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
|
---|
607 | ULONG FileSystemAttributes;
|
---|
608 | ULONG MaximumComponentNameLength;
|
---|
609 | ULONG FileSystemNameLength;
|
---|
610 | WCHAR FileSystemName[1];
|
---|
611 | } FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
|
---|
612 |
|
---|
613 | typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
|
---|
614 | LARGE_INTEGER TotalAllocationUnits;
|
---|
615 | LARGE_INTEGER CallerAvailableAllocationUnits;
|
---|
616 | LARGE_INTEGER ActualAvailableAllocationUnits;
|
---|
617 | ULONG SectorsPerAllocationUnit;
|
---|
618 | ULONG BytesPerSector;
|
---|
619 | } FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
|
---|
620 |
|
---|
621 | typedef struct _FILE_FS_OBJECTID_INFORMATION {
|
---|
622 | UCHAR ObjectId[16];
|
---|
623 | UCHAR ExtendedInfo[48];
|
---|
624 | } FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;
|
---|
625 |
|
---|
626 | typedef struct _IO_STATUS_BLOCK {
|
---|
627 | __C89_NAMELESS union {
|
---|
628 | NTSTATUS Status;
|
---|
629 | PVOID Pointer;
|
---|
630 | };
|
---|
631 | ULONG_PTR Information;
|
---|
632 | } IO_STATUS_BLOCK,*PIO_STATUS_BLOCK;
|
---|
633 |
|
---|
634 | typedef VOID (NTAPI *PIO_APC_ROUTINE)(PVOID ApcContext,PIO_STATUS_BLOCK IoStatusBlock,ULONG Reserved);
|
---|
635 |
|
---|
636 | #ifdef __ia64__
|
---|
637 | typedef struct _FRAME_POINTERS {
|
---|
638 | ULONGLONG MemoryStackFp;
|
---|
639 | ULONGLONG BackingStoreFp;
|
---|
640 | } FRAME_POINTERS,*PFRAME_POINTERS;
|
---|
641 |
|
---|
642 | #define UNWIND_HISTORY_TABLE_SIZE 12
|
---|
643 |
|
---|
644 | typedef struct _RUNTIME_FUNCTION {
|
---|
645 | ULONG BeginAddress;
|
---|
646 | ULONG EndAddress;
|
---|
647 | ULONG UnwindInfoAddress;
|
---|
648 | } RUNTIME_FUNCTION,*PRUNTIME_FUNCTION;
|
---|
649 |
|
---|
650 | typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
|
---|
651 | ULONG64 ImageBase;
|
---|
652 | ULONG64 Gp;
|
---|
653 | PRUNTIME_FUNCTION FunctionEntry;
|
---|
654 | } UNWIND_HISTORY_TABLE_ENTRY,*PUNWIND_HISTORY_TABLE_ENTRY;
|
---|
655 |
|
---|
656 | typedef struct _UNWIND_HISTORY_TABLE {
|
---|
657 | ULONG Count;
|
---|
658 | UCHAR Search;
|
---|
659 | ULONG64 LowAddress;
|
---|
660 | ULONG64 HighAddress;
|
---|
661 | UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
|
---|
662 | } UNWIND_HISTORY_TABLE,*PUNWIND_HISTORY_TABLE;
|
---|
663 | #endif
|
---|
664 |
|
---|
665 | typedef struct _VM_COUNTERS {
|
---|
666 | SIZE_T PeakVirtualSize;
|
---|
667 | SIZE_T VirtualSize;
|
---|
668 | ULONG PageFaultCount;
|
---|
669 | SIZE_T PeakWorkingSetSize;
|
---|
670 | SIZE_T WorkingSetSize;
|
---|
671 | SIZE_T QuotaPeakPagedPoolUsage;
|
---|
672 | SIZE_T QuotaPagedPoolUsage;
|
---|
673 | SIZE_T QuotaPeakNonPagedPoolUsage;
|
---|
674 | SIZE_T QuotaNonPagedPoolUsage;
|
---|
675 | SIZE_T PagefileUsage;
|
---|
676 | SIZE_T PeakPagefileUsage;
|
---|
677 | } VM_COUNTERS, *PVM_COUNTERS;
|
---|
678 |
|
---|
679 | typedef enum _THREAD_STATE {
|
---|
680 | StateInitialized = 0,
|
---|
681 | StateReady, StateRunning, StateStandby, StateTerminated,
|
---|
682 | StateWait, StateTransition,
|
---|
683 | StateUnknown
|
---|
684 | } THREAD_STATE;
|
---|
685 |
|
---|
686 | typedef struct _CLIENT_ID {
|
---|
687 | HANDLE UniqueProcess;
|
---|
688 | HANDLE UniqueThread;
|
---|
689 | } CLIENT_ID, *PCLIENT_ID;
|
---|
690 |
|
---|
691 | typedef LONG KPRIORITY;
|
---|
692 |
|
---|
693 | typedef enum _KWAIT_REASON {
|
---|
694 | Executive = 0,
|
---|
695 | FreePage, PageIn, PoolAllocation, DelayExecution,
|
---|
696 | Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn,
|
---|
697 | WrPoolAllocation, WrDelayExecution, WrSuspended,
|
---|
698 | WrUserRequest, WrEventPair, WrQueue, WrLpcReceive,
|
---|
699 | WrLpcReply, WrVirtualMemory, WrPageOut, WrRendezvous,
|
---|
700 | Spare2, Spare3, Spare4, Spare5, Spare6, WrKernel,
|
---|
701 | MaximumWaitReason
|
---|
702 | } KWAIT_REASON;
|
---|
703 |
|
---|
704 | typedef struct _SYSTEM_THREADS
|
---|
705 | {
|
---|
706 | LARGE_INTEGER KernelTime;
|
---|
707 | LARGE_INTEGER UserTime;
|
---|
708 | LARGE_INTEGER CreateTime;
|
---|
709 | ULONG WaitTime;
|
---|
710 | PVOID StartAddress;
|
---|
711 | CLIENT_ID ClientId;
|
---|
712 | KPRIORITY Priority;
|
---|
713 | KPRIORITY BasePriority;
|
---|
714 | ULONG ContextSwitchCount;
|
---|
715 | THREAD_STATE State;
|
---|
716 | KWAIT_REASON WaitReason;
|
---|
717 | } SYSTEM_THREADS, *PSYSTEM_THREADS;
|
---|
718 |
|
---|
719 | typedef struct _PROCESS_BASIC_INFORMATION {
|
---|
720 | NTSTATUS ExitStatus;
|
---|
721 | PPEB PebBaseAddress;
|
---|
722 | KAFFINITY AffinityMask;
|
---|
723 | KPRIORITY BasePriority;
|
---|
724 | ULONG_PTR UniqueProcessId;
|
---|
725 | ULONG_PTR InheritedFromUniqueProcessId;
|
---|
726 | } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
|
---|
727 |
|
---|
728 | typedef struct _KERNEL_USER_TIMES {
|
---|
729 | FILETIME CreateTime;
|
---|
730 | FILETIME ExitTime;
|
---|
731 | LARGE_INTEGER KernelTime;
|
---|
732 | LARGE_INTEGER UserTime;
|
---|
733 | } KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
|
---|
734 |
|
---|
735 | typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION {
|
---|
736 | LARGE_INTEGER IdleTime;
|
---|
737 | LARGE_INTEGER KernelTime;
|
---|
738 | LARGE_INTEGER UserTime;
|
---|
739 | LARGE_INTEGER Reserved1[2];
|
---|
740 | ULONG Reserved2;
|
---|
741 | } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION,*PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
|
---|
742 |
|
---|
743 | typedef struct _SYSTEM_PROCESS_INFORMATION {
|
---|
744 | ULONG NextEntryOffset;
|
---|
745 | ULONG NumberOfThreads;
|
---|
746 | LARGE_INTEGER Reserved[3];
|
---|
747 | LARGE_INTEGER CreateTime;
|
---|
748 | LARGE_INTEGER UserTime;
|
---|
749 | LARGE_INTEGER KernelTime;
|
---|
750 | UNICODE_STRING ImageName;
|
---|
751 | KPRIORITY BasePriority;
|
---|
752 | HANDLE UniqueProcessId;
|
---|
753 | HANDLE InheritedFromUniqueProcessId;
|
---|
754 | ULONG HandleCount;
|
---|
755 | ULONG SessionId;
|
---|
756 | ULONG PageDirectoryBase;
|
---|
757 | VM_COUNTERS VirtualMemoryCounters;
|
---|
758 | SIZE_T PrivatePageCount;
|
---|
759 | IO_COUNTERS IoCounters;
|
---|
760 | } SYSTEM_PROCESS_INFORMATION,*PSYSTEM_PROCESS_INFORMATION;
|
---|
761 |
|
---|
762 | typedef struct _SYSTEM_THREAD_INFORMATION {
|
---|
763 | LARGE_INTEGER Reserved1[3];
|
---|
764 | ULONG Reserved2;
|
---|
765 | PVOID StartAddress;
|
---|
766 | CLIENT_ID ClientId;
|
---|
767 | KPRIORITY Priority;
|
---|
768 | LONG BasePriority;
|
---|
769 | ULONG Reserved3;
|
---|
770 | ULONG ThreadState;
|
---|
771 | ULONG WaitReason;
|
---|
772 | } SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION;
|
---|
773 |
|
---|
774 | typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION {
|
---|
775 | ULONG RegistryQuotaAllowed;
|
---|
776 | ULONG RegistryQuotaUsed;
|
---|
777 | PVOID Reserved1;
|
---|
778 | } SYSTEM_REGISTRY_QUOTA_INFORMATION,*PSYSTEM_REGISTRY_QUOTA_INFORMATION;
|
---|
779 |
|
---|
780 | typedef struct _SYSTEM_BASIC_INFORMATION {
|
---|
781 | BYTE Reserved1[4];
|
---|
782 | ULONG MaximumIncrement;
|
---|
783 | ULONG PhysicalPageSize;
|
---|
784 | ULONG NumberOfPhysicalPages;
|
---|
785 | ULONG LowestPhysicalPage;
|
---|
786 | ULONG HighestPhysicalPage;
|
---|
787 | ULONG AllocationGranularity;
|
---|
788 | ULONG_PTR LowestUserAddress;
|
---|
789 | ULONG_PTR HighestUserAddress;
|
---|
790 | ULONG_PTR ActiveProcessors;
|
---|
791 | CCHAR NumberOfProcessors;
|
---|
792 | } SYSTEM_BASIC_INFORMATION,*PSYSTEM_BASIC_INFORMATION;
|
---|
793 |
|
---|
794 | typedef struct _SYSTEM_PROCESSOR_INFORMATION {
|
---|
795 | USHORT ProcessorArchitecture;
|
---|
796 | USHORT ProcessorLevel;
|
---|
797 | USHORT ProcessorRevision;
|
---|
798 | USHORT Unknown;
|
---|
799 | ULONG FeatureBits;
|
---|
800 | } SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
|
---|
801 |
|
---|
802 | typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
|
---|
803 | LARGE_INTEGER BootTime;
|
---|
804 | LARGE_INTEGER CurrentTime;
|
---|
805 | LARGE_INTEGER TimeZoneBias;
|
---|
806 | ULONG CurrentTimeZoneId;
|
---|
807 | BYTE Reserved1[20];
|
---|
808 | } SYSTEM_TIMEOFDAY_INFORMATION,*PSYSTEM_TIMEOFDAY_INFORMATION;
|
---|
809 |
|
---|
810 | typedef struct _SYSTEM_PERFORMANCE_INFORMATION {
|
---|
811 | LARGE_INTEGER IdleTime;
|
---|
812 | LARGE_INTEGER ReadTransferCount;
|
---|
813 | LARGE_INTEGER WriteTransferCount;
|
---|
814 | LARGE_INTEGER OtherTransferCount;
|
---|
815 | ULONG ReadOperationCount;
|
---|
816 | ULONG WriteOperationCount;
|
---|
817 | ULONG OtherOperationCount;
|
---|
818 | ULONG AvailablePages;
|
---|
819 | ULONG TotalCommittedPages;
|
---|
820 | ULONG TotalCommitLimit;
|
---|
821 | ULONG PeakCommitment;
|
---|
822 | ULONG PageFaults;
|
---|
823 | ULONG WriteCopyFaults;
|
---|
824 | ULONG TransitionFaults;
|
---|
825 | ULONG CacheTransitionFaults;
|
---|
826 | ULONG DemandZeroFaults;
|
---|
827 | ULONG PagesRead;
|
---|
828 | ULONG PageReadIos;
|
---|
829 | ULONG CacheReads;
|
---|
830 | ULONG CacheIos;
|
---|
831 | ULONG PagefilePagesWritten;
|
---|
832 | ULONG PagefilePageWriteIos;
|
---|
833 | ULONG MappedFilePagesWritten;
|
---|
834 | ULONG MappedFilePageWriteIos;
|
---|
835 | ULONG PagedPoolUsage;
|
---|
836 | ULONG NonPagedPoolUsage;
|
---|
837 | ULONG PagedPoolAllocs;
|
---|
838 | ULONG PagedPoolFrees;
|
---|
839 | ULONG NonPagedPoolAllocs;
|
---|
840 | ULONG NonPagedPoolFrees;
|
---|
841 | ULONG TotalFreeSystemPtes;
|
---|
842 | ULONG SystemCodePage;
|
---|
843 | ULONG TotalSystemDriverPages;
|
---|
844 | ULONG TotalSystemCodePages;
|
---|
845 | ULONG SmallNonPagedLookasideListAllocateHits;
|
---|
846 | ULONG SmallPagedLookasideListAllocateHits;
|
---|
847 | ULONG Reserved3;
|
---|
848 | ULONG MmSystemCachePage;
|
---|
849 | ULONG PagedPoolPage;
|
---|
850 | ULONG SystemDriverPage;
|
---|
851 | ULONG FastReadNoWait;
|
---|
852 | ULONG FastReadWait;
|
---|
853 | ULONG FastReadResourceMiss;
|
---|
854 | ULONG FastReadNotPossible;
|
---|
855 | ULONG FastMdlReadNoWait;
|
---|
856 | ULONG FastMdlReadWait;
|
---|
857 | ULONG FastMdlReadResourceMiss;
|
---|
858 | ULONG FastMdlReadNotPossible;
|
---|
859 | ULONG MapDataNoWait;
|
---|
860 | ULONG MapDataWait;
|
---|
861 | ULONG MapDataNoWaitMiss;
|
---|
862 | ULONG MapDataWaitMiss;
|
---|
863 | ULONG PinMappedDataCount;
|
---|
864 | ULONG PinReadNoWait;
|
---|
865 | ULONG PinReadWait;
|
---|
866 | ULONG PinReadNoWaitMiss;
|
---|
867 | ULONG PinReadWaitMiss;
|
---|
868 | ULONG CopyReadNoWait;
|
---|
869 | ULONG CopyReadWait;
|
---|
870 | ULONG CopyReadNoWaitMiss;
|
---|
871 | ULONG CopyReadWaitMiss;
|
---|
872 | ULONG MdlReadNoWait;
|
---|
873 | ULONG MdlReadWait;
|
---|
874 | ULONG MdlReadNoWaitMiss;
|
---|
875 | ULONG MdlReadWaitMiss;
|
---|
876 | ULONG ReadAheadIos;
|
---|
877 | ULONG LazyWriteIos;
|
---|
878 | ULONG LazyWritePages;
|
---|
879 | ULONG DataFlushes;
|
---|
880 | ULONG DataPages;
|
---|
881 | ULONG ContextSwitches;
|
---|
882 | ULONG FirstLevelTbFills;
|
---|
883 | ULONG SecondLevelTbFills;
|
---|
884 | ULONG SystemCalls;
|
---|
885 | } SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
|
---|
886 |
|
---|
887 | typedef struct _SYSTEM_EXCEPTION_INFORMATION {
|
---|
888 | BYTE Reserved1[16];
|
---|
889 | } SYSTEM_EXCEPTION_INFORMATION,*PSYSTEM_EXCEPTION_INFORMATION;
|
---|
890 |
|
---|
891 | typedef struct _SYSTEM_LOOKASIDE_INFORMATION {
|
---|
892 | BYTE Reserved1[32];
|
---|
893 | } SYSTEM_LOOKASIDE_INFORMATION,*PSYSTEM_LOOKASIDE_INFORMATION;
|
---|
894 |
|
---|
895 | typedef struct _SYSTEM_INTERRUPT_INFORMATION {
|
---|
896 | BYTE Reserved1[24];
|
---|
897 | } SYSTEM_INTERRUPT_INFORMATION,*PSYSTEM_INTERRUPT_INFORMATION;
|
---|
898 |
|
---|
899 | typedef struct _SYSTEM_POLICY_INFORMATION {
|
---|
900 | PVOID Reserved1[2];
|
---|
901 | ULONG Reserved2[3];
|
---|
902 | } SYSTEM_POLICY_INFORMATION, *PSYSTEM_POLICY_INFORMATION;
|
---|
903 |
|
---|
904 | typedef struct _SYSTEM_HANDLE_ENTRY {
|
---|
905 | ULONG OwnerPid;
|
---|
906 | BYTE ObjectType;
|
---|
907 | BYTE HandleFlags;
|
---|
908 | USHORT HandleValue;
|
---|
909 | PVOID ObjectPointer;
|
---|
910 | ULONG AccessMask;
|
---|
911 | } SYSTEM_HANDLE_ENTRY, *PSYSTEM_HANDLE_ENTRY;
|
---|
912 |
|
---|
913 | typedef struct _SYSTEM_HANDLE_INFORMATION {
|
---|
914 | ULONG Count;
|
---|
915 | SYSTEM_HANDLE_ENTRY Handle[1];
|
---|
916 | } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
|
---|
917 |
|
---|
918 | typedef struct _SYSTEM_PAGEFILE_INFORMATION {
|
---|
919 | ULONG NextEntryOffset;
|
---|
920 | ULONG CurrentSize;
|
---|
921 | ULONG TotalUsed;
|
---|
922 | ULONG PeakUsed;
|
---|
923 | UNICODE_STRING FileName;
|
---|
924 | } SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
|
---|
925 |
|
---|
926 | typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {
|
---|
927 | ULONG Attributes;
|
---|
928 | ACCESS_MASK GrantedAccess;
|
---|
929 | ULONG HandleCount;
|
---|
930 | ULONG PointerCount;
|
---|
931 | ULONG Reserved[10];
|
---|
932 | } PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION;
|
---|
933 |
|
---|
934 | typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
|
---|
935 | UNICODE_STRING TypeName;
|
---|
936 | ULONG Reserved[22];
|
---|
937 | } PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;
|
---|
938 |
|
---|
939 | typedef enum _PROCESSINFOCLASS {
|
---|
940 | ProcessBasicInformation,
|
---|
941 | ProcessQuotaLimits,
|
---|
942 | ProcessIoCounters,
|
---|
943 | ProcessVmCounters,
|
---|
944 | ProcessTimes,
|
---|
945 | ProcessBasePriority,
|
---|
946 | ProcessRaisePriority,
|
---|
947 | ProcessDebugPort,
|
---|
948 | ProcessExceptionPort,
|
---|
949 | ProcessAccessToken,
|
---|
950 | ProcessLdtInformation,
|
---|
951 | ProcessLdtSize,
|
---|
952 | ProcessDefaultHardErrorMode,
|
---|
953 | ProcessIoPortHandlers,
|
---|
954 | ProcessPooledUsageAndLimits,
|
---|
955 | ProcessWorkingSetWatch,
|
---|
956 | ProcessUserModeIOPL,
|
---|
957 | ProcessEnableAlignmentFaultFixup,
|
---|
958 | ProcessPriorityClass,
|
---|
959 | ProcessWx86Information,
|
---|
960 | ProcessHandleCount,
|
---|
961 | ProcessAffinityMask,
|
---|
962 | ProcessPriorityBoost,
|
---|
963 | ProcessDeviceMap,
|
---|
964 | ProcessSessionInformation,
|
---|
965 | ProcessForegroundInformation,
|
---|
966 | ProcessWow64Information,
|
---|
967 | ProcessImageFileName,
|
---|
968 | ProcessLUIDDeviceMapsEnabled,
|
---|
969 | ProcessBreakOnTermination,
|
---|
970 | ProcessDebugObjectHandle,
|
---|
971 | ProcessDebugFlags,
|
---|
972 | ProcessHandleTracing,
|
---|
973 | ProcessIoPriority,
|
---|
974 | ProcessExecuteFlags,
|
---|
975 | ProcessTlsInformation,
|
---|
976 | ProcessCookie,
|
---|
977 | ProcessImageInformation,
|
---|
978 | ProcessCycleTime,
|
---|
979 | ProcessPagePriority,
|
---|
980 | ProcessInstrumentationCallback,
|
---|
981 | ProcessThreadStackAllocation,
|
---|
982 | ProcessWorkingSetWatchEx,
|
---|
983 | ProcessImageFileNameWin32,
|
---|
984 | ProcessImageFileMapping,
|
---|
985 | ProcessAffinityUpdateMode,
|
---|
986 | ProcessMemoryAllocationMode,
|
---|
987 | ProcessGroupInformation,
|
---|
988 | ProcessTokenVirtualizationEnabled,
|
---|
989 | ProcessConsoleHostProcess,
|
---|
990 | ProcessWindowInformation,
|
---|
991 | MaxProcessInfoClass
|
---|
992 | } PROCESSINFOCLASS;
|
---|
993 |
|
---|
994 | typedef enum _THREADINFOCLASS {
|
---|
995 | ThreadBasicInformation,
|
---|
996 | ThreadTimes,
|
---|
997 | ThreadPriority,
|
---|
998 | ThreadBasePriority,
|
---|
999 | ThreadAffinityMask,
|
---|
1000 | ThreadImpersonationToken,
|
---|
1001 | ThreadDescriptorTableEntry,
|
---|
1002 | ThreadEnableAlignmentFaultFixup,
|
---|
1003 | ThreadEventPair,
|
---|
1004 | ThreadQuerySetWin32StartAddress,
|
---|
1005 | ThreadZeroTlsCell,
|
---|
1006 | ThreadPerformanceCount,
|
---|
1007 | ThreadAmILastThread,
|
---|
1008 | ThreadIdealProcessor,
|
---|
1009 | ThreadPriorityBoost,
|
---|
1010 | ThreadSetTlsArrayAddress,
|
---|
1011 | ThreadIsIoPending,
|
---|
1012 | ThreadHideFromDebugger
|
---|
1013 | } THREADINFOCLASS;
|
---|
1014 |
|
---|
1015 | #define CODEINTEGRITY_OPTION_ENABLED 0x01
|
---|
1016 | #define CODEINTEGRITY_OPTION_TESTSIGN 0x02
|
---|
1017 | #define CODEINTEGRITY_OPTION_UMCI_ENABLED 0x04
|
---|
1018 | #define CODEINTEGRITY_OPTION_UMCI_AUDITMODE_ENABLED 0x08
|
---|
1019 | #define CODEINTEGRITY_OPTION_UMCI_EXCLUSIONPATHS_ENABLED 0x10
|
---|
1020 | #define CODEINTEGRITY_OPTION_TEST_BUILD 0x20
|
---|
1021 | #define CODEINTEGRITY_OPTION_PREPRODUCTION_BUILD 0x40
|
---|
1022 | #define CODEINTEGRITY_OPTION_DEBUGMODE_ENABLED 0x80
|
---|
1023 | #define CODEINTEGRITY_OPTION_FLIGHT_BUILD 0x100
|
---|
1024 | #define CODEINTEGRITY_OPTION_FLIGHTING_ENABLED 0x200
|
---|
1025 | #define CODEINTEGRITY_OPTION_HVCI_KMCI_ENABLED 0x400
|
---|
1026 | #define CODEINTEGRITY_OPTION_HVCI_KMCI_AUDITMODE_ENABLED 0x800
|
---|
1027 | #define CODEINTEGRITY_OPTION_HVCI_KMCI_STRICTMODE_ENABLED 0x1000
|
---|
1028 | #define CODEINTEGRITY_OPTION_HVCI_IUM_ENABLED 0x2000
|
---|
1029 |
|
---|
1030 | typedef struct _SYSTEM_CODEINTEGRITY_INFORMATION {
|
---|
1031 | ULONG Length;
|
---|
1032 | ULONG CodeIntegrityOptions;
|
---|
1033 | } SYSTEM_CODEINTEGRITY_INFORMATION, *PSYSTEM_CODEINTEGRITY_INFORMATION;
|
---|
1034 |
|
---|
1035 | typedef enum _SYSTEM_INFORMATION_CLASS {
|
---|
1036 | SystemBasicInformation = 0,
|
---|
1037 | SystemProcessorInformation = 1,
|
---|
1038 | SystemPerformanceInformation = 2,
|
---|
1039 | SystemTimeOfDayInformation = 3,
|
---|
1040 | SystemProcessInformation = 5,
|
---|
1041 | SystemProcessorPerformanceInformation = 8,
|
---|
1042 | SystemHandleInformation = 16,
|
---|
1043 | SystemPagefileInformation = 18,
|
---|
1044 | SystemInterruptInformation = 23,
|
---|
1045 | SystemExceptionInformation = 33,
|
---|
1046 | SystemRegistryQuotaInformation = 37,
|
---|
1047 | SystemLookasideInformation = 45
|
---|
1048 | } SYSTEM_INFORMATION_CLASS;
|
---|
1049 |
|
---|
1050 | typedef enum _OBJECT_INFORMATION_CLASS {
|
---|
1051 | ObjectBasicInformation,
|
---|
1052 | ObjectNameInformation,
|
---|
1053 | ObjectTypeInformation,
|
---|
1054 | ObjectAllInformation,
|
---|
1055 | ObjectDataInformation
|
---|
1056 | } OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS;
|
---|
1057 |
|
---|
1058 | #if (_WIN32_WINNT >= 0x0501)
|
---|
1059 | #define INTERNAL_TS_ACTIVE_CONSOLE_ID (*((volatile ULONG*)(0x7ffe02d8)))
|
---|
1060 | #endif
|
---|
1061 |
|
---|
1062 | #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length))
|
---|
1063 | #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
|
---|
1064 | #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
|
---|
1065 |
|
---|
1066 | typedef struct _KEY_VALUE_ENTRY {
|
---|
1067 | PUNICODE_STRING ValueName;
|
---|
1068 | ULONG DataLength;
|
---|
1069 | ULONG DataOffset;
|
---|
1070 | ULONG Type;
|
---|
1071 | } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;
|
---|
1072 |
|
---|
1073 | typedef enum _KEY_SET_INFORMATION_CLASS {
|
---|
1074 | KeyWriteTimeInformation,
|
---|
1075 | KeyWow64FlagsInformation,
|
---|
1076 | KeyControlFlagsInformation,
|
---|
1077 | KeySetVirtualizationInformation,
|
---|
1078 | KeySetDebugInformation,
|
---|
1079 | KeySetHandleTagsInformation,
|
---|
1080 | MaxKeySetInfoClass
|
---|
1081 | } KEY_SET_INFORMATION_CLASS;
|
---|
1082 |
|
---|
1083 | NTSTATUS NTAPI NtClose(HANDLE Handle);
|
---|
1084 | NTSTATUS NTAPI NtCreateFile(PHANDLE FileHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PIO_STATUS_BLOCK IoStatusBlock,PLARGE_INTEGER AllocationSize,ULONG FileAttributes,ULONG ShareAccess,ULONG CreateDisposition,ULONG CreateOptions,PVOID EaBuffer,ULONG EaLength);
|
---|
1085 | NTSTATUS NTAPI NtOpenFile(PHANDLE FileHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PIO_STATUS_BLOCK IoStatusBlock,ULONG ShareAccess,ULONG OpenOptions);
|
---|
1086 | NTSTATUS NTAPI NtRenameKey(HANDLE KeyHandle, PUNICODE_STRING NewName);
|
---|
1087 | NTSTATUS NTAPI NtNotifyChangeMultipleKeys(HANDLE MasterKeyHandle, ULONG Count, OBJECT_ATTRIBUTES SubordinateObjects[], HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG CompletionFilter, BOOLEAN WatchTree, PVOID Buffer, ULONG BufferSize, BOOLEAN Asynchronous);
|
---|
1088 | NTSTATUS NTAPI NtQueryMultipleValueKey(HANDLE KeyHandle, PKEY_VALUE_ENTRY ValueEntries, ULONG EntryCount, PVOID ValueBuffer, PULONG BufferLength, PULONG RequiredBufferLength);
|
---|
1089 | NTSTATUS NTAPI NtSetInformationKey(HANDLE KeyHandle, KEY_SET_INFORMATION_CLASS KeySetInformationClass, PVOID KeySetInformation, ULONG KeySetInformationLength);
|
---|
1090 | NTSTATUS NTAPI NtFsControlFile(HANDLE FileHandle,HANDLE Event,PIO_APC_ROUTINE ApcRoutine,PVOID ApcContext,PIO_STATUS_BLOCK IoStatusBlock,ULONG IoControlCode,PVOID InputBuffer,ULONG InputBufferLength,PVOID OutputBuffer,ULONG OutputBufferLength);
|
---|
1091 | NTSTATUS NTAPI NtDeviceIoControlFile(HANDLE FileHandle,HANDLE Event,PIO_APC_ROUTINE ApcRoutine,PVOID ApcContext,PIO_STATUS_BLOCK IoStatusBlock,ULONG IoControlCode,PVOID InputBuffer,ULONG InputBufferLength,PVOID OutputBuffer,ULONG OutputBufferLength);
|
---|
1092 | NTSTATUS NTAPI NtWaitForSingleObject(HANDLE Handle,BOOLEAN Alertable,PLARGE_INTEGER Timeout);
|
---|
1093 | BOOLEAN NTAPI RtlIsNameLegalDOS8Dot3(PUNICODE_STRING Name,POEM_STRING OemName,PBOOLEAN NameContainsSpaces);
|
---|
1094 | ULONG NTAPI RtlNtStatusToDosError (NTSTATUS Status);
|
---|
1095 | NTSTATUS NTAPI NtQueryInformationProcess(HANDLE ProcessHandle,PROCESSINFOCLASS ProcessInformationClass,PVOID ProcessInformation,ULONG ProcessInformationLength,PULONG ReturnLength);
|
---|
1096 | NTSTATUS NTAPI NtQueryInformationThread(HANDLE ThreadHandle,THREADINFOCLASS ThreadInformationClass,PVOID ThreadInformation,ULONG ThreadInformationLength,PULONG ReturnLength);
|
---|
1097 | NTSTATUS NTAPI NtQueryInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,ULONG len,FILE_INFORMATION_CLASS FileInformationClass);
|
---|
1098 | NTSTATUS NTAPI NtQueryObject(HANDLE Handle,OBJECT_INFORMATION_CLASS ObjectInformationClass,PVOID ObjectInformation,ULONG ObjectInformationLength,PULONG ReturnLength);
|
---|
1099 | NTSTATUS NTAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass,PVOID SystemInformation,ULONG SystemInformationLength,PULONG ReturnLength);
|
---|
1100 | NTSTATUS NTAPI NtQuerySystemTime(PLARGE_INTEGER SystemTime);
|
---|
1101 | NTSTATUS NTAPI NtQueryVolumeInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,ULONG len,FS_INFORMATION_CLASS FsInformationClass);
|
---|
1102 | NTSTATUS NTAPI NtSetInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,ULONG len,FILE_INFORMATION_CLASS FileInformationClass);
|
---|
1103 | NTSTATUS NTAPI NtSetInformationProcess(HANDLE ProcessHandle, PROCESSINFOCLASS ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength);
|
---|
1104 | NTSTATUS NTAPI NtSetVolumeInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,ULONG len,FILE_INFORMATION_CLASS FileInformationClass);
|
---|
1105 | NTSTATUS NTAPI RtlLocalTimeToSystemTime(PLARGE_INTEGER LocalTime,PLARGE_INTEGER SystemTime);
|
---|
1106 | BOOLEAN NTAPI RtlTimeToSecondsSince1970(PLARGE_INTEGER Time,PULONG ElapsedSeconds);
|
---|
1107 | VOID NTAPI RtlFreeAnsiString(PANSI_STRING AnsiString);
|
---|
1108 | VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString);
|
---|
1109 | VOID NTAPI RtlFreeOemString(POEM_STRING OemString);
|
---|
1110 | VOID NTAPI RtlInitString (PSTRING DestinationString,PCSZ SourceString);
|
---|
1111 | NTSTATUS NTAPI RtlInitStringEx(PSTRING DestinationString, PCSZ SourceString);
|
---|
1112 | VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString,PCSZ SourceString);
|
---|
1113 | NTSTATUS NTAPI RtlInitAnsiStringEx(PANSI_STRING DestinationString, PCSZ SourceString);
|
---|
1114 | VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString,PCWSTR SourceString);
|
---|
1115 | NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString,PCANSI_STRING SourceString,BOOLEAN AllocateDestinationString);
|
---|
1116 | NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString,PCUNICODE_STRING SourceString,BOOLEAN AllocateDestinationString);
|
---|
1117 | NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString,PCUNICODE_STRING SourceString,BOOLEAN AllocateDestinationString);
|
---|
1118 | NTSTATUS NTAPI RtlUnicodeToMultiByteSize(PULONG BytesInMultiByteString,PWCH UnicodeString,ULONG BytesInUnicodeString);
|
---|
1119 | NTSTATUS NTAPI RtlCharToInteger (PCSZ String,ULONG Base,PULONG Value);
|
---|
1120 | NTSTATUS NTAPI RtlConvertSidToUnicodeString(PUNICODE_STRING UnicodeString,PSID Sid,BOOLEAN AllocateDestinationString);
|
---|
1121 | ULONG NTAPI RtlUniform(PULONG Seed);
|
---|
1122 | VOID NTAPI RtlUnwind (PVOID TargetFrame,PVOID TargetIp,PEXCEPTION_RECORD ExceptionRecord,PVOID ReturnValue);
|
---|
1123 | BOOL NTAPI RtlDosPathNameToNtPathName_U(PCWSTR DosPathName, PUNICODE_STRING NtPathName, PCWSTR *NtFileNamePart, VOID *DirectoryInfo);
|
---|
1124 | BOOLEAN NTAPI RtlPrefixUnicodeString(PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInSensitive);
|
---|
1125 | BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING target, LPCSTR src);
|
---|
1126 | #ifdef __ia64__
|
---|
1127 | VOID RtlUnwind2(FRAME_POINTERS TargetFrame,PVOID TargetIp,PEXCEPTION_RECORD ExceptionRecord,PVOID ReturnValue,PCONTEXT ContextRecord);
|
---|
1128 | VOID RtlUnwindEx(FRAME_POINTERS TargetFrame,PVOID TargetIp,PEXCEPTION_RECORD ExceptionRecord,PVOID ReturnValue,PCONTEXT ContextRecord,PUNWIND_HISTORY_TABLE HistoryTable);
|
---|
1129 | #endif
|
---|
1130 |
|
---|
1131 | typedef NTSTATUS (NTAPI *PRTL_HEAP_COMMIT_ROUTINE) (PVOID Base, PVOID *CommitAddress, PSIZE_T CommitSize);
|
---|
1132 |
|
---|
1133 | typedef struct _RTL_HEAP_PARAMETERS {
|
---|
1134 | ULONG Length;
|
---|
1135 | SIZE_T SegmentReserve;
|
---|
1136 | SIZE_T SegmentCommit;
|
---|
1137 | SIZE_T DeCommitFreeBlockThreshold;
|
---|
1138 | SIZE_T DeCommitTotalFreeThreshold;
|
---|
1139 | SIZE_T MaximumAllocationSize;
|
---|
1140 | SIZE_T VirtualMemoryThreshold;
|
---|
1141 | SIZE_T InitialCommit;
|
---|
1142 | SIZE_T InitialReserve;
|
---|
1143 | PRTL_HEAP_COMMIT_ROUTINE CommitRoutine;
|
---|
1144 | SIZE_T Reserved[ 2 ];
|
---|
1145 | } RTL_HEAP_PARAMETERS, *PRTL_HEAP_PARAMETERS;
|
---|
1146 |
|
---|
1147 | BOOLEAN NTAPI RtlFreeHeap(PVOID HeapHandle, ULONG Flags, PVOID HeapBase);
|
---|
1148 | PVOID NTAPI RtlAllocateHeap(PVOID HeapHandle, ULONG Flags, SIZE_T Size);
|
---|
1149 | PVOID NTAPI RtlCreateHeap(ULONG Flags, PVOID HeapBase, SIZE_T ReserveSize, SIZE_T CommitSize, PVOID Lock, PRTL_HEAP_PARAMETERS Parameters);
|
---|
1150 | PVOID NTAPI RtlDestroyHeap(PVOID HeapHandle);
|
---|
1151 |
|
---|
1152 | #define LOGONID_CURRENT ((ULONG)-1)
|
---|
1153 | #define SERVERNAME_CURRENT ((HANDLE)NULL)
|
---|
1154 |
|
---|
1155 | typedef enum _WINSTATIONINFOCLASS {
|
---|
1156 | WinStationInformation = 8
|
---|
1157 | } WINSTATIONINFOCLASS;
|
---|
1158 |
|
---|
1159 | typedef struct _WINSTATIONINFORMATIONW {
|
---|
1160 | BYTE Reserved2[70];
|
---|
1161 | ULONG LogonId;
|
---|
1162 | BYTE Reserved3[1140];
|
---|
1163 | } WINSTATIONINFORMATIONW,*PWINSTATIONINFORMATIONW;
|
---|
1164 |
|
---|
1165 | typedef BOOLEAN (NTAPI *PWINSTATIONQUERYINFORMATIONW)(HANDLE,ULONG,WINSTATIONINFOCLASS,PVOID,ULONG,PULONG);
|
---|
1166 |
|
---|
1167 | #ifdef __cplusplus
|
---|
1168 | }
|
---|
1169 | #endif
|
---|
1170 |
|
---|
1171 | #endif
|
---|
1172 |
|
---|