ReactOS
0.4.16-dev-250-g3ecd236
winternl.h
Go to the documentation of this file.
1
/*
2
* Internal NT APIs and data structures
3
*
4
* Copyright (C) the Wine project
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19
*/
20
21
#ifndef __WINE_WINTERNL_H
22
#define __WINE_WINTERNL_H
23
24
#ifndef __REACTOS__
25
#include <ntdef.h>
26
#endif
/* __REACTOS__ */
27
#include <
windef.h
>
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
/* defined(__cplusplus) */
32
33
#ifdef __REACTOS__
34
typedef
enum
_TIMER_TYPE
{
35
NotificationTimer
,
36
SynchronizationTimer
37
}
TIMER_TYPE
;
38
typedef
enum
_EVENT_TYPE
{
39
NotificationEvent
,
40
SynchronizationEvent
41
}
EVENT_TYPE
, *PEVENT_TYPE;
42
#define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
43
#endif
/* __REACTOS__ */
44
45
/**********************************************************************
46
* Fundamental types and data structures
47
*/
48
49
#ifndef WINE_NTSTATUS_DECLARED
50
#define WINE_NTSTATUS_DECLARED
51
typedef
LONG
NTSTATUS
;
52
#ifdef __REACTOS__
53
typedef
NTSTATUS
*
PNTSTATUS
;
54
#endif
/* __REACTOS__ */
55
#endif
56
57
typedef
const
char
*
PCSZ
;
58
59
typedef
short
CSHORT
;
60
typedef
CSHORT
*
PCSHORT
;
61
62
#ifndef __STRING_DEFINED__
63
#define __STRING_DEFINED__
64
typedef
struct
_STRING
{
65
USHORT
Length
;
66
USHORT
MaximumLength
;
67
PCHAR
Buffer
;
68
}
STRING
, *
PSTRING
;
69
#endif
70
71
typedef
STRING
ANSI_STRING
;
72
typedef
PSTRING
PANSI_STRING
;
73
typedef
const
STRING
*
PCANSI_STRING
;
74
75
typedef
STRING
OEM_STRING
;
76
typedef
PSTRING
POEM_STRING
;
77
typedef
const
STRING
*
PCOEM_STRING
;
78
79
#ifndef __UNICODE_STRING_DEFINED__
80
#define __UNICODE_STRING_DEFINED__
81
typedef
struct
_UNICODE_STRING
{
82
USHORT
Length
;
/* bytes */
83
USHORT
MaximumLength
;
/* bytes */
84
PWSTR
Buffer
;
85
}
UNICODE_STRING
, *
PUNICODE_STRING
;
86
#endif
87
88
typedef
const
UNICODE_STRING
*
PCUNICODE_STRING
;
89
90
#ifndef _FILETIME_
91
#define _FILETIME_
92
/* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
93
typedef
struct
_FILETIME
94
{
95
#ifdef WORDS_BIGENDIAN
96
DWORD
dwHighDateTime
;
97
DWORD
dwLowDateTime
;
98
#else
99
DWORD
dwLowDateTime
;
100
DWORD
dwHighDateTime
;
101
#endif
102
}
FILETIME
, *
PFILETIME
, *
LPFILETIME
;
103
#endif
/* _FILETIME_ */
104
105
#if 0
106
/*
107
* RTL_SYSTEM_TIME and RTL_TIME_ZONE_INFORMATION are the same as
108
* the SYSTEMTIME and TIME_ZONE_INFORMATION structures defined
109
* in winbase.h, however we need to define them separately so
110
* winternl.h doesn't depend on winbase.h. They are used by
111
* RtlQueryTimeZoneInformation and RtlSetTimeZoneInformation.
112
* The names are guessed; if anybody knows the real names, let me know.
113
*/
114
typedef
struct
_RTL_SYSTEM_TIME {
115
WORD
wYear;
116
WORD
wMonth;
117
WORD
wDayOfWeek;
118
WORD
wDay;
119
WORD
wHour;
120
WORD
wMinute;
121
WORD
wSecond;
122
WORD
wMilliseconds;
123
} RTL_SYSTEM_TIME, *PRTL_SYSTEM_TIME;
124
#endif
125
126
typedef
struct
_TIME_FIELDS
{
127
CSHORT
Year
;
128
CSHORT
Month
;
129
CSHORT
Day
;
130
CSHORT
Hour
;
131
CSHORT
Minute
;
132
CSHORT
Second
;
133
CSHORT
Milliseconds
;
134
CSHORT
Weekday
;
135
}
TIME_FIELDS
, *
PTIME_FIELDS
;
136
137
typedef
struct
_RTL_TIME_ZONE_INFORMATION
{
138
LONG
Bias
;
139
WCHAR
StandardName
[32];
140
TIME_FIELDS
StandardDate
;
141
LONG
StandardBias
;
142
WCHAR
DaylightName
[32];
143
TIME_FIELDS
DaylightDate
;
144
LONG
DaylightBias
;
145
}
RTL_TIME_ZONE_INFORMATION
, *
PRTL_TIME_ZONE_INFORMATION
;
146
147
typedef
struct
_RTL_TIME_DYNAMIC_ZONE_INFORMATION
148
{
149
LONG
Bias
;
150
WCHAR
StandardName
[32];
151
TIME_FIELDS
StandardDate
;
152
LONG
StandardBias
;
153
WCHAR
DaylightName
[32];
154
TIME_FIELDS
DaylightDate
;
155
LONG
DaylightBias
;
156
WCHAR
TimeZoneKeyName
[128];
157
BOOLEAN
DynamicDaylightTimeDisabled
;
158
}
RTL_DYNAMIC_TIME_ZONE_INFORMATION
, *
PRTL_DYNAMIC_TIME_ZONE_INFORMATION
;
159
160
typedef
struct
_CLIENT_ID
161
{
162
HANDLE
UniqueProcess
;
163
HANDLE
UniqueThread
;
164
}
CLIENT_ID
, *
PCLIENT_ID
;
165
166
typedef
struct
_CURDIR
167
{
168
UNICODE_STRING
DosPath
;
169
PVOID
Handle
;
170
}
CURDIR
, *
PCURDIR
;
171
172
typedef
struct
RTL_DRIVE_LETTER_CURDIR
173
{
174
USHORT
Flags
;
175
USHORT
Length
;
176
ULONG
TimeStamp
;
177
UNICODE_STRING
DosPath
;
178
}
RTL_DRIVE_LETTER_CURDIR
, *
PRTL_DRIVE_LETTER_CURDIR
;
179
180
typedef
struct
tagRTL_BITMAP
{
181
ULONG
SizeOfBitMap
;
/* Number of bits in the bitmap */
182
PULONG
Buffer
;
/* Bitmap data, assumed sized to a DWORD boundary */
183
}
RTL_BITMAP
, *
PRTL_BITMAP
;
184
185
typedef
const
RTL_BITMAP
*
PCRTL_BITMAP
;
186
187
typedef
struct
tagRTL_BITMAP_RUN
{
188
ULONG
StartingIndex
;
/* Bit position at which run starts */
189
ULONG
NumberOfBits
;
/* Size of the run in bits */
190
}
RTL_BITMAP_RUN
, *
PRTL_BITMAP_RUN
;
191
192
typedef
const
RTL_BITMAP_RUN
*
PCRTL_BITMAP_RUN
;
193
194
typedef
struct
_RTL_USER_PROCESS_PARAMETERS
195
{
196
ULONG
AllocationSize
;
197
ULONG
Size
;
198
ULONG
Flags
;
199
ULONG
DebugFlags
;
200
HANDLE
ConsoleHandle
;
201
ULONG
ConsoleFlags
;
202
HANDLE
hStdInput
;
203
HANDLE
hStdOutput
;
204
HANDLE
hStdError
;
205
CURDIR
CurrentDirectory
;
206
UNICODE_STRING
DllPath
;
207
UNICODE_STRING
ImagePathName
;
208
UNICODE_STRING
CommandLine
;
209
PWSTR
Environment
;
210
ULONG
dwX
;
211
ULONG
dwY
;
212
ULONG
dwXSize
;
213
ULONG
dwYSize
;
214
ULONG
dwXCountChars
;
215
ULONG
dwYCountChars
;
216
ULONG
dwFillAttribute
;
217
ULONG
dwFlags
;
218
ULONG
wShowWindow
;
219
UNICODE_STRING
WindowTitle
;
220
UNICODE_STRING
Desktop
;
221
UNICODE_STRING
ShellInfo
;
222
UNICODE_STRING
RuntimeInfo
;
223
RTL_DRIVE_LETTER_CURDIR
DLCurrentDirectory
[0x20];
224
}
RTL_USER_PROCESS_PARAMETERS
, *
PRTL_USER_PROCESS_PARAMETERS
;
225
226
/* value for Flags field (FIXME: not the correct name) */
227
#define PROCESS_PARAMS_FLAG_NORMALIZED 1
228
229
typedef
struct
_PEB_LDR_DATA
230
{
231
ULONG
Length
;
232
BOOLEAN
Initialized
;
233
PVOID
SsHandle
;
234
LIST_ENTRY
InLoadOrderModuleList
;
235
LIST_ENTRY
InMemoryOrderModuleList
;
236
LIST_ENTRY
InInitializationOrderModuleList
;
237
PVOID
EntryInProgress
;
238
}
PEB_LDR_DATA
, *
PPEB_LDR_DATA
;
239
240
typedef
struct
_GDI_TEB_BATCH
241
{
242
ULONG
Offset
;
243
HANDLE
HDC
;
244
ULONG
Buffer
[0x136];
245
}
GDI_TEB_BATCH
;
246
247
typedef
struct
_RTL_ACTIVATION_CONTEXT_STACK_FRAME
248
{
249
struct
_RTL_ACTIVATION_CONTEXT_STACK_FRAME
*
Previous
;
250
struct
_ACTIVATION_CONTEXT
*
ActivationContext
;
251
ULONG
Flags
;
252
}
RTL_ACTIVATION_CONTEXT_STACK_FRAME
, *
PRTL_ACTIVATION_CONTEXT_STACK_FRAME
;
253
254
typedef
struct
_ACTIVATION_CONTEXT_STACK
255
{
256
ULONG
Flags
;
257
ULONG
NextCookieSequenceNumber
;
258
RTL_ACTIVATION_CONTEXT_STACK_FRAME
*
ActiveFrame
;
259
LIST_ENTRY
FrameListCache
;
260
}
ACTIVATION_CONTEXT_STACK
, *
PACTIVATION_CONTEXT_STACK
;
261
262
typedef
struct
_TEB_ACTIVE_FRAME_CONTEXT
263
{
264
ULONG
Flags
;
265
const
char
*
FrameName
;
266
}
TEB_ACTIVE_FRAME_CONTEXT
, *
PTEB_ACTIVE_FRAME_CONTEXT
;
267
268
typedef
struct
_TEB_ACTIVE_FRAME_CONTEXT_EX
269
{
270
TEB_ACTIVE_FRAME_CONTEXT
BasicContext
;
271
const
char
*
SourceLocation
;
272
}
TEB_ACTIVE_FRAME_CONTEXT_EX
, *
PTEB_ACTIVE_FRAME_CONTEXT_EX
;
273
274
typedef
struct
_TEB_ACTIVE_FRAME
275
{
276
ULONG
Flags
;
277
struct
_TEB_ACTIVE_FRAME
*
Previous
;
278
TEB_ACTIVE_FRAME_CONTEXT
*
Context
;
279
}
TEB_ACTIVE_FRAME
, *
PTEB_ACTIVE_FRAME
;
280
281
typedef
struct
_TEB_ACTIVE_FRAME_EX
282
{
283
TEB_ACTIVE_FRAME
BasicFrame
;
284
void
*
ExtensionIdentifier
;
285
}
TEB_ACTIVE_FRAME_EX
, *
PTEB_ACTIVE_FRAME_EX
;
286
287
#define TEB_ACTIVE_FRAME_CONTEXT_FLAG_EXTENDED 0x00000001
288
#define TEB_ACTIVE_FRAME_FLAG_EXTENDED 0x00000001
289
290
/***********************************************************************
291
* PEB data structure
292
*/
293
typedef
struct
_PEB
294
{
/* win32/win64 */
295
BOOLEAN
InheritedAddressSpace
;
/* 000/000 */
296
BOOLEAN
ReadImageFileExecOptions
;
/* 001/001 */
297
BOOLEAN
BeingDebugged
;
/* 002/002 */
298
BOOLEAN
SpareBool
;
/* 003/003 */
299
HANDLE
Mutant
;
/* 004/008 */
300
HMODULE
ImageBaseAddress
;
/* 008/010 */
301
PPEB_LDR_DATA
LdrData
;
/* 00c/018 */
302
RTL_USER_PROCESS_PARAMETERS
*
ProcessParameters
;
/* 010/020 */
303
PVOID
SubSystemData
;
/* 014/028 */
304
HANDLE
ProcessHeap
;
/* 018/030 */
305
PRTL_CRITICAL_SECTION
FastPebLock
;
/* 01c/038 */
306
PVOID
/*PPEBLOCKROUTINE*/
FastPebLockRoutine
;
/* 020/040 */
307
PVOID
/*PPEBLOCKROUTINE*/
FastPebUnlockRoutine
;
/* 024/048 */
308
ULONG
EnvironmentUpdateCount
;
/* 028/050 */
309
PVOID
KernelCallbackTable
;
/* 02c/058 */
310
ULONG
Reserved
[2];
/* 030/060 */
311
PVOID
/*PPEB_FREE_BLOCK*/
FreeList
;
/* 038/068 */
312
ULONG
TlsExpansionCounter
;
/* 03c/070 */
313
PRTL_BITMAP
TlsBitmap
;
/* 040/078 */
314
ULONG
TlsBitmapBits
[2];
/* 044/080 */
315
PVOID
ReadOnlySharedMemoryBase
;
/* 04c/088 */
316
PVOID
ReadOnlySharedMemoryHeap
;
/* 050/090 */
317
PVOID
*
ReadOnlyStaticServerData
;
/* 054/098 */
318
PVOID
AnsiCodePageData
;
/* 058/0a0 */
319
PVOID
OemCodePageData
;
/* 05c/0a8 */
320
PVOID
UnicodeCaseTableData
;
/* 060/0b0 */
321
ULONG
NumberOfProcessors
;
/* 064/0b8 */
322
ULONG
NtGlobalFlag
;
/* 068/0bc */
323
LARGE_INTEGER
CriticalSectionTimeout
;
/* 070/0c0 */
324
SIZE_T
HeapSegmentReserve
;
/* 078/0c8 */
325
SIZE_T
HeapSegmentCommit
;
/* 07c/0d0 */
326
SIZE_T
HeapDeCommitTotalFreeThreshold
;
/* 080/0d8 */
327
SIZE_T
HeapDeCommitFreeBlockThreshold
;
/* 084/0e0 */
328
ULONG
NumberOfHeaps
;
/* 088/0e8 */
329
ULONG
MaximumNumberOfHeaps
;
/* 08c/0ec */
330
PVOID
*
ProcessHeaps
;
/* 090/0f0 */
331
PVOID
GdiSharedHandleTable
;
/* 094/0f8 */
332
PVOID
ProcessStarterHelper
;
/* 098/100 */
333
PVOID
GdiDCAttributeList
;
/* 09c/108 */
334
PVOID
LoaderLock
;
/* 0a0/110 */
335
ULONG
OSMajorVersion
;
/* 0a4/118 */
336
ULONG
OSMinorVersion
;
/* 0a8/11c */
337
ULONG
OSBuildNumber
;
/* 0ac/120 */
338
ULONG
OSPlatformId
;
/* 0b0/124 */
339
ULONG
ImageSubSystem
;
/* 0b4/128 */
340
ULONG
ImageSubSystemMajorVersion
;
/* 0b8/12c */
341
ULONG
ImageSubSystemMinorVersion
;
/* 0bc/130 */
342
ULONG
ImageProcessAffinityMask
;
/* 0c0/134 */
343
HANDLE
GdiHandleBuffer
[28];
/* 0c4/138 */
344
ULONG
unknown
[6];
/* 134/218 */
345
PVOID
PostProcessInitRoutine
;
/* 14c/230 */
346
PRTL_BITMAP
TlsExpansionBitmap
;
/* 150/238 */
347
ULONG
TlsExpansionBitmapBits
[32];
/* 154/240 */
348
ULONG
SessionId
;
/* 1d4/2c0 */
349
ULARGE_INTEGER
AppCompatFlags
;
/* 1d8/2c8 */
350
ULARGE_INTEGER
AppCompatFlagsUser
;
/* 1e0/2d0 */
351
PVOID
ShimData
;
/* 1e8/2d8 */
352
PVOID
AppCompatInfo
;
/* 1ec/2e0 */
353
UNICODE_STRING
CSDVersion
;
/* 1f0/2e8 */
354
PVOID
ActivationContextData
;
/* 1f8/2f8 */
355
PVOID
ProcessAssemblyStorageMap
;
/* 1fc/300 */
356
PVOID
SystemDefaultActivationData
;
/* 200/308 */
357
PVOID
SystemAssemblyStorageMap
;
/* 204/310 */
358
SIZE_T
MinimumStackCommit
;
/* 208/318 */
359
PVOID
*
FlsCallback
;
/* 20c/320 */
360
LIST_ENTRY
FlsListHead
;
/* 210/328 */
361
PRTL_BITMAP
FlsBitmap
;
/* 218/338 */
362
ULONG
FlsBitmapBits
[4];
/* 21c/340 */
363
}
PEB
, *
PPEB
;
364
365
366
/***********************************************************************
367
* TEB data structure
368
*/
369
typedef
struct
_TEB
370
{
/* win32/win64 */
371
NT_TIB
Tib
;
/* 000/0000 */
372
PVOID
EnvironmentPointer
;
/* 01c/0038 */
373
CLIENT_ID
ClientId
;
/* 020/0040 */
374
PVOID
ActiveRpcHandle
;
/* 028/0050 */
375
PVOID
ThreadLocalStoragePointer
;
/* 02c/0058 */
376
PPEB
Peb
;
/* 030/0060 */
377
ULONG
LastErrorValue
;
/* 034/0068 */
378
ULONG
CountOfOwnedCriticalSections
;
/* 038/006c */
379
PVOID
CsrClientThread
;
/* 03c/0070 */
380
PVOID
Win32ThreadInfo
;
/* 040/0078 */
381
ULONG
Win32ClientInfo
[31];
/* 044/0080 used for user32 private data in Wine */
382
PVOID
WOW32Reserved
;
/* 0c0/0100 used for ntdll syscall thunks */
383
ULONG
CurrentLocale
;
/* 0c4/0108 */
384
ULONG
FpSoftwareStatusRegister
;
/* 0c8/010c */
385
PVOID
SystemReserved1
[54];
/* 0cc/0110 used for krnl386.exe16 private data in Wine */
386
LONG
ExceptionCode
;
/* 1a4/02c0 */
387
ACTIVATION_CONTEXT_STACK
ActivationContextStack
;
/* 1a8/02c8 */
388
BYTE
SpareBytes1
[24];
/* 1bc/02e8 */
389
PVOID
SystemReserved2
[10];
/* 1d4/0300 used for ntdll platform-specific private data in Wine */
390
GDI_TEB_BATCH
GdiTebBatch
;
/* 1fc/0350 used for ntdll private data in Wine */
391
HANDLE
gdiRgn
;
/* 6dc/0838 */
392
HANDLE
gdiPen
;
/* 6e0/0840 */
393
HANDLE
gdiBrush
;
/* 6e4/0848 */
394
CLIENT_ID
RealClientId
;
/* 6e8/0850 */
395
HANDLE
GdiCachedProcessHandle
;
/* 6f0/0860 */
396
ULONG
GdiClientPID
;
/* 6f4/0868 */
397
ULONG
GdiClientTID
;
/* 6f8/086c */
398
PVOID
GdiThreadLocaleInfo
;
/* 6fc/0870 */
399
ULONG
UserReserved
[5];
/* 700/0878 */
400
PVOID
glDispatchTable
[280];
/* 714/0890 */
401
PVOID
glReserved1
[26];
/* b74/1150 */
402
PVOID
glReserved2
;
/* bdc/1220 */
403
PVOID
glSectionInfo
;
/* be0/1228 */
404
PVOID
glSection
;
/* be4/1230 */
405
PVOID
glTable
;
/* be8/1238 */
406
PVOID
glCurrentRC
;
/* bec/1240 */
407
PVOID
glContext
;
/* bf0/1248 */
408
ULONG
LastStatusValue
;
/* bf4/1250 */
409
UNICODE_STRING
StaticUnicodeString
;
/* bf8/1258 used by advapi32 */
410
WCHAR
StaticUnicodeBuffer
[261];
/* c00/1268 used by advapi32 */
411
PVOID
DeallocationStack
;
/* e0c/1478 */
412
PVOID
TlsSlots
[64];
/* e10/1480 */
413
LIST_ENTRY
TlsLinks
;
/* f10/1680 */
414
PVOID
Vdm
;
/* f18/1690 */
415
PVOID
ReservedForNtRpc
;
/* f1c/1698 */
416
PVOID
DbgSsReserved
[2];
/* f20/16a0 */
417
ULONG
HardErrorDisabled
;
/* f28/16b0 */
418
PVOID
Instrumentation
[16];
/* f2c/16b8 */
419
PVOID
WinSockData
;
/* f6c/1738 */
420
ULONG
GdiBatchCount
;
/* f70/1740 */
421
ULONG
Spare2
;
/* f74/1744 */
422
PVOID
Spare3
;
/* f78/1748 used for fakedll thunks */
423
PVOID
Spare4
;
/* f7c/1750 */
424
PVOID
ReservedForOle
;
/* f80/1758 */
425
ULONG
WaitingOnLoaderLock
;
/* f84/1760 */
426
PVOID
Reserved5
[3];
/* f88/1768 used for x86_64 OSX and wineserver shared memory */
427
PVOID
*
TlsExpansionSlots
;
/* f94/1780 */
428
#ifdef _WIN64
429
PVOID
DeallocationBStore;
/* /1788 */
430
PVOID
BStoreLimit;
/* /1790 */
431
#endif
432
ULONG
ImpersonationLocale
;
/* f98/1798 */
433
ULONG
IsImpersonating
;
/* f9c/179c */
434
PVOID
NlsCache
;
/* fa0/17a0 */
435
PVOID
ShimData
;
/* fa4/17a8 */
436
ULONG
HeapVirtualAffinity
;
/* fa8/17b0 */
437
PVOID
CurrentTransactionHandle
;
/* fac/17b8 */
438
TEB_ACTIVE_FRAME
*
ActiveFrame
;
/* fb0/17c0 */
439
PVOID
*
FlsSlots
;
/* fb4/17c8 */
440
}
TEB
, *
PTEB
;
441
442
/***********************************************************************
443
* Enums
444
*/
445
446
typedef
enum
_FILE_INFORMATION_CLASS
{
447
FileDirectoryInformation
= 1,
448
FileFullDirectoryInformation
,
449
FileBothDirectoryInformation
,
450
FileBasicInformation
,
451
FileStandardInformation
,
452
FileInternalInformation
,
453
FileEaInformation
,
454
FileAccessInformation
,
455
FileNameInformation
,
456
FileRenameInformation
,
457
FileLinkInformation
,
458
FileNamesInformation
,
459
FileDispositionInformation
,
460
FilePositionInformation
,
461
FileFullEaInformation
,
462
FileModeInformation
,
463
FileAlignmentInformation
,
464
FileAllInformation
,
465
FileAllocationInformation
,
466
FileEndOfFileInformation
,
467
FileAlternateNameInformation
,
468
FileStreamInformation
,
469
FilePipeInformation
,
470
FilePipeLocalInformation
,
471
FilePipeRemoteInformation
,
472
FileMailslotQueryInformation
,
473
FileMailslotSetInformation
,
474
FileCompressionInformation
,
475
FileObjectIdInformation
,
476
FileCompletionInformation
,
477
FileMoveClusterInformation
,
478
FileQuotaInformation
,
479
FileReparsePointInformation
,
480
FileNetworkOpenInformation
,
481
FileAttributeTagInformation
,
482
FileTrackingInformation
,
483
FileIdBothDirectoryInformation
,
484
FileIdFullDirectoryInformation
,
485
FileValidDataLengthInformation
,
486
FileShortNameInformation
,
487
FileIoCompletionNotificationInformation
,
488
FileIoStatusBlockRangeInformation
,
489
FileIoPriorityHintInformation
,
490
FileSfioReserveInformation
,
491
FileSfioVolumeInformation
,
492
FileHardLinkInformation
,
493
FileProcessIdsUsingFileInformation
,
494
FileNormalizedNameInformation
,
495
FileNetworkPhysicalNameInformation
,
496
FileIdGlobalTxDirectoryInformation
,
497
FileIsRemoteDeviceInformation
,
498
FileAttributeCacheInformation
,
499
FileNumaNodeInformation
,
500
FileStandardLinkInformation
,
501
FileRemoteProtocolInformation
,
502
FileRenameInformationBypassAccessCheck
,
503
FileLinkInformationBypassAccessCheck
,
504
FileVolumeNameInformation
,
505
FileIdInformation
,
506
FileIdExtdDirectoryInformation
,
507
FileReplaceCompletionInformation
,
508
FileHardLinkFullIdInformation
,
509
FileIdExtdBothDirectoryInformation
,
510
FileMaximumInformation
511
}
FILE_INFORMATION_CLASS
, *
PFILE_INFORMATION_CLASS
;
512
513
typedef
struct
_FILE_DIRECTORY_INFORMATION
{
514
ULONG
NextEntryOffset
;
515
ULONG
FileIndex
;
516
LARGE_INTEGER
CreationTime
;
517
LARGE_INTEGER
LastAccessTime
;
518
LARGE_INTEGER
LastWriteTime
;
519
LARGE_INTEGER
ChangeTime
;
520
LARGE_INTEGER
EndOfFile
;
521
LARGE_INTEGER
AllocationSize
;
522
ULONG
FileAttributes
;
523
ULONG
FileNameLength
;
524
WCHAR
FileName
[
ANYSIZE_ARRAY
];
525
}
FILE_DIRECTORY_INFORMATION
, *
PFILE_DIRECTORY_INFORMATION
;
526
527
typedef
struct
_FILE_FULL_DIRECTORY_INFORMATION
{
528
ULONG
NextEntryOffset
;
529
ULONG
FileIndex
;
530
LARGE_INTEGER
CreationTime
;
531
LARGE_INTEGER
LastAccessTime
;
532
LARGE_INTEGER
LastWriteTime
;
533
LARGE_INTEGER
ChangeTime
;
534
LARGE_INTEGER
EndOfFile
;
535
LARGE_INTEGER
AllocationSize
;
536
ULONG
FileAttributes
;
537
ULONG
FileNameLength
;
538
ULONG
EaSize
;
539
WCHAR
FileName
[
ANYSIZE_ARRAY
];
540
}
FILE_FULL_DIRECTORY_INFORMATION
, *
PFILE_FULL_DIRECTORY_INFORMATION
,
541
FILE_FULL_DIR_INFORMATION
, *
PFILE_FULL_DIR_INFORMATION
;
542
543
typedef
struct
_FILE_ID_FULL_DIRECTORY_INFORMATION
{
544
ULONG
NextEntryOffset
;
545
ULONG
FileIndex
;
546
LARGE_INTEGER
CreationTime
;
547
LARGE_INTEGER
LastAccessTime
;
548
LARGE_INTEGER
LastWriteTime
;
549
LARGE_INTEGER
ChangeTime
;
550
LARGE_INTEGER
EndOfFile
;
551
LARGE_INTEGER
AllocationSize
;
552
ULONG
FileAttributes
;
553
ULONG
FileNameLength
;
554
ULONG
EaSize
;
555
LARGE_INTEGER
FileId
;
556
WCHAR
FileName
[
ANYSIZE_ARRAY
];
557
}
FILE_ID_FULL_DIRECTORY_INFORMATION
, *
PFILE_ID_FULL_DIRECTORY_INFORMATION
;
558
559
typedef
struct
_FILE_BOTH_DIRECTORY_INFORMATION
{
560
ULONG
NextEntryOffset
;
561
ULONG
FileIndex
;
562
LARGE_INTEGER
CreationTime
;
563
LARGE_INTEGER
LastAccessTime
;
564
LARGE_INTEGER
LastWriteTime
;
565
LARGE_INTEGER
ChangeTime
;
566
LARGE_INTEGER
EndOfFile
;
567
LARGE_INTEGER
AllocationSize
;
568
ULONG
FileAttributes
;
569
ULONG
FileNameLength
;
570
ULONG
EaSize
;
571
CHAR
ShortNameLength
;
572
WCHAR
ShortName
[12];
573
WCHAR
FileName
[
ANYSIZE_ARRAY
];
574
}
FILE_BOTH_DIRECTORY_INFORMATION
, *
PFILE_BOTH_DIRECTORY_INFORMATION
,
575
FILE_BOTH_DIR_INFORMATION
, *
PFILE_BOTH_DIR_INFORMATION
;
576
577
typedef
struct
_FILE_ID_BOTH_DIRECTORY_INFORMATION
{
578
ULONG
NextEntryOffset
;
579
ULONG
FileIndex
;
580
LARGE_INTEGER
CreationTime
;
581
LARGE_INTEGER
LastAccessTime
;
582
LARGE_INTEGER
LastWriteTime
;
583
LARGE_INTEGER
ChangeTime
;
584
LARGE_INTEGER
EndOfFile
;
585
LARGE_INTEGER
AllocationSize
;
586
ULONG
FileAttributes
;
587
ULONG
FileNameLength
;
588
ULONG
EaSize
;
589
CHAR
ShortNameLength
;
590
WCHAR
ShortName
[12];
591
LARGE_INTEGER
FileId
;
592
WCHAR
FileName
[
ANYSIZE_ARRAY
];
593
}
FILE_ID_BOTH_DIRECTORY_INFORMATION
, *
PFILE_ID_BOTH_DIRECTORY_INFORMATION
;
594
595
typedef
struct
_FILE_ID_GLOBAL_TX_DIR_INFORMATION
{
596
ULONG
NextEntryOffset
;
597
ULONG
FileIndex
;
598
LARGE_INTEGER
CreationTime
;
599
LARGE_INTEGER
LastAccessTime
;
600
LARGE_INTEGER
LastWriteTime
;
601
LARGE_INTEGER
ChangeTime
;
602
LARGE_INTEGER
EndOfFile
;
603
LARGE_INTEGER
AllocationSize
;
604
ULONG
FileAttributes
;
605
ULONG
FileNameLength
;
606
LARGE_INTEGER
FileId
;
607
GUID
LockingTransactionId
;
608
ULONG
TxInfoFlags
;
609
WCHAR
FileName
[
ANYSIZE_ARRAY
];
610
}
FILE_ID_GLOBAL_TX_DIR_INFORMATION
, *
PFILE_ID_GLOBAL_TX_DIR_INFORMATION
;
611
612
typedef
struct
_FILE_BASIC_INFORMATION
{
613
LARGE_INTEGER
CreationTime
;
614
LARGE_INTEGER
LastAccessTime
;
615
LARGE_INTEGER
LastWriteTime
;
616
LARGE_INTEGER
ChangeTime
;
617
ULONG
FileAttributes
;
618
}
FILE_BASIC_INFORMATION
, *
PFILE_BASIC_INFORMATION
;
619
620
typedef
struct
_FILE_STANDARD_INFORMATION
{
621
LARGE_INTEGER
AllocationSize
;
622
LARGE_INTEGER
EndOfFile
;
623
ULONG
NumberOfLinks
;
624
BOOLEAN
DeletePending
;
625
BOOLEAN
Directory
;
626
}
FILE_STANDARD_INFORMATION
, *
PFILE_STANDARD_INFORMATION
;
627
628
typedef
struct
_FILE_INTERNAL_INFORMATION
{
629
LARGE_INTEGER
IndexNumber
;
630
}
FILE_INTERNAL_INFORMATION
, *
PFILE_INTERNAL_INFORMATION
;
631
632
typedef
struct
_FILE_ID_128
{
633
UCHAR
Identifier
[16];
634
}
FILE_ID_128
, *
PFILE_ID_128
;
635
636
typedef
struct
_FILE_ID_INFORMATION
{
637
ULONGLONG
VolumeSerialNumber
;
638
FILE_ID_128
FileId
;
639
}
FILE_ID_INFORMATION
, *
PFILE_ID_INFORMATION
;
640
641
typedef
struct
_FILE_EA_INFORMATION
{
642
ULONG
EaSize
;
643
}
FILE_EA_INFORMATION
, *
PFILE_EA_INFORMATION
;
644
645
typedef
struct
_FILE_ACCESS_INFORMATION
{
646
ACCESS_MASK
AccessFlags
;
647
}
FILE_ACCESS_INFORMATION
, *
PFILE_ACCESS_INFORMATION
;
648
649
typedef
struct
_FILE_NAME_INFORMATION
{
650
ULONG
FileNameLength
;
651
WCHAR
FileName
[1];
652
}
FILE_NAME_INFORMATION
, *
PFILE_NAME_INFORMATION
;
653
654
typedef
struct
_FILE_RENAME_INFORMATION
{
655
BOOLEAN
Replace
;
656
HANDLE
RootDir
;
657
ULONG
FileNameLength
;
658
WCHAR
FileName
[1];
659
}
FILE_RENAME_INFORMATION
, *
PFILE_RENAME_INFORMATION
;
660
661
typedef
struct
_FILE_LINK_INFORMATION
{
662
BOOLEAN
ReplaceIfExists
;
663
HANDLE
RootDirectory
;
664
ULONG
FileNameLength
;
665
WCHAR
FileName
[1];
666
}
FILE_LINK_INFORMATION
, *
PFILE_LINK_INFORMATION
;
667
668
typedef
struct
_FILE_NAMES_INFORMATION
{
669
ULONG
NextEntryOffset
;
670
ULONG
FileIndex
;
671
ULONG
FileNameLength
;
672
WCHAR
FileName
[1];
673
}
FILE_NAMES_INFORMATION
, *
PFILE_NAMES_INFORMATION
;
674
675
typedef
struct
_FILE_DISPOSITION_INFORMATION
{
676
BOOLEAN
DoDeleteFile
;
677
}
FILE_DISPOSITION_INFORMATION
, *
PFILE_DISPOSITION_INFORMATION
;
678
679
typedef
struct
_FILE_POSITION_INFORMATION
{
680
LARGE_INTEGER
CurrentByteOffset
;
681
}
FILE_POSITION_INFORMATION
, *
PFILE_POSITION_INFORMATION
;
682
683
typedef
struct
_FILE_ALIGNMENT_INFORMATION
{
684
ULONG
AlignmentRequirement
;
685
}
FILE_ALIGNMENT_INFORMATION
, *
PFILE_ALIGNMENT_INFORMATION
;
686
687
typedef
struct
_FILE_ALLOCATION_INFORMATION
{
688
LARGE_INTEGER
AllocationSize
;
689
}
FILE_ALLOCATION_INFORMATION
, *
PFILE_ALLOCATION_INFORMATION
;
690
691
typedef
struct
_FILE_END_OF_FILE_INFORMATION
{
692
LARGE_INTEGER
EndOfFile
;
693
}
FILE_END_OF_FILE_INFORMATION
, *
PFILE_END_OF_FILE_INFORMATION
;
694
695
typedef
struct
_FILE_NETWORK_OPEN_INFORMATION
{
696
LARGE_INTEGER
CreationTime
;
697
LARGE_INTEGER
LastAccessTime
;
698
LARGE_INTEGER
LastWriteTime
;
699
LARGE_INTEGER
ChangeTime
;
700
LARGE_INTEGER
AllocationSize
;
701
LARGE_INTEGER
EndOfFile
;
702
ULONG
FileAttributes
;
703
}
FILE_NETWORK_OPEN_INFORMATION
, *
PFILE_NETWORK_OPEN_INFORMATION
;
704
705
typedef
struct
_FILE_FULL_EA_INFORMATION
{
706
ULONG
NextEntryOffset
;
707
UCHAR
Flags
;
708
UCHAR
EaNameLength
;
709
USHORT
EaValueLength
;
710
CHAR
EaName
[1];
711
}
FILE_FULL_EA_INFORMATION
, *
PFILE_FULL_EA_INFORMATION
;
712
713
typedef
struct
_FILE_MODE_INFORMATION
{
714
ULONG
Mode
;
715
}
FILE_MODE_INFORMATION
, *
PFILE_MODE_INFORMATION
;
716
717
typedef
struct
_FILE_STREAM_INFORMATION
718
{
719
ULONG
NextEntryOffset
;
720
ULONG
StreamNameLength
;
721
LARGE_INTEGER
StreamSize
;
722
LARGE_INTEGER
StreamAllocationSize
;
723
WCHAR
StreamName
[1];
724
}
FILE_STREAM_INFORMATION
, *
PFILE_STREAM_INFORMATION
;
725
726
typedef
struct
_FILE_ATTRIBUTE_TAG_INFORMATION
727
{
728
ULONG
FileAttributes
;
729
ULONG
ReparseTag
;
730
}
FILE_ATTRIBUTE_TAG_INFORMATION
, *
PFILE_ATTRIBUTE_TAG_INFORMATION
;
731
732
typedef
struct
_FILE_MAILSLOT_QUERY_INFORMATION
{
733
ULONG
MaximumMessageSize
;
734
ULONG
MailslotQuota
;
735
ULONG
NextMessageSize
;
736
ULONG
MessagesAvailable
;
737
LARGE_INTEGER
ReadTimeout
;
738
}
FILE_MAILSLOT_QUERY_INFORMATION
, *
PFILE_MAILSLOT_QUERY_INFORMATION
;
739
740
typedef
struct
_FILE_MAILSLOT_SET_INFORMATION
{
741
LARGE_INTEGER
ReadTimeout
;
742
}
FILE_MAILSLOT_SET_INFORMATION
, *
PFILE_MAILSLOT_SET_INFORMATION
;
743
744
typedef
struct
_FILE_PIPE_INFORMATION
{
745
ULONG
ReadMode
;
746
ULONG
CompletionMode
;
747
}
FILE_PIPE_INFORMATION
, *
PFILE_PIPE_INFORMATION
;
748
749
typedef
struct
_FILE_PIPE_LOCAL_INFORMATION
{
750
ULONG
NamedPipeType
;
751
ULONG
NamedPipeConfiguration
;
752
ULONG
MaximumInstances
;
753
ULONG
CurrentInstances
;
754
ULONG
InboundQuota
;
755
ULONG
ReadDataAvailable
;
756
ULONG
OutboundQuota
;
757
ULONG
WriteQuotaAvailable
;
758
ULONG
NamedPipeState
;
759
ULONG
NamedPipeEnd
;
760
}
FILE_PIPE_LOCAL_INFORMATION
, *
PFILE_PIPE_LOCAL_INFORMATION
;
761
762
typedef
struct
_FILE_OBJECTID_INFORMATION
{
763
LONGLONG
FileReference
;
764
UCHAR
ObjectId
[16];
765
union
{
766
struct
{
767
UCHAR
BirthVolumeId
[16];
768
UCHAR
BirthObjectId
[16];
769
UCHAR
DomainId
[16];
770
}
DUMMYSTRUCTNAME
;
771
UCHAR
ExtendedInfo
[48];
772
}
DUMMYUNIONNAME
;
773
}
FILE_OBJECTID_INFORMATION
, *
PFILE_OBJECTID_INFORMATION
;
774
775
typedef
struct
_FILE_QUOTA_INFORMATION
{
776
ULONG
NextEntryOffset
;
777
ULONG
SidLength
;
778
LARGE_INTEGER
ChangeTime
;
779
LARGE_INTEGER
QuotaUsed
;
780
LARGE_INTEGER
QuotaThreshold
;
781
LARGE_INTEGER
QuotaLimit
;
782
SID
Sid
;
783
}
FILE_QUOTA_INFORMATION
, *
PFILE_QUOTA_INFORMATION
;
784
785
typedef
struct
_FILE_REPARSE_POINT_INFORMATION
{
786
LONGLONG
FileReference
;
787
ULONG
Tag
;
788
}
FILE_REPARSE_POINT_INFORMATION
, *
PFILE_REPARSE_POINT_INFORMATION
;
789
790
#define FILE_PIPE_DISCONNECTED_STATE 0x01
791
#define FILE_PIPE_LISTENING_STATE 0x02
792
#define FILE_PIPE_CONNECTED_STATE 0x03
793
#define FILE_PIPE_CLOSING_STATE 0x04
794
795
typedef
struct
_FILE_ALL_INFORMATION
{
796
FILE_BASIC_INFORMATION
BasicInformation
;
797
FILE_STANDARD_INFORMATION
StandardInformation
;
798
FILE_INTERNAL_INFORMATION
InternalInformation
;
799
FILE_EA_INFORMATION
EaInformation
;
800
FILE_ACCESS_INFORMATION
AccessInformation
;
801
FILE_POSITION_INFORMATION
PositionInformation
;
802
FILE_MODE_INFORMATION
ModeInformation
;
803
FILE_ALIGNMENT_INFORMATION
AlignmentInformation
;
804
FILE_NAME_INFORMATION
NameInformation
;
805
}
FILE_ALL_INFORMATION
, *
PFILE_ALL_INFORMATION
;
806
807
typedef
struct
_FILE_IO_COMPLETION_NOTIFICATION_INFORMATION
{
808
ULONG
Flags
;
809
}
FILE_IO_COMPLETION_NOTIFICATION_INFORMATION
, *
PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION
;
810
811
#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1
812
#define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2
813
#define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO 0x4
814
815
typedef
enum
_FSINFOCLASS
{
816
FileFsVolumeInformation
= 1,
817
FileFsLabelInformation
,
818
FileFsSizeInformation
,
819
FileFsDeviceInformation
,
820
FileFsAttributeInformation
,
821
FileFsControlInformation
,
822
FileFsFullSizeInformation
,
823
FileFsObjectIdInformation
,
824
FileFsMaximumInformation
825
}
FS_INFORMATION_CLASS
, *
PFS_INFORMATION_CLASS
;
826
827
typedef
enum
_KEY_INFORMATION_CLASS
{
828
KeyBasicInformation
,
829
KeyNodeInformation
,
830
KeyFullInformation
,
831
KeyNameInformation
,
832
KeyCachedInformation
,
833
KeyFlagsInformation
,
834
KeyVirtualizationInformation
,
835
KeyHandleTagsInformation
,
836
MaxKeyInfoClass
837
}
KEY_INFORMATION_CLASS
;
838
839
typedef
enum
_KEY_VALUE_INFORMATION_CLASS
{
840
KeyValueBasicInformation
,
841
KeyValueFullInformation
,
842
KeyValuePartialInformation
,
843
KeyValueFullInformationAlign64
,
844
KeyValuePartialInformationAlign64
845
}
KEY_VALUE_INFORMATION_CLASS
;
846
847
typedef
enum
_OBJECT_INFORMATION_CLASS
{
848
ObjectBasicInformation
,
849
ObjectNameInformation
,
850
ObjectTypeInformation
,
851
ObjectTypesInformation
,
852
ObjectDataInformation
853
}
OBJECT_INFORMATION_CLASS
, *
POBJECT_INFORMATION_CLASS
;
854
855
typedef
enum
_PROCESSINFOCLASS
{
856
ProcessBasicInformation
= 0,
857
ProcessQuotaLimits
= 1,
858
ProcessIoCounters
= 2,
859
ProcessVmCounters
= 3,
860
ProcessTimes
= 4,
861
ProcessBasePriority
= 5,
862
ProcessRaisePriority
= 6,
863
ProcessDebugPort
= 7,
864
ProcessExceptionPort
= 8,
865
ProcessAccessToken
= 9,
866
ProcessLdtInformation
= 10,
867
ProcessLdtSize
= 11,
868
ProcessDefaultHardErrorMode
= 12,
869
ProcessIoPortHandlers
= 13,
870
ProcessPooledUsageAndLimits
= 14,
871
ProcessWorkingSetWatch
= 15,
872
ProcessUserModeIOPL
= 16,
873
ProcessEnableAlignmentFaultFixup
= 17,
874
ProcessPriorityClass
= 18,
875
ProcessWx86Information
= 19,
876
ProcessHandleCount
= 20,
877
ProcessAffinityMask
= 21,
878
ProcessPriorityBoost
= 22,
879
ProcessDeviceMap
= 23,
880
ProcessSessionInformation
= 24,
881
ProcessForegroundInformation
= 25,
882
ProcessWow64Information
= 26,
883
ProcessImageFileName
= 27,
884
ProcessLUIDDeviceMapsEnabled
= 28,
885
ProcessBreakOnTermination
= 29,
886
ProcessDebugObjectHandle
= 30,
887
ProcessDebugFlags
= 31,
888
ProcessHandleTracing
= 32,
889
ProcessExecuteFlags
= 34,
890
ProcessTlsInformation
= 35,
891
ProcessCookie
= 36,
892
ProcessImageInformation
= 37,
893
ProcessCycleTime
= 38,
894
ProcessPagePriority
= 39,
895
ProcessInstrumentationCallback
= 40,
896
ProcessThreadStackAllocation
= 41,
897
ProcessWorkingSetWatchEx
= 42,
898
ProcessImageFileNameWin32
= 43,
899
ProcessImageFileMapping
= 44,
900
ProcessAffinityUpdateMode
= 45,
901
ProcessMemoryAllocationMode
= 46,
902
ProcessGroupInformation
= 47,
903
ProcessTokenVirtualizationEnabled
= 48,
904
ProcessConsoleHostProcess
= 49,
905
ProcessWindowInformation
= 50,
906
MaxProcessInfoClass
907
}
PROCESSINFOCLASS
,
PROCESS_INFORMATION_CLASS
;
908
909
#define MEM_EXECUTE_OPTION_DISABLE 0x01
910
#define MEM_EXECUTE_OPTION_ENABLE 0x02
911
#define MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION 0x04
912
#define MEM_EXECUTE_OPTION_PERMANENT 0x08
913
914
typedef
enum
_SECTION_INHERIT
{
915
ViewShare
= 1,
916
ViewUnmap
= 2
917
}
SECTION_INHERIT
;
918
919
typedef
enum
_SYSTEM_INFORMATION_CLASS
{
920
SystemBasicInformation
= 0,
921
SystemCpuInformation
= 1,
922
SystemPerformanceInformation
= 2,
923
SystemTimeOfDayInformation
= 3,
/* was SystemTimeInformation */
924
Unknown4
,
925
SystemProcessInformation
= 5,
926
Unknown6
,
927
Unknown7
,
928
SystemProcessorPerformanceInformation
= 8,
929
Unknown9
,
930
Unknown10
,
931
SystemModuleInformation
= 11,
932
Unknown12
,
933
Unknown13
,
934
Unknown14
,
935
Unknown15
,
936
SystemHandleInformation
= 16,
937
Unknown17
,
938
SystemPageFileInformation
= 18,
939
Unknown19
,
940
Unknown20
,
941
SystemCacheInformation
= 21,
942
Unknown22
,
943
SystemInterruptInformation
= 23,
944
SystemDpcBehaviourInformation
= 24,
945
SystemFullMemoryInformation
= 25,
946
SystemNotImplemented6
= 25,
947
SystemLoadImage
= 26,
948
SystemUnloadImage
= 27,
949
SystemTimeAdjustmentInformation
= 28,
950
SystemTimeAdjustment
= 28,
951
SystemSummaryMemoryInformation
= 29,
952
SystemNotImplemented7
= 29,
953
SystemNextEventIdInformation
= 30,
954
SystemNotImplemented8
= 30,
955
SystemEventIdsInformation
= 31,
956
SystemCrashDumpInformation
= 32,
957
SystemExceptionInformation
= 33,
958
SystemCrashDumpStateInformation
= 34,
959
SystemKernelDebuggerInformation
= 35,
960
SystemContextSwitchInformation
= 36,
961
SystemRegistryQuotaInformation
= 37,
962
SystemCurrentTimeZoneInformation
= 44,
963
SystemTimeZoneInformation
= 44,
964
SystemLookasideInformation
= 45,
965
SystemSetTimeSlipEvent
= 46,
966
SystemCreateSession
= 47,
967
SystemDeleteSession
= 48,
968
SystemInvalidInfoClass4
= 49,
969
SystemRangeStartInformation
= 50,
970
SystemVerifierInformation
= 51,
971
SystemAddVerifier
= 52,
972
SystemSessionProcessesInformation
= 53,
973
SystemLoadGdiDriverInSystemSpace
= 54,
974
SystemNumaProcessorMap
= 55,
975
SystemPrefetcherInformation
= 56,
976
SystemExtendedProcessInformation
= 57,
977
SystemRecommendedSharedDataAlignment
= 58,
978
SystemComPlusPackage
= 59,
979
SystemNumaAvailableMemory
= 60,
980
SystemProcessorPowerInformation
= 61,
981
SystemEmulationBasicInformation
= 62,
982
SystemEmulationProcessorInformation
= 63,
983
SystemExtendedHandleInformation
= 64,
984
SystemLostDelayedWriteInformation
= 65,
985
SystemBigPoolInformation
= 66,
986
SystemSessionPoolTagInformation
= 67,
987
SystemSessionMappedViewInformation
= 68,
988
SystemHotpatchInformation
= 69,
989
SystemObjectSecurityMode
= 70,
990
SystemWatchdogTimerHandler
= 71,
991
SystemWatchdogTimerInformation
= 72,
992
SystemLogicalProcessorInformation
= 73,
993
SystemWow64SharedInformation
= 74,
994
SystemRegisterFirmwareTableInformationHandler
= 75,
995
SystemFirmwareTableInformation
= 76,
996
SystemModuleInformationEx
= 77,
997
SystemVerifierTriageInformation
= 78,
998
SystemSuperfetchInformation
= 79,
999
SystemMemoryListInformation
= 80,
1000
SystemFileCacheInformationEx
= 81,
1001
SystemLogicalProcessorInformationEx
= 107,
1002
SystemInformationClassMax
1003
}
SYSTEM_INFORMATION_CLASS
, *
PSYSTEM_INFORMATION_CLASS
;
1004
1005
typedef
enum
_THREADINFOCLASS
{
1006
ThreadBasicInformation
,
1007
ThreadTimes
,
1008
ThreadPriority
,
1009
ThreadBasePriority
,
1010
ThreadAffinityMask
,
1011
ThreadImpersonationToken
,
1012
ThreadDescriptorTableEntry
,
1013
ThreadEnableAlignmentFaultFixup
,
1014
ThreadEventPair_Reusable
,
1015
ThreadQuerySetWin32StartAddress
,
1016
ThreadZeroTlsCell
,
1017
ThreadPerformanceCount
,
1018
ThreadAmILastThread
,
1019
ThreadIdealProcessor
,
1020
ThreadPriorityBoost
,
1021
ThreadSetTlsArrayAddress
,
1022
ThreadIsIoPending
,
1023
ThreadHideFromDebugger
,
1024
ThreadBreakOnTermination
,
1025
ThreadSwitchLegacyState
,
1026
ThreadIsTerminated
,
1027
ThreadLastSystemCall
,
1028
ThreadIoPriority
,
1029
ThreadCycleTime
,
1030
ThreadPagePriority
,
1031
ThreadActualBasePriority
,
1032
ThreadTebInformation
,
1033
ThreadCSwitchMon
,
1034
ThreadCSwitchPmu
,
1035
ThreadWow64Context
,
1036
ThreadGroupInformation
,
1037
ThreadUmsInformation
,
1038
ThreadCounterProfiling
,
1039
ThreadIdealProcessorEx
,
1040
MaxThreadInfoClass
1041
}
THREADINFOCLASS
;
1042
1043
typedef
struct
_THREAD_BASIC_INFORMATION
1044
{
1045
NTSTATUS
ExitStatus
;
1046
PVOID
TebBaseAddress
;
1047
CLIENT_ID
ClientId
;
1048
ULONG_PTR
AffinityMask
;
1049
LONG
Priority
;
1050
LONG
BasePriority
;
1051
}
THREAD_BASIC_INFORMATION
, *
PTHREAD_BASIC_INFORMATION
;
1052
1053
typedef
struct
_THREAD_DESCRIPTOR_INFORMATION
1054
{
1055
DWORD
Selector
;
1056
LDT_ENTRY
Entry
;
1057
}
THREAD_DESCRIPTOR_INFORMATION
, *
PTHREAD_DESCRIPTOR_INFORMATION
;
1058
1059
typedef
struct
_KERNEL_USER_TIMES
{
1060
LARGE_INTEGER
CreateTime
;
1061
LARGE_INTEGER
ExitTime
;
1062
LARGE_INTEGER
KernelTime
;
1063
LARGE_INTEGER
UserTime
;
1064
}
KERNEL_USER_TIMES
, *
PKERNEL_USER_TIMES
;
1065
1066
typedef
enum
_WINSTATIONINFOCLASS
{
1067
WinStationInformation
= 8
1068
}
WINSTATIONINFOCLASS
;
1069
1070
typedef
enum
_MEMORY_INFORMATION_CLASS
{
1071
MemoryBasicInformation
,
1072
MemoryWorkingSetList
,
1073
MemorySectionName
,
1074
MemoryBasicVlmInformation
1075
}
MEMORY_INFORMATION_CLASS
;
1076
1077
typedef
struct
_MEMORY_SECTION_NAME
1078
{
1079
UNICODE_STRING
SectionFileName
;
1080
}
MEMORY_SECTION_NAME
, *
PMEMORY_SECTION_NAME
;
1081
1082
typedef
enum
_MUTANT_INFORMATION_CLASS
1083
{
1084
MutantBasicInformation
1085
}
MUTANT_INFORMATION_CLASS
, *
PMUTANT_INFORMATION_CLASS
;
1086
1087
typedef
struct
_MUTANT_BASIC_INFORMATION
{
1088
LONG
CurrentCount
;
1089
BOOLEAN
OwnedByCaller
;
1090
BOOLEAN
AbandonedState
;
1091
}
MUTANT_BASIC_INFORMATION
, *
PMUTANT_BASIC_INFORMATION
;
1092
1093
typedef
enum
_TIMER_INFORMATION_CLASS
1094
{
1095
TimerBasicInformation
= 0
1096
}
TIMER_INFORMATION_CLASS
;
1097
1098
typedef
struct
_TIMER_BASIC_INFORMATION
1099
{
1100
LARGE_INTEGER
RemainingTime
;
1101
BOOLEAN
TimerState
;
1102
}
TIMER_BASIC_INFORMATION
, *
PTIMER_BASIC_INFORMATION
;
1103
1104
1105
/* return type of RtlDetermineDosPathNameType_U (FIXME: not the correct names) */
1106
typedef
enum
1107
{
1108
INVALID_PATH
= 0,
1109
UNC_PATH
,
/* "//foo" */
1110
ABSOLUTE_DRIVE_PATH
,
/* "c:/foo" */
1111
RELATIVE_DRIVE_PATH
,
/* "c:foo" */
1112
ABSOLUTE_PATH
,
/* "/foo" */
1113
RELATIVE_PATH
,
/* "foo" */
1114
DEVICE_PATH
,
/* "//./foo" */
1115
UNC_DOT_PATH
/* "//." */
1116
}
DOS_PATHNAME_TYPE
;
1117
1118
1119
/***********************************************************************
1120
* Types and data structures
1121
*/
1122
1123
/* This is used by NtQuerySystemInformation */
1124
typedef
struct
_SYSTEM_THREAD_INFORMATION
1125
{
/* win32/win64 */
1126
LARGE_INTEGER
KernelTime
;
/* 00/00 */
1127
LARGE_INTEGER
UserTime
;
/* 08/08 */
1128
LARGE_INTEGER
CreateTime
;
/* 10/10 */
1129
DWORD
dwTickCount
;
/* 18/18 */
1130
LPVOID
StartAddress
;
/* 1c/20 */
1131
CLIENT_ID
ClientId
;
/* 20/28 */
1132
DWORD
dwCurrentPriority
;
/* 28/38 */
1133
DWORD
dwBasePriority
;
/* 2c/3c */
1134
DWORD
dwContextSwitches
;
/* 30/40 */
1135
DWORD
dwThreadState
;
/* 34/44 */
1136
DWORD
dwWaitReason
;
/* 38/48 */
1137
DWORD
dwUnknown
;
/* 3c/4c */
1138
}
SYSTEM_THREAD_INFORMATION
, *
PSYSTEM_THREAD_INFORMATION
;
1139
1140
typedef
struct
_IO_STATUS_BLOCK
{
1141
union
{
1142
NTSTATUS
Status
;
1143
PVOID
Pointer
;
1144
}
DUMMYUNIONNAME
;
1145
1146
ULONG_PTR
Information
;
1147
}
IO_STATUS_BLOCK
, *
PIO_STATUS_BLOCK
;
1148
1149
typedef
void
(
WINAPI
*
PIO_APC_ROUTINE
)(
PVOID
,
PIO_STATUS_BLOCK
,
ULONG
);
1150
1151
typedef
struct
_KEY_BASIC_INFORMATION
{
1152
LARGE_INTEGER
LastWriteTime
;
1153
ULONG
TitleIndex
;
1154
ULONG
NameLength
;
1155
WCHAR
Name
[1];
1156
}
KEY_BASIC_INFORMATION
, *
PKEY_BASIC_INFORMATION
;
1157
1158
typedef
struct
_KEY_NODE_INFORMATION
1159
{
1160
LARGE_INTEGER
LastWriteTime
;
1161
ULONG
TitleIndex
;
1162
ULONG
ClassOffset
;
1163
ULONG
ClassLength
;
1164
ULONG
NameLength
;
1165
WCHAR
Name
[1];
1166
/* Class[1]; */
1167
}
KEY_NODE_INFORMATION
, *
PKEY_NODE_INFORMATION
;
1168
1169
typedef
struct
_KEY_FULL_INFORMATION
1170
{
1171
LARGE_INTEGER
LastWriteTime
;
1172
ULONG
TitleIndex
;
1173
ULONG
ClassOffset
;
1174
ULONG
ClassLength
;
1175
ULONG
SubKeys
;
1176
ULONG
MaxNameLen
;
1177
ULONG
MaxClassLen
;
1178
ULONG
Values
;
1179
ULONG
MaxValueNameLen
;
1180
ULONG
MaxValueDataLen
;
1181
WCHAR
Class
[1];
1182
}
KEY_FULL_INFORMATION
, *
PKEY_FULL_INFORMATION
;
1183
1184
typedef
struct
_KEY_NAME_INFORMATION
{
1185
ULONG
NameLength
;
1186
WCHAR
Name
[1];
1187
}
KEY_NAME_INFORMATION
, *
PKEY_NAME_INFORMATION
;
1188
1189
typedef
struct
_KEY_CACHED_INFORMATION
1190
{
1191
LARGE_INTEGER
LastWriteTime
;
1192
ULONG
TitleIndex
;
1193
ULONG
SubKeys
;
1194
ULONG
MaxNameLen
;
1195
ULONG
Values
;
1196
ULONG
MaxValueNameLen
;
1197
ULONG
MaxValueDataLen
;
1198
ULONG
NameLength
;
1199
}
KEY_CACHED_INFORMATION
, *
PKEY_CACHED_INFORMATION
;
1200
1201
typedef
struct
_KEY_VALUE_ENTRY
1202
{
1203
PUNICODE_STRING
ValueName
;
1204
ULONG
DataLength
;
1205
ULONG
DataOffset
;
1206
ULONG
Type
;
1207
}
KEY_VALUE_ENTRY
, *
PKEY_VALUE_ENTRY
;
1208
1209
typedef
struct
_KEY_VALUE_BASIC_INFORMATION
{
1210
ULONG
TitleIndex
;
1211
ULONG
Type
;
1212
ULONG
NameLength
;
1213
WCHAR
Name
[1];
1214
}
KEY_VALUE_BASIC_INFORMATION
, *
PKEY_VALUE_BASIC_INFORMATION
;
1215
1216
typedef
struct
_KEY_VALUE_FULL_INFORMATION
{
1217
ULONG
TitleIndex
;
1218
ULONG
Type
;
1219
ULONG
DataOffset
;
1220
ULONG
DataLength
;
1221
ULONG
NameLength
;
1222
WCHAR
Name
[1];
1223
}
KEY_VALUE_FULL_INFORMATION
, *
PKEY_VALUE_FULL_INFORMATION
;
1224
1225
typedef
struct
_KEY_VALUE_PARTIAL_INFORMATION
{
1226
ULONG
TitleIndex
;
1227
ULONG
Type
;
1228
ULONG
DataLength
;
1229
UCHAR
Data
[1];
1230
}
KEY_VALUE_PARTIAL_INFORMATION
, *
PKEY_VALUE_PARTIAL_INFORMATION
;
1231
1232
#ifndef __OBJECT_ATTRIBUTES_DEFINED__
1233
#define __OBJECT_ATTRIBUTES_DEFINED__
1234
typedef
struct
_OBJECT_ATTRIBUTES
{
1235
ULONG
Length
;
1236
HANDLE
RootDirectory
;
1237
PUNICODE_STRING
ObjectName
;
1238
ULONG
Attributes
;
1239
PVOID
SecurityDescriptor
;
/* type SECURITY_DESCRIPTOR */
1240
PVOID
SecurityQualityOfService
;
/* type SECURITY_QUALITY_OF_SERVICE */
1241
}
OBJECT_ATTRIBUTES
, *
POBJECT_ATTRIBUTES
;
1242
#endif
1243
1244
typedef
struct
_OBJECT_DATA_INFORMATION
{
1245
BOOLEAN
InheritHandle
;
1246
BOOLEAN
ProtectFromClose
;
1247
}
OBJECT_DATA_INFORMATION
, *
POBJECT_DATA_INFORMATION
;
1248
1249
typedef
struct
_OBJECT_BASIC_INFORMATION
{
1250
ULONG
Attributes
;
1251
ACCESS_MASK
GrantedAccess
;
1252
ULONG
HandleCount
;
1253
ULONG
PointerCount
;
1254
ULONG
PagedPoolUsage
;
1255
ULONG
NonPagedPoolUsage
;
1256
ULONG
Reserved
[3];
1257
ULONG
NameInformationLength
;
1258
ULONG
TypeInformationLength
;
1259
ULONG
SecurityDescriptorLength
;
1260
LARGE_INTEGER
CreateTime
;
1261
}
OBJECT_BASIC_INFORMATION
, *
POBJECT_BASIC_INFORMATION
;
1262
1263
typedef
struct
_OBJECT_NAME_INFORMATION
{
1264
UNICODE_STRING
Name
;
1265
}
OBJECT_NAME_INFORMATION
, *
POBJECT_NAME_INFORMATION
;
1266
1267
typedef
struct
__OBJECT_TYPE_INFORMATION
{
1268
UNICODE_STRING
TypeName
;
1269
ULONG
TotalNumberOfObjects
;
1270
ULONG
TotalNumberOfHandles
;
1271
ULONG
TotalPagedPoolUsage
;
1272
ULONG
TotalNonPagedPoolUsage
;
1273
ULONG
TotalNamePoolUsage
;
1274
ULONG
TotalHandleTableUsage
;
1275
ULONG
HighWaterNumberOfObjects
;
1276
ULONG
HighWaterNumberOfHandles
;
1277
ULONG
HighWaterPagedPoolUsage
;
1278
ULONG
HighWaterNonPagedPoolUsage
;
1279
ULONG
HighWaterNamePoolUsage
;
1280
ULONG
HighWaterHandleTableUsage
;
1281
ULONG
InvalidAttributes
;
1282
GENERIC_MAPPING
GenericMapping
;
1283
ULONG
ValidAccessMask
;
1284
BOOLEAN
SecurityRequired
;
1285
BOOLEAN
MaintainHandleCount
;
1286
UCHAR
TypeIndex
;
1287
CHAR
Reserved
;
1288
ULONG
PoolType
;
1289
ULONG
DefaultPagedPoolCharge
;
1290
ULONG
DefaultNonPagedPoolCharge
;
1291
}
OBJECT_TYPE_INFORMATION
, *
POBJECT_TYPE_INFORMATION
;
1292
1293
typedef
struct
_OBJECT_TYPES_INFORMATION
1294
{
1295
ULONG
NumberOfTypes
;
1296
}
OBJECT_TYPES_INFORMATION
, *
POBJECT_TYPES_INFORMATION
;
1297
1298
typedef
struct
_PROCESS_BASIC_INFORMATION
{
1299
#ifdef __WINESRC__
1300
DWORD_PTR
ExitStatus
;
1301
PPEB
PebBaseAddress
;
1302
DWORD_PTR
AffinityMask
;
1303
DWORD_PTR
BasePriority
;
1304
ULONG_PTR
UniqueProcessId
;
1305
ULONG_PTR
InheritedFromUniqueProcessId
;
1306
#else
1307
PVOID
Reserved1
;
1308
PPEB
PebBaseAddress
;
1309
PVOID
Reserved2
[2];
1310
ULONG_PTR
UniqueProcessId
;
1311
PVOID
Reserved3
;
1312
#endif
1313
}
PROCESS_BASIC_INFORMATION
, *
PPROCESS_BASIC_INFORMATION
;
1314
1315
#define PROCESS_PRIOCLASS_IDLE 1
1316
#define PROCESS_PRIOCLASS_NORMAL 2
1317
#define PROCESS_PRIOCLASS_HIGH 3
1318
#define PROCESS_PRIOCLASS_REALTIME 4
1319
#define PROCESS_PRIOCLASS_BELOW_NORMAL 5
1320
#define PROCESS_PRIOCLASS_ABOVE_NORMAL 6
1321
1322
typedef
struct
_PROCESS_PRIORITY_CLASS
{
1323
BOOLEAN
Foreground
;
1324
UCHAR
PriorityClass
;
1325
}
PROCESS_PRIORITY_CLASS
, *
PPROCESS_PRIORITY_CLASS
;
1326
1327
typedef
struct
_RTL_HEAP_DEFINITION
{
1328
ULONG
Length
;
/* = sizeof(RTL_HEAP_DEFINITION) */
1329
1330
ULONG
Unknown
[11];
1331
}
RTL_HEAP_DEFINITION
, *
PRTL_HEAP_DEFINITION
;
1332
1333
typedef
struct
_RTL_RWLOCK
{
1334
RTL_CRITICAL_SECTION
rtlCS
;
1335
1336
HANDLE
hSharedReleaseSemaphore
;
1337
UINT
uSharedWaiters
;
1338
1339
HANDLE
hExclusiveReleaseSemaphore
;
1340
UINT
uExclusiveWaiters
;
1341
1342
INT
iNumberActive
;
1343
HANDLE
hOwningThreadId
;
1344
DWORD
dwTimeoutBoost
;
1345
PVOID
pDebugInfo
;
1346
}
RTL_RWLOCK
, *
LPRTL_RWLOCK
;
1347
1348
/* System Information Class 0x00 */
1349
1350
typedef
struct
_SYSTEM_BASIC_INFORMATION
{
1351
#ifdef __WINESRC__
1352
DWORD
unknown
;
1353
ULONG
KeMaximumIncrement
;
1354
ULONG
PageSize
;
1355
ULONG
MmNumberOfPhysicalPages
;
1356
ULONG
MmLowestPhysicalPage
;
1357
ULONG
MmHighestPhysicalPage
;
1358
ULONG_PTR
AllocationGranularity
;
1359
PVOID
LowestUserAddress;
1360
PVOID
HighestUserAddress;
1361
ULONG_PTR
ActiveProcessorsAffinityMask
;
1362
BYTE
NumberOfProcessors
;
1363
#else
1364
BYTE
Reserved1
[24];
1365
PVOID
Reserved2
[4];
1366
CCHAR
NumberOfProcessors
;
1367
#endif
1368
}
SYSTEM_BASIC_INFORMATION
, *
PSYSTEM_BASIC_INFORMATION
;
1369
1370
/* System Information Class 0x01 */
1371
1372
typedef
struct
_SYSTEM_CPU_INFORMATION
{
1373
WORD
Architecture
;
1374
WORD
Level
;
1375
WORD
Revision
;
/* combination of CPU model and stepping */
1376
WORD
Reserved
;
/* always zero */
1377
DWORD
FeatureSet
;
/* see bit flags below */
1378
}
SYSTEM_CPU_INFORMATION
, *
PSYSTEM_CPU_INFORMATION
;
1379
1380
/* definitions of bits in the Feature set for the x86 processors */
1381
#define CPU_FEATURE_VME 0x00000005
/* Virtual 86 Mode Extensions */
1382
#define CPU_FEATURE_TSC 0x00000002
/* Time Stamp Counter available */
1383
#define CPU_FEATURE_CMOV 0x00000008
/* Conditional Move instruction*/
1384
#define CPU_FEATURE_PGE 0x00000014
/* Page table Entry Global bit */
1385
#define CPU_FEATURE_PSE 0x00000024
/* Page Size Extension */
1386
#define CPU_FEATURE_MTRR 0x00000040
/* Memory Type Range Registers */
1387
#define CPU_FEATURE_CX8 0x00000080
/* Compare and eXchange 8 byte instr. */
1388
#define CPU_FEATURE_MMX 0x00000100
/* Multi Media eXtensions */
1389
#define CPU_FEATURE_X86 0x00000200
/* seems to be always ON, on the '86 */
1390
#define CPU_FEATURE_PAT 0x00000400
/* Page Attribute Table */
1391
#define CPU_FEATURE_FXSR 0x00000800
/* FXSAVE and FXSTORE instructions */
1392
#define CPU_FEATURE_SEP 0x00001000
/* SYSENTER and SYSEXIT instructions */
1393
#define CPU_FEATURE_SSE 0x00002000
/* SSE extensions (ext. MMX) */
1394
#define CPU_FEATURE_3DNOW 0x00004000
/* 3DNOW instructions available */
1395
#define CPU_FEATURE_SSE2 0x00010000
/* SSE2 extensions (XMMI64) */
1396
#define CPU_FEATURE_DS 0x00020000
/* Debug Store */
1397
#define CPU_FEATURE_HTT 0x00040000
/* Hyper Threading Technology */
1398
1399
/* System Information Class 0x02 */
1400
1401
/* Documented in "Windows NT/2000 Native API Reference" by Gary Nebbett. */
1402
typedef
struct
_SYSTEM_PERFORMANCE_INFORMATION
{
1403
LARGE_INTEGER
IdleTime
;
1404
LARGE_INTEGER
ReadTransferCount
;
1405
LARGE_INTEGER
WriteTransferCount
;
1406
LARGE_INTEGER
OtherTransferCount
;
1407
ULONG
ReadOperationCount
;
1408
ULONG
WriteOperationCount
;
1409
ULONG
OtherOperationCount
;
1410
ULONG
AvailablePages
;
1411
ULONG
TotalCommittedPages
;
1412
ULONG
TotalCommitLimit
;
1413
ULONG
PeakCommitment
;
1414
ULONG
PageFaults
;
1415
ULONG
WriteCopyFaults
;
1416
ULONG
TransitionFaults
;
1417
ULONG
Reserved1
;
1418
ULONG
DemandZeroFaults
;
1419
ULONG
PagesRead
;
1420
ULONG
PageReadIos
;
1421
ULONG
Reserved2
[2];
1422
ULONG
PagefilePagesWritten
;
1423
ULONG
PagefilePageWriteIos
;
1424
ULONG
MappedFilePagesWritten
;
1425
ULONG
MappedFilePageWriteIos
;
1426
ULONG
PagedPoolUsage
;
1427
ULONG
NonPagedPoolUsage
;
1428
ULONG
PagedPoolAllocs
;
1429
ULONG
PagedPoolFrees
;
1430
ULONG
NonPagedPoolAllocs
;
1431
ULONG
NonPagedPoolFrees
;
1432
ULONG
TotalFreeSystemPtes
;
1433
ULONG
SystemCodePage
;
1434
ULONG
TotalSystemDriverPages
;
1435
ULONG
TotalSystemCodePages
;
1436
ULONG
SmallNonPagedLookasideListAllocateHits
;
1437
ULONG
SmallPagedLookasideListAllocateHits
;
1438
ULONG
Reserved3
;
1439
ULONG
MmSystemCachePage
;
1440
ULONG
PagedPoolPage
;
1441
ULONG
SystemDriverPage
;
1442
ULONG
FastReadNoWait
;
1443
ULONG
FastReadWait
;
1444
ULONG
FastReadResourceMiss
;
1445
ULONG
FastReadNotPossible
;
1446
ULONG
FastMdlReadNoWait
;
1447
ULONG
FastMdlReadWait
;
1448
ULONG
FastMdlReadResourceMiss
;
1449
ULONG
FastMdlReadNotPossible
;
1450
ULONG
MapDataNoWait
;
1451
ULONG
MapDataWait
;
1452
ULONG
MapDataNoWaitMiss
;
1453
ULONG
MapDataWaitMiss
;
1454
ULONG
PinMappedDataCount
;
1455
ULONG
PinReadNoWait
;
1456
ULONG
PinReadWait
;
1457
ULONG
PinReadNoWaitMiss
;
1458
ULONG
PinReadWaitMiss
;
1459
ULONG
CopyReadNoWait
;
1460
ULONG
CopyReadWait
;
1461
ULONG
CopyReadNoWaitMiss
;
1462
ULONG
CopyReadWaitMiss
;
1463
ULONG
MdlReadNoWait
;
1464
ULONG
MdlReadWait
;
1465
ULONG
MdlReadNoWaitMiss
;
1466
ULONG
MdlReadWaitMiss
;
1467
ULONG
ReadAheadIos
;
1468
ULONG
LazyWriteIos
;
1469
ULONG
LazyWritePages
;
1470
ULONG
DataFlushes
;
1471
ULONG
DataPages
;
1472
ULONG
ContextSwitches
;
1473
ULONG
FirstLevelTbFills
;
1474
ULONG
SecondLevelTbFills
;
1475
ULONG
SystemCalls
;
1476
}
SYSTEM_PERFORMANCE_INFORMATION
, *
PSYSTEM_PERFORMANCE_INFORMATION
;
1477
1478
/* System Information Class 0x03 */
1479
1480
typedef
struct
_SYSTEM_TIMEOFDAY_INFORMATION
{
1481
#ifdef __WINESRC__
1482
LARGE_INTEGER
liKeBootTime;
1483
LARGE_INTEGER
liKeSystemTime;
1484
LARGE_INTEGER
liExpTimeZoneBias;
1485
ULONG
uCurrentTimeZoneId;
1486
DWORD
dwUnknown1[5];
1487
#else
1488
BYTE
Reserved1
[48];
1489
#endif
1490
}
SYSTEM_TIMEOFDAY_INFORMATION
, *
PSYSTEM_TIMEOFDAY_INFORMATION
;
/* was SYSTEM_TIME_INFORMATION */
1491
1492
/* System Information Class 0x08 */
1493
1494
typedef
struct
_SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
{
1495
LARGE_INTEGER
IdleTime
;
1496
LARGE_INTEGER
KernelTime
;
1497
LARGE_INTEGER
UserTime
;
1498
LARGE_INTEGER
Reserved1
[2];
1499
ULONG
Reserved2
;
1500
}
SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
, *
PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
;
1501
1502
/* System Information Class 0x0b */
1503
1504
typedef
struct
_SYSTEM_DRIVER_INFORMATION
{
1505
PVOID
pvAddress
;
1506
DWORD
dwUnknown1
;
1507
DWORD
dwUnknown2
;
1508
DWORD
dwEntryIndex
;
1509
DWORD
dwUnknown3
;
1510
char
szName
[
MAX_PATH
+ 1];
1511
}
SYSTEM_DRIVER_INFORMATION
, *
PSYSTEM_DRIVER_INFORMATION
;
1512
1513
/* System Information Class 0x10 */
1514
1515
typedef
struct
_SYSTEM_HANDLE_ENTRY
{
1516
ULONG
OwnerPid
;
1517
BYTE
ObjectType
;
1518
BYTE
HandleFlags
;
1519
USHORT
HandleValue
;
1520
PVOID
ObjectPointer
;
1521
ULONG
AccessMask
;
1522
}
SYSTEM_HANDLE_ENTRY
, *
PSYSTEM_HANDLE_ENTRY
;
1523
1524
typedef
struct
_SYSTEM_HANDLE_INFORMATION
{
1525
ULONG
Count
;
1526
SYSTEM_HANDLE_ENTRY
Handle
[1];
1527
}
SYSTEM_HANDLE_INFORMATION
, *
PSYSTEM_HANDLE_INFORMATION
;
1528
1529
/* System Information Class 0x40 */
1530
1531
typedef
struct
_SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX
1532
{
1533
PVOID
Object
;
1534
ULONG_PTR
UniqueProcessId
;
1535
ULONG_PTR
HandleValue
;
1536
ULONG
GrantedAccess
;
1537
USHORT
CreatorBackTraceIndex
;
1538
USHORT
ObjectTypeIndex
;
1539
ULONG
HandleAttributes
;
1540
ULONG
Reserved
;
1541
}
SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX
, *
PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX
;
1542
1543
typedef
struct
_SYSTEM_HANDLE_INFORMATION_EX
1544
{
1545
ULONG_PTR
Count
;
1546
ULONG_PTR
Reserved
;
1547
SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX
Handle
[1];
1548
}
SYSTEM_HANDLE_INFORMATION_EX
, *
PSYSTEM_HANDLE_INFORMATION_EX
;
1549
1550
/* System Information Class 0x15 */
1551
1552
typedef
struct
_SYSTEM_CACHE_INFORMATION
{
1553
ULONG
CurrentSize
;
1554
ULONG
PeakSize
;
1555
ULONG
PageFaultCount
;
1556
ULONG
MinimumWorkingSet
;
1557
ULONG
MaximumWorkingSet
;
1558
ULONG
unused
[4];
1559
#ifdef _WIN64
1560
ULONG
unknown64[7];
1561
#endif
1562
}
SYSTEM_CACHE_INFORMATION
, *
PSYSTEM_CACHE_INFORMATION
;
1563
1564
/* System Information Class 0x17 */
1565
1566
typedef
struct
_SYSTEM_INTERRUPT_INFORMATION
{
1567
BYTE
Reserved1
[24];
1568
}
SYSTEM_INTERRUPT_INFORMATION
, *
PSYSTEM_INTERRUPT_INFORMATION
;
1569
1570
typedef
struct
_SYSTEM_CONFIGURATION_INFO
{
1571
union
{
1572
ULONG
OemId
;
1573
struct
{
1574
WORD
ProcessorArchitecture
;
1575
WORD
Reserved
;
1576
}
tag1
;
1577
}
tag2
;
1578
ULONG
PageSize
;
1579
PVOID
MinimumApplicationAddress
;
1580
PVOID
MaximumApplicationAddress
;
1581
ULONG
ActiveProcessorMask
;
1582
ULONG
NumberOfProcessors
;
1583
ULONG
ProcessorType
;
1584
ULONG
AllocationGranularity
;
1585
WORD
ProcessorLevel
;
1586
WORD
ProcessorRevision
;
1587
}
SYSTEM_CONFIGURATION_INFO
, *
PSYSTEM_CONFIGURATION_INFO
;
1588
1589
typedef
struct
_SYSTEM_EXCEPTION_INFORMATION
{
1590
BYTE
Reserved1
[16];
1591
}
SYSTEM_EXCEPTION_INFORMATION
, *
PSYSTEM_EXCEPTION_INFORMATION
;
1592
1593
typedef
struct
_SYSTEM_LOOKASIDE_INFORMATION
{
1594
BYTE
Reserved1
[32];
1595
}
SYSTEM_LOOKASIDE_INFORMATION
, *
PSYSTEM_LOOKASIDE_INFORMATION
;
1596
1597
typedef
struct
_SYSTEM_KERNEL_DEBUGGER_INFORMATION
{
1598
BOOLEAN
DebuggerEnabled
;
1599
BOOLEAN
DebuggerNotPresent
;
1600
}
SYSTEM_KERNEL_DEBUGGER_INFORMATION
, *
PSYSTEM_KERNEL_DEBUGGER_INFORMATION
;
1601
1602
/* System Information Class 0x05 */
1603
1604
typedef
struct
_VM_COUNTERS_
{
1605
SIZE_T
PeakVirtualSize
;
1606
SIZE_T
VirtualSize
;
1607
ULONG
PageFaultCount
;
1608
SIZE_T
PeakWorkingSetSize
;
1609
SIZE_T
WorkingSetSize
;
1610
SIZE_T
QuotaPeakPagedPoolUsage
;
1611
SIZE_T
QuotaPagedPoolUsage
;
1612
SIZE_T
QuotaPeakNonPagedPoolUsage
;
1613
SIZE_T
QuotaNonPagedPoolUsage
;
1614
SIZE_T
PagefileUsage
;
1615
SIZE_T
PeakPagefileUsage
;
1616
SIZE_T
PrivatePageCount
;
1617
}
VM_COUNTERS
, *
PVM_COUNTERS
;
1618
1619
typedef
struct
_SYSTEM_PROCESS_INFORMATION
{
1620
#ifdef __WINESRC__
/* win32/win64 */
1621
ULONG
NextEntryOffset
;
/* 00/00 */
1622
DWORD
dwThreadCount;
/* 04/04 */
1623
DWORD
dwUnknown1[6];
/* 08/08 */
1624
LARGE_INTEGER
CreationTime;
/* 20/20 */
1625
LARGE_INTEGER
UserTime
;
/* 28/28 */
1626
LARGE_INTEGER
KernelTime
;
/* 30/30 */
1627
UNICODE_STRING
ProcessName;
/* 38/38 */
1628
DWORD
dwBasePriority;
/* 40/48 */
1629
HANDLE
UniqueProcessId
;
/* 44/50 */
1630
HANDLE
ParentProcessId;
/* 48/58 */
1631
ULONG
HandleCount
;
/* 4c/60 */
1632
ULONG
SessionId
;
/* 50/64 */
1633
DWORD
dwUnknown4;
/* 54/68 */
1634
VM_COUNTERS
vmCounters;
/* 58/70 */
1635
IO_COUNTERS
ioCounters;
/* 88/d0 */
1636
SYSTEM_THREAD_INFORMATION
ti[1];
/* b8/100 */
1637
#else
1638
ULONG
NextEntryOffset
;
/* 00/00 */
1639
BYTE
Reserved1
[52];
/* 04/04 */
1640
PVOID
Reserved2
[3];
/* 38/38 */
1641
HANDLE
UniqueProcessId
;
/* 44/50 */
1642
PVOID
Reserved3
;
/* 48/58 */
1643
ULONG
HandleCount
;
/* 4c/60 */
1644
BYTE
Reserved4
[4];
/* 50/64 */
1645
PVOID
Reserved5
[11];
/* 54/68 */
1646
SIZE_T
PeakPagefileUsage
;
/* 80/c0 */
1647
SIZE_T
PrivatePageCount
;
/* 84/c8 */
1648
LARGE_INTEGER
Reserved6
[6];
/* 88/d0 */
1649
#endif
1650
}
SYSTEM_PROCESS_INFORMATION
, *
PSYSTEM_PROCESS_INFORMATION
;
1651
1652
typedef
struct
_SYSTEM_REGISTRY_QUOTA_INFORMATION
{
1653
ULONG
RegistryQuotaAllowed
;
1654
ULONG
RegistryQuotaUsed
;
1655
PVOID
Reserved1
;
1656
}
SYSTEM_REGISTRY_QUOTA_INFORMATION
, *
PSYSTEM_REGISTRY_QUOTA_INFORMATION
;
1657
1658
typedef
struct
_SYSTEM_TIME_ADJUSTMENT
{
1659
ULONG
TimeAdjustment
;
1660
BOOLEAN
TimeAdjustmentDisabled
;
1661
}
SYSTEM_TIME_ADJUSTMENT
, *
PSYSTEM_TIME_ADJUSTMENT
;
1662
1663
typedef
struct
_WINSTATIONINFORMATIONW
{
1664
BYTE
Reserved2
[70];
1665
ULONG
LogonId
;
1666
BYTE
Reserved3
[1140];
1667
}
WINSTATIONINFORMATIONW
, *
PWINSTATIONINFORMATIONW
;
1668
1669
typedef
BOOLEAN
(
WINAPI
*
PWINSTATIONQUERYINFORMATIONW
)(
HANDLE
,
ULONG
,
WINSTATIONINFOCLASS
,
PVOID
,
ULONG
,
PULONG
);
1670
1671
typedef
struct
_LDR_RESOURCE_INFO
1672
{
1673
ULONG_PTR
Type
;
1674
ULONG_PTR
Name
;
1675
ULONG
Language
;
1676
}
LDR_RESOURCE_INFO
, *
PLDR_RESOURCE_INFO
;
1677
1678
1679
/* debug buffer definitions */
1680
1681
typedef
struct
_DEBUG_BUFFER
{
1682
HANDLE
SectionHandle
;
1683
PVOID
SectionBase
;
1684
PVOID
RemoteSectionBase
;
1685
ULONG
SectionBaseDelta
;
1686
HANDLE
EventPairHandle
;
1687
ULONG
Unknown
[2];
1688
HANDLE
RemoteThreadHandle
;
1689
ULONG
InfoClassMask
;
1690
ULONG
SizeOfInfo
;
1691
ULONG
AllocatedSize
;
1692
ULONG
SectionSize
;
1693
PVOID
ModuleInformation
;
1694
PVOID
BackTraceInformation
;
1695
PVOID
HeapInformation
;
1696
PVOID
LockInformation
;
1697
PVOID
Reserved
[8];
1698
}
DEBUG_BUFFER
, *
PDEBUG_BUFFER
;
1699
1700
#define PDI_MODULES 0x01
1701
#define PDI_BACKTRACE 0x02
1702
#define PDI_HEAPS 0x04
1703
#define PDI_HEAP_TAGS 0x08
1704
#define PDI_HEAP_BLOCKS 0x10
1705
#define PDI_LOCKS 0x20
1706
1707
typedef
struct
_DEBUG_MODULE_INFORMATION
{
1708
ULONG
Reserved
[2];
1709
ULONG
Base
;
1710
ULONG
Size
;
1711
ULONG
Flags
;
1712
USHORT
Index
;
1713
USHORT
Unknown
;
1714
USHORT
LoadCount
;
1715
USHORT
ModuleNameOffset
;
1716
CHAR
ImageName
[256];
1717
}
DEBUG_MODULE_INFORMATION
, *
PDEBUG_MODULE_INFORMATION
;
1718
1719
typedef
struct
_DEBUG_HEAP_INFORMATION
{
1720
ULONG
Base
;
1721
ULONG
Flags
;
1722
USHORT
Granularity
;
1723
USHORT
Unknown
;
1724
ULONG
Allocated
;
1725
ULONG
Committed
;
1726
ULONG
TagCount
;
1727
ULONG
BlockCount
;
1728
ULONG
Reserved
[7];
1729
PVOID
Tags
;
1730
PVOID
Blocks
;
1731
}
DEBUG_HEAP_INFORMATION
, *
PDEBUG_HEAP_INFORMATION
;
1732
1733
typedef
struct
_DEBUG_LOCK_INFORMATION
{
1734
PVOID
Address
;
1735
USHORT
Type
;
1736
USHORT
CreatorBackTraceIndex
;
1737
ULONG
OwnerThreadId
;
1738
ULONG
ActiveCount
;
1739
ULONG
ContentionCount
;
1740
ULONG
EntryCount
;
1741
ULONG
RecursionCount
;
1742
ULONG
NumberOfSharedWaiters
;
1743
ULONG
NumberOfExclusiveWaiters
;
1744
}
DEBUG_LOCK_INFORMATION
, *
PDEBUG_LOCK_INFORMATION
;
1745
1746
typedef
struct
_PORT_MESSAGE_HEADER
{
1747
USHORT
DataSize
;
1748
USHORT
MessageSize
;
1749
USHORT
MessageType
;
1750
USHORT
VirtualRangesOffset
;
1751
CLIENT_ID
ClientId
;
1752
ULONG
MessageId
;
1753
ULONG
SectionSize
;
1754
}
PORT_MESSAGE_HEADER
, *
PPORT_MESSAGE_HEADER
,
PORT_MESSAGE
, *
PPORT_MESSAGE
;
1755
1756
typedef
unsigned
short
RTL_ATOM
, *
PRTL_ATOM
;
1757
1758
/* Wine doesn't implement atom table as NT does:
1759
* - in NT, atom tables are user space tables, which ntdll directly accesses
1760
* - on Wine, (even local) atom tables are wineserver objects, hence a HANDLE
1761
*/
1762
typedef
struct
atom_table *
RTL_ATOM_TABLE
, **
PRTL_ATOM_TABLE
;
1763
1764
typedef
enum
_ATOM_INFORMATION_CLASS
{
1765
AtomBasicInformation
= 0,
1766
AtomTableInformation
= 1,
1767
}
ATOM_INFORMATION_CLASS
;
1768
1769
typedef
struct
_ATOM_BASIC_INFORMATION
{
1770
USHORT
ReferenceCount
;
1771
USHORT
Pinned
;
1772
USHORT
NameLength
;
1773
WCHAR
Name
[1];
1774
}
ATOM_BASIC_INFORMATION
, *
PATOM_BASIC_INFORMATION
;
1775
1776
/* FIXME: names probably not correct */
1777
typedef
struct
_RTL_HANDLE
1778
{
1779
struct
_RTL_HANDLE
*
Next
;
1780
}
RTL_HANDLE
;
1781
1782
/* FIXME: names probably not correct */
1783
typedef
struct
_RTL_HANDLE_TABLE
1784
{
1785
ULONG
MaxHandleCount
;
/* 0x00 */
1786
ULONG
HandleSize
;
/* 0x04 */
1787
ULONG
Unused
[2];
/* 0x08-0x0c */
1788
PVOID
NextFree
;
/* 0x10 */
1789
PVOID
FirstHandle
;
/* 0x14 */
1790
PVOID
ReservedMemory
;
/* 0x18 */
1791
PVOID
MaxHandle
;
/* 0x1c */
1792
}
RTL_HANDLE_TABLE
;
1793
1794
/***********************************************************************
1795
* Defines
1796
*/
1797
1798
/* flags for NtCreateFile and NtOpenFile */
1799
#define FILE_DIRECTORY_FILE 0x00000001
1800
#define FILE_WRITE_THROUGH 0x00000002
1801
#define FILE_SEQUENTIAL_ONLY 0x00000004
1802
#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
1803
#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
1804
#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
1805
#define FILE_NON_DIRECTORY_FILE 0x00000040
1806
#define FILE_CREATE_TREE_CONNECTION 0x00000080
1807
#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
1808
#define FILE_NO_EA_KNOWLEDGE 0x00000200
1809
#define FILE_OPEN_FOR_RECOVERY 0x00000400
1810
#define FILE_RANDOM_ACCESS 0x00000800
1811
#define FILE_DELETE_ON_CLOSE 0x00001000
1812
#define FILE_OPEN_BY_FILE_ID 0x00002000
1813
#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
1814
#define FILE_NO_COMPRESSION 0x00008000
1815
#define FILE_RESERVE_OPFILTER 0x00100000
1816
#define FILE_TRANSACTED_MODE 0x00200000
1817
#define FILE_OPEN_OFFLINE_FILE 0x00400000
1818
#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
1819
1820
#define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7
1821
#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
1822
1823
/* status for NtCreateFile or NtOpenFile */
1824
#define FILE_SUPERSEDED 0
1825
#define FILE_OPENED 1
1826
#define FILE_CREATED 2
1827
#define FILE_OVERWRITTEN 3
1828
#define FILE_EXISTS 4
1829
#define FILE_DOES_NOT_EXIST 5
1830
1831
/* disposition for NtCreateFile */
1832
#define FILE_SUPERSEDE 0
1833
#define FILE_OPEN 1
1834
#define FILE_CREATE 2
1835
#define FILE_OPEN_IF 3
1836
#define FILE_OVERWRITE 4
1837
#define FILE_OVERWRITE_IF 5
1838
#define FILE_MAXIMUM_DISPOSITION 5
1839
1840
/* Characteristics of a File System */
1841
#define FILE_REMOVABLE_MEDIA 0x00000001
1842
#define FILE_READ_ONLY_DEVICE 0x00000002
1843
#define FILE_FLOPPY_DISKETTE 0x00000004
1844
#define FILE_WRITE_ONE_MEDIA 0x00000008
1845
#define FILE_REMOTE_DEVICE 0x00000010
1846
#define FILE_DEVICE_IS_MOUNTED 0x00000020
1847
#define FILE_VIRTUAL_VOLUME 0x00000040
1848
#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080
1849
#define FILE_DEVICE_SECURE_OPEN 0x00000100
1850
#define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800
1851
#define FILE_CHARACTERISTIC_TS_DEVICE 0x00001000
1852
#define FILE_CHARACTERISTIC_WEBDAV_DEVICE 0x00002000
1853
#define FILE_CHARACTERISTIC_CSV 0x00010000
1854
#define FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL 0x00020000
1855
#define FILE_PORTABLE_DEVICE 0x00040000
1856
1857
/* options for NtCreateNamedPipeFile */
1858
#define FILE_PIPE_INBOUND 0x00000000
1859
#define FILE_PIPE_OUTBOUND 0x00000001
1860
#define FILE_PIPE_FULL_DUPLEX 0x00000002
1861
1862
/* options for pipe's type */
1863
#define FILE_PIPE_TYPE_MESSAGE 0x00000001
1864
#define FILE_PIPE_TYPE_BYTE 0x00000000
1865
/* options for pipe's message mode */
1866
#define FILE_PIPE_MESSAGE_MODE 0x00000001
1867
#define FILE_PIPE_BYTE_STREAM_MODE 0x00000000
1868
/* options for pipe's blocking mode */
1869
#define FILE_PIPE_COMPLETE_OPERATION 0x00000001
1870
#define FILE_PIPE_QUEUE_OPERATION 0x00000000
1871
/* and client / server end */
1872
#define FILE_PIPE_SERVER_END 0x00000001
1873
#define FILE_PIPE_CLIENT_END 0x00000000
1874
1875
#define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) )
1876
1877
#define LOGONID_CURRENT ((ULONG)-1)
1878
1879
#define OBJ_INHERIT 0x00000002
1880
#define OBJ_PERMANENT 0x00000010
1881
#define OBJ_EXCLUSIVE 0x00000020
1882
#define OBJ_CASE_INSENSITIVE 0x00000040
1883
#define OBJ_OPENIF 0x00000080
1884
#define OBJ_OPENLINK 0x00000100
1885
#define OBJ_KERNEL_HANDLE 0x00000200
1886
#define OBJ_FORCE_ACCESS_CHECK 0x00000400
1887
#define OBJ_VALID_ATTRIBUTES 0x000007F2
1888
1889
#define SERVERNAME_CURRENT ((HANDLE)NULL)
1890
1891
typedef
void
(
CALLBACK
*
PNTAPCFUNC
)(
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
);
/* FIXME: not the right name */
1892
typedef
void
(
CALLBACK
*
PRTL_THREAD_START_ROUTINE
)(
LPVOID
);
/* FIXME: not the right name */
1893
typedef
DWORD
(
CALLBACK
*
PRTL_WORK_ITEM_ROUTINE
)(
LPVOID
);
/* FIXME: not the right name */
1894
typedef
void
(
NTAPI
*
RTL_WAITORTIMERCALLBACKFUNC
)(
PVOID
,
BOOLEAN
);
/* FIXME: not the right name */
1895
1896
1897
/* DbgPrintEx default levels */
1898
#define DPFLTR_ERROR_LEVEL 0
1899
#define DPFLTR_WARNING_LEVEL 1
1900
#define DPFLTR_TRACE_LEVEL 2
1901
#define DPFLTR_INFO_LEVEL 3
1902
#define DPFLTR_MASK 0x8000000
1903
1904
/* Well-known LUID values */
1905
#define SE_MIN_WELL_KNOWN_PRIVILEGE 2
1906
#define SE_CREATE_TOKEN_PRIVILEGE 2
1907
#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE 3
1908
#define SE_LOCK_MEMORY_PRIVILEGE 4
1909
#define SE_INCREASE_QUOTA_PRIVILEGE 5
1910
#define SE_UNSOLICITED_INPUT_PRIVILEGE 6
/* obsolete */
1911
#define SE_MACHINE_ACCOUNT_PRIVILEGE 6
1912
#define SE_TCB_PRIVILEGE 7
1913
#define SE_SECURITY_PRIVILEGE 8
1914
#define SE_TAKE_OWNERSHIP_PRIVILEGE 9
1915
#define SE_LOAD_DRIVER_PRIVILEGE 10
1916
#define SE_SYSTEM_PROFILE_PRIVILEGE 11
1917
#define SE_SYSTEMTIME_PRIVILEGE 12
1918
#define SE_PROF_SINGLE_PROCESS_PRIVILEGE 13
1919
#define SE_INC_BASE_PRIORITY_PRIVILEGE 14
1920
#define SE_CREATE_PAGEFILE_PRIVILEGE 15
1921
#define SE_CREATE_PERMANENT_PRIVILEGE 16
1922
#define SE_BACKUP_PRIVILEGE 17
1923
#define SE_RESTORE_PRIVILEGE 18
1924
#define SE_SHUTDOWN_PRIVILEGE 19
1925
#define SE_DEBUG_PRIVILEGE 20
1926
#define SE_AUDIT_PRIVILEGE 21
1927
#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE 22
1928
#define SE_CHANGE_NOTIFY_PRIVILEGE 23
1929
#define SE_REMOTE_SHUTDOWN_PRIVILEGE 24
1930
#define SE_UNDOCK_PRIVILEGE 25
1931
#define SE_SYNC_AGENT_PRIVILEGE 26
1932
#define SE_ENABLE_DELEGATION_PRIVILEGE 27
1933
#define SE_MANAGE_VOLUME_PRIVILEGE 28
1934
#define SE_IMPERSONATE_PRIVILEGE 29
1935
#define SE_CREATE_GLOBAL_PRIVILEGE 30
1936
#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_CREATE_GLOBAL_PRIVILEGE
1937
1938
/* NtGlobalFlag bits */
1939
#define FLG_STOP_ON_EXCEPTION 0x00000001
1940
#define FLG_SHOW_LDR_SNAPS 0x00000002
1941
#define FLG_DEBUG_INITIAL_COMMAND 0x00000004
1942
#define FLG_STOP_ON_HUNG_GUI 0x00000008
1943
#define FLG_HEAP_ENABLE_TAIL_CHECK 0x00000010
1944
#define FLG_HEAP_ENABLE_FREE_CHECK 0x00000020
1945
#define FLG_HEAP_VALIDATE_PARAMETERS 0x00000040
1946
#define FLG_HEAP_VALIDATE_ALL 0x00000080
1947
#define FLG_APPLICATION_VERIFIER 0x00000100
1948
#define FLG_POOL_ENABLE_TAGGING 0x00000400
1949
#define FLG_HEAP_ENABLE_TAGGING 0x00000800
1950
#define FLG_USER_STACK_TRACE_DB 0x00001000
1951
#define FLG_KERNEL_STACK_TRACE_DB 0x00002000
1952
#define FLG_MAINTAIN_OBJECT_TYPELIST 0x00004000
1953
#define FLG_HEAP_ENABLE_TAG_BY_DLL 0x00008000
1954
#define FLG_DISABLE_STACK_EXTENSION 0x00010000
1955
#define FLG_ENABLE_CSRDEBUG 0x00020000
1956
#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD 0x00040000
1957
#define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
1958
#define FLG_ENABLE_SYSTEM_CRIT_BREAKS 0x00100000
1959
#define FLG_HEAP_DISABLE_COALESCING 0x00200000
1960
#define FLG_ENABLE_CLOSE_EXCEPTIONS 0x00400000
1961
#define FLG_ENABLE_EXCEPTION_LOGGING 0x00800000
1962
#define FLG_ENABLE_HANDLE_TYPE_TAGGING 0x01000000
1963
#define FLG_HEAP_PAGE_ALLOCS 0x02000000
1964
#define FLG_DEBUG_INITIAL_COMMAND_EX 0x04000000
1965
#define FLG_DISABLE_DBGPRINT 0x08000000
1966
#define FLG_CRITSEC_EVENT_CREATION 0x10000000
1967
#define FLG_LDR_TOP_DOWN 0x20000000
1968
#define FLG_ENABLE_HANDLE_EXCEPTIONS 0x40000000
1969
#define FLG_DISABLE_PROTDLLS 0x80000000
1970
1971
/* Rtl*Registry* functions structs and defines */
1972
#define RTL_REGISTRY_ABSOLUTE 0
1973
#define RTL_REGISTRY_SERVICES 1
1974
#define RTL_REGISTRY_CONTROL 2
1975
#define RTL_REGISTRY_WINDOWS_NT 3
1976
#define RTL_REGISTRY_DEVICEMAP 4
1977
#define RTL_REGISTRY_USER 5
1978
1979
#define RTL_REGISTRY_HANDLE 0x40000000
1980
#define RTL_REGISTRY_OPTIONAL 0x80000000
1981
1982
#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
1983
#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
1984
#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
1985
#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
1986
#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
1987
#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
1988
#define RTL_QUERY_REGISTRY_DELETE 0x00000040
1989
1990
typedef
NTSTATUS
(
WINAPI
*
PRTL_QUERY_REGISTRY_ROUTINE
)(
PCWSTR
ValueName
,
1991
ULONG
ValueType
,
1992
PVOID
ValueData
,
1993
ULONG
ValueLength
,
1994
PVOID
Context
,
1995
PVOID
EntryContext
);
1996
1997
typedef
struct
_RTL_QUERY_REGISTRY_TABLE
1998
{
1999
PRTL_QUERY_REGISTRY_ROUTINE
QueryRoutine
;
2000
ULONG
Flags
;
2001
PWSTR
Name
;
2002
PVOID
EntryContext
;
2003
ULONG
DefaultType
;
2004
PVOID
DefaultData
;
2005
ULONG
DefaultLength
;
2006
}
RTL_QUERY_REGISTRY_TABLE
, *
PRTL_QUERY_REGISTRY_TABLE
;
2007
2008
typedef
struct
_KEY_MULTIPLE_VALUE_INFORMATION
2009
{
2010
PUNICODE_STRING
ValueName
;
2011
ULONG
DataLength
;
2012
ULONG
DataOffset
;
2013
ULONG
Type
;
2014
}
KEY_MULTIPLE_VALUE_INFORMATION
, *
PKEY_MULTIPLE_VALUE_INFORMATION
;
2015
2016
typedef
VOID
(
CALLBACK
*
PRTL_OVERLAPPED_COMPLETION_ROUTINE
)(
DWORD
,
DWORD
,
LPVOID
);
2017
2018
typedef
VOID
(
CALLBACK
*
PTIMER_APC_ROUTINE
) (
PVOID
,
ULONG
,
LONG
);
2019
2020
typedef
enum
_EVENT_INFORMATION_CLASS
{
2021
EventBasicInformation
2022
}
EVENT_INFORMATION_CLASS
, *
PEVENT_INFORMATION_CLASS
;
2023
2024
typedef
struct
_EVENT_BASIC_INFORMATION
{
2025
EVENT_TYPE
EventType
;
2026
LONG
EventState
;
2027
}
EVENT_BASIC_INFORMATION
, *
PEVENT_BASIC_INFORMATION
;
2028
2029
typedef
enum
_SEMAPHORE_INFORMATION_CLASS
{
2030
SemaphoreBasicInformation
2031
}
SEMAPHORE_INFORMATION_CLASS
, *
PSEMAPHORE_INFORMATION_CLASS
;
2032
2033
typedef
struct
_SEMAPHORE_BASIC_INFORMATION
{
2034
ULONG
CurrentCount
;
2035
ULONG
MaximumCount
;
2036
}
SEMAPHORE_BASIC_INFORMATION
, *
PSEMAPHORE_BASIC_INFORMATION
;
2037
2038
typedef
enum
_SECTION_INFORMATION_CLASS
2039
{
2040
SectionBasicInformation
,
2041
SectionImageInformation
,
2042
}
SECTION_INFORMATION_CLASS
;
2043
2044
typedef
struct
_SECTION_BASIC_INFORMATION
{
2045
PVOID
BaseAddress
;
2046
ULONG
Attributes
;
2047
LARGE_INTEGER
Size
;
2048
}
SECTION_BASIC_INFORMATION
, *
PSECTION_BASIC_INFORMATION
;
2049
2050
typedef
struct
_SECTION_IMAGE_INFORMATION
{
2051
PVOID
TransferAddress
;
2052
ULONG
ZeroBits
;
2053
SIZE_T
MaximumStackSize
;
2054
SIZE_T
CommittedStackSize
;
2055
ULONG
SubSystemType
;
2056
WORD
SubsystemVersionLow
;
2057
WORD
SubsystemVersionHigh
;
2058
ULONG
GpValue
;
2059
USHORT
ImageCharacteristics
;
2060
USHORT
DllCharacteristics
;
2061
USHORT
Machine
;
2062
BOOLEAN
ImageContainsCode
;
2063
union
2064
{
2065
UCHAR
ImageFlags
;
2066
struct
2067
{
2068
UCHAR
ComPlusNativeReady
: 1;
2069
UCHAR
ComPlusILOnly
: 1;
2070
UCHAR
ImageDynamicallyRelocated
: 1;
2071
UCHAR
ImageMappedFlat
: 1;
2072
UCHAR
BaseBelow4gb
: 1;
2073
UCHAR
Reserved
: 3;
2074
}
DUMMYSTRUCTNAME
;
2075
}
DUMMYUNIONNAME
;
2076
ULONG
LoaderFlags
;
2077
ULONG
ImageFileSize
;
2078
ULONG
CheckSum
;
2079
}
SECTION_IMAGE_INFORMATION
, *
PSECTION_IMAGE_INFORMATION
;
2080
2081
typedef
struct
_LPC_SECTION_WRITE
{
2082
ULONG
Length
;
2083
HANDLE
SectionHandle
;
2084
ULONG
SectionOffset
;
2085
ULONG
ViewSize
;
2086
PVOID
ViewBase
;
2087
PVOID
TargetViewBase
;
2088
}
LPC_SECTION_WRITE
, *
PLPC_SECTION_WRITE
;
2089
2090
typedef
struct
_LPC_SECTION_READ
{
2091
ULONG
Length
;
2092
ULONG
ViewSize
;
2093
PVOID
ViewBase
;
2094
}
LPC_SECTION_READ
, *
PLPC_SECTION_READ
;
2095
2096
typedef
struct
_LPC_MESSAGE
{
2097
USHORT
DataSize
;
2098
USHORT
MessageSize
;
2099
USHORT
MessageType
;
2100
USHORT
VirtualRangesOffset
;
2101
CLIENT_ID
ClientId
;
2102
ULONG_PTR
MessageId
;
2103
ULONG_PTR
SectionSize
;
2104
UCHAR
Data
[
ANYSIZE_ARRAY
];
2105
}
LPC_MESSAGE
, *
PLPC_MESSAGE
;
2106
2107
typedef
struct
_RTL_USER_PROCESS_INFORMATION
2108
{
2109
ULONG
Length
;
2110
HANDLE
Process
;
2111
HANDLE
Thread
;
2112
CLIENT_ID
ClientId
;
2113
SECTION_IMAGE_INFORMATION
ImageInformation
;
2114
}
RTL_USER_PROCESS_INFORMATION
, *
PRTL_USER_PROCESS_INFORMATION
;
2115
2116
typedef
enum
_SHUTDOWN_ACTION
{
2117
ShutdownNoReboot
,
2118
ShutdownReboot
,
2119
ShutdownPowerOff
2120
}
SHUTDOWN_ACTION
, *
PSHUTDOWN_ACTION
;
2121
2122
typedef
enum
_KPROFILE_SOURCE
{
2123
ProfileTime
,
2124
ProfileAlignmentFixup
,
2125
ProfileTotalIssues
,
2126
ProfilePipelineDry
,
2127
ProfileLoadInstructions
,
2128
ProfilePipelineFrozen
,
2129
ProfileBranchInstructions
,
2130
ProfileTotalNonissues
,
2131
ProfileDcacheMisses
,
2132
ProfileIcacheMisses
,
2133
ProfileCacheMisses
,
2134
ProfileBranchMispredictions
,
2135
ProfileStoreInstructions
,
2136
ProfileFpInstructions
,
2137
ProfileIntegerInstructions
,
2138
Profile2Issue
,
2139
Profile3Issue
,
2140
Profile4Issue
,
2141
ProfileSpecialInstructions
,
2142
ProfileTotalCycles
,
2143
ProfileIcacheIssues
,
2144
ProfileDcacheAccesses
,
2145
ProfileMemoryBarrierCycles
,
2146
ProfileLoadLinkedIssues
,
2147
ProfileMaximum
2148
}
KPROFILE_SOURCE
, *
PKPROFILE_SOURCE
;
2149
2150
typedef
struct
_DIRECTORY_BASIC_INFORMATION
{
2151
UNICODE_STRING
ObjectName
;
2152
UNICODE_STRING
ObjectTypeName
;
2153
}
DIRECTORY_BASIC_INFORMATION
, *
PDIRECTORY_BASIC_INFORMATION
;
2154
2155
typedef
struct
_INITIAL_TEB
{
2156
PVOID
StackBase
;
2157
PVOID
StackLimit
;
2158
PVOID
StackCommit
;
2159
PVOID
StackCommitMax
;
2160
PVOID
StackReserved
;
2161
}
INITIAL_TEB
, *
PINITIAL_TEB
;
2162
2163
typedef
enum
_PORT_INFORMATION_CLASS
{
2164
PortNoInformation
2165
}
PORT_INFORMATION_CLASS
, *
PPORT_INFORMATION_CLASS
;
2166
2167
typedef
enum
_IO_COMPLETION_INFORMATION_CLASS
{
2168
IoCompletionBasicInformation
2169
}
IO_COMPLETION_INFORMATION_CLASS
, *
PIO_COMPLETION_INFORMATION_CLASS
;
2170
2171
typedef
struct
_FILE_COMPLETION_INFORMATION
{
2172
HANDLE
CompletionPort
;
2173
ULONG_PTR
CompletionKey
;
2174
}
FILE_COMPLETION_INFORMATION
, *
PFILE_COMPLETION_INFORMATION
;
2175
2176
#define IO_COMPLETION_QUERY_STATE 0x0001
2177
#define IO_COMPLETION_MODIFY_STATE 0x0002
2178
#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3)
2179
2180
typedef
enum
_HARDERROR_RESPONSE_OPTION
{
2181
OptionAbortRetryIgnore
,
2182
OptionOk
,
2183
OptionOkCancel
,
2184
OptionRetryCancel
,
2185
OptionYesNo
,
2186
OptionYesNoCancel
,
2187
OptionShutdownSystem
2188
}
HARDERROR_RESPONSE_OPTION
, *
PHARDERROR_RESPONSE_OPTION
;
2189
2190
typedef
enum
_HARDERROR_RESPONSE
{
2191
ResponseReturnToCaller
,
2192
ResponseNotHandled
,
2193
ResponseAbort
,
2194
ResponseCancel
,
2195
ResponseIgnore
,
2196
ResponseNo
,
2197
ResponseOk
,
2198
ResponseRetry
,
2199
ResponseYes
2200
}
HARDERROR_RESPONSE
, *
PHARDERROR_RESPONSE
;
2201
2202
typedef
enum
_SYSDBG_COMMAND
{
2203
SysDbgQueryModuleInformation
,
2204
SysDbgQueryTraceInformation
,
2205
SysDbgSetTracepoint
,
2206
SysDbgSetSpecialCall
,
2207
SysDbgClearSpecialCalls
,
2208
SysDbgQuerySpecialCalls
,
2209
SysDbgBreakPoint
,
2210
SysDbgQueryVersion
,
2211
SysDbgReadVirtual
,
2212
SysDbgWriteVirtual
,
2213
SysDbgReadPhysical
,
2214
SysDbgWritePhysical
,
2215
SysDbgReadControlSpace
,
2216
SysDbgWriteControlSpace
,
2217
SysDbgReadIoSpace
,
2218
SysDbgWriteIoSpace
,
2219
SysDbgReadMsr
,
2220
SysDbgWriteMsr
,
2221
SysDbgReadBusData
,
2222
SysDbgWriteBusData
2223
}
SYSDBG_COMMAND
, *
PSYSDBG_COMMAND
;
2224
2225
2226
/*************************************************************************
2227
* Loader structures
2228
*
2229
* Those are not part of standard Winternl.h
2230
*/
2231
typedef
struct
_LDR_MODULE
2232
{
2233
LIST_ENTRY
InLoadOrderModuleList
;
2234
LIST_ENTRY
InMemoryOrderModuleList
;
2235
LIST_ENTRY
InInitializationOrderModuleList
;
2236
void
*
BaseAddress
;
2237
void
*
EntryPoint
;
2238
ULONG
SizeOfImage
;
2239
UNICODE_STRING
FullDllName
;
2240
UNICODE_STRING
BaseDllName
;
2241
ULONG
Flags
;
2242
SHORT
LoadCount
;
2243
SHORT
TlsIndex
;
2244
LIST_ENTRY
HashLinks
;
2245
ULONG
TimeDateStamp
;
2246
HANDLE
ActivationContext
;
2247
PVOID
PatchInformation
;
2248
LIST_ENTRY
ForwarderLinks
;
2249
LIST_ENTRY
ServiceTagLinks
;
2250
LIST_ENTRY
StaticLinks
;
2251
PVOID
ContextInformation
;
2252
ULONG_PTR
OriginalBase
;
2253
LARGE_INTEGER
LoadTime
;
2254
2255
/* Not part of Win7 but used by Wine */
2256
HANDLE
SectionHandle
;
2257
}
LDR_MODULE
, *
PLDR_MODULE
;
2258
2259
typedef
struct
_LDR_DLL_LOADED_NOTIFICATION_DATA
2260
{
2261
ULONG
Flags
;
2262
PCUNICODE_STRING
FullDllName
;
2263
PCUNICODE_STRING
BaseDllName
;
2264
PVOID
DllBase
;
2265
ULONG
SizeOfImage
;
2266
}
LDR_DLL_LOADED_NOTIFICATION_DATA
, *
PLDR_DLL_LOADED_NOTIFICATION_DATA
;
2267
2268
typedef
struct
_LDR_DLL_UNLOADED_NOTIFICATION_DATA
2269
{
2270
ULONG
Flags
;
2271
PCUNICODE_STRING
FullDllName
;
2272
PCUNICODE_STRING
BaseDllName
;
2273
PVOID
DllBase
;
2274
ULONG
SizeOfImage
;
2275
}
LDR_DLL_UNLOADED_NOTIFICATION_DATA
, *
PLDR_DLL_UNLOADED_NOTIFICATION_DATA
;
2276
2277
typedef
union
_LDR_DLL_NOTIFICATION_DATA
2278
{
2279
LDR_DLL_LOADED_NOTIFICATION_DATA
Loaded
;
2280
LDR_DLL_UNLOADED_NOTIFICATION_DATA
Unloaded
;
2281
}
LDR_DLL_NOTIFICATION_DATA
, *
PLDR_DLL_NOTIFICATION_DATA
;
2282
2283
typedef
void
(
CALLBACK
*
PLDR_DLL_NOTIFICATION_FUNCTION
)(
ULONG
,
LDR_DLL_NOTIFICATION_DATA
*,
void
*);
2284
2285
/* those defines are (some of the) regular LDR_MODULE.Flags values */
2286
#define LDR_IMAGE_IS_DLL 0x00000004
2287
#define LDR_LOAD_IN_PROGRESS 0x00001000
2288
#define LDR_UNLOAD_IN_PROGRESS 0x00002000
2289
#define LDR_NO_DLL_CALLS 0x00040000
2290
#define LDR_PROCESS_ATTACHED 0x00080000
2291
#define LDR_MODULE_REBASED 0x00200000
2292
2293
/* these ones is Wine specific */
2294
#define LDR_DONT_RESOLVE_REFS 0x40000000
2295
#define LDR_WINE_INTERNAL 0x80000000
2296
2297
/* flag for LdrAddRefDll */
2298
#define LDR_ADDREF_DLL_PIN 0x00000001
2299
2300
/* FIXME: to be checked */
2301
#define MAXIMUM_FILENAME_LENGTH 256
2302
2303
#define LDR_DLL_NOTIFICATION_REASON_LOADED 1
2304
#define LDR_DLL_NOTIFICATION_REASON_UNLOADED 2
2305
2306
typedef
struct
_SYSTEM_MODULE
2307
{
2308
PVOID
Reserved1
;
/* 00/00 */
2309
PVOID
Reserved2
;
/* 04/08 */
2310
PVOID
ImageBaseAddress
;
/* 08/10 */
2311
ULONG
ImageSize
;
/* 0c/18 */
2312
ULONG
Flags
;
/* 10/1c */
2313
WORD
Id
;
/* 14/20 */
2314
WORD
Rank
;
/* 16/22 */
2315
WORD
Unknown
;
/* 18/24 */
2316
WORD
NameOffset
;
/* 1a/26 */
2317
BYTE
Name
[
MAXIMUM_FILENAME_LENGTH
];
/* 1c/28 */
2318
}
SYSTEM_MODULE
, *
PSYSTEM_MODULE
;
2319
2320
typedef
struct
_SYSTEM_MODULE_INFORMATION
2321
{
2322
ULONG
ModulesCount
;
2323
SYSTEM_MODULE
Modules
[1];
/* FIXME: should be Modules[0] */
2324
}
SYSTEM_MODULE_INFORMATION
, *
PSYSTEM_MODULE_INFORMATION
;
2325
2326
#define THREAD_CREATE_FLAGS_CREATE_SUSPENDED 0x00000001
2327
#define THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH 0x00000002
2328
#define THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER 0x00000004
2329
#define THREAD_CREATE_FLAGS_HAS_SECURITY_DESCRIPTOR 0x00000010
2330
#define THREAD_CREATE_FLAGS_ACCESS_CHECK_IN_TARGET 0x00000020
2331
#define THREAD_CREATE_FLAGS_INITIAL_THREAD 0x00000080
2332
2333
/***********************************************************************
2334
* Function declarations
2335
*/
2336
2337
#if defined(__i386__) && defined(__GNUC__)
2338
static
inline
void
WINAPI
DbgBreakPoint
(
void
) {
__asm__
__volatile__(
"int3"
); }
2339
static
inline
void
WINAPI
DbgUserBreakPoint
(
void
) {
__asm__
__volatile__(
"int3"
); }
2340
#else
/* __i386__ && __GNUC__ */
2341
NTSYSAPI
void
WINAPI
DbgBreakPoint
(
void
);
2342
NTSYSAPI
void
WINAPI
DbgUserBreakPoint
(
void
);
2343
#endif
/* __i386__ && __GNUC__ */
2344
#ifndef __REACTOS__
2345
NTSYSAPI
NTSTATUS
WINAPIV
DbgPrint
(
LPCSTR
fmt
, ...);
2346
#endif
/* __REACTOS__ */
2347
NTSYSAPI
NTSTATUS
WINAPIV
DbgPrintEx
(
ULONG
iComponentId,
ULONG
Level
,
LPCSTR
fmt
, ...);
2348
NTSYSAPI
NTSTATUS
WINAPI
LdrAccessResource
(
HMODULE
,
const
IMAGE_RESOURCE_DATA_ENTRY
*,
void
**,
PULONG
);
2349
NTSYSAPI
NTSTATUS
WINAPI
LdrAddRefDll
(
ULONG
,
HMODULE
);
2350
NTSYSAPI
NTSTATUS
WINAPI
LdrFindResourceDirectory_U
(
HMODULE
,
const
LDR_RESOURCE_INFO
*,
ULONG
,
const
IMAGE_RESOURCE_DIRECTORY
**);
2351
NTSYSAPI
NTSTATUS
WINAPI
LdrFindResource_U
(
HMODULE
,
const
LDR_RESOURCE_INFO
*,
ULONG
,
const
IMAGE_RESOURCE_DATA_ENTRY
**);
2352
NTSYSAPI
NTSTATUS
WINAPI
LdrDisableThreadCalloutsForDll
(
HMODULE
);
2353
NTSYSAPI
NTSTATUS
WINAPI
LdrFindEntryForAddress
(
const
void
*,
PLDR_MODULE
*);
2354
NTSYSAPI
NTSTATUS
WINAPI
LdrGetDllHandle
(
LPCWSTR
,
ULONG
,
const
UNICODE_STRING
*,
HMODULE
*);
2355
NTSYSAPI
NTSTATUS
WINAPI
LdrGetProcedureAddress
(
HMODULE
,
const
ANSI_STRING
*,
ULONG
,
void
**);
2356
NTSYSAPI
void
WINAPI
LdrInitializeThunk
(
void
*,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
);
2357
NTSYSAPI
NTSTATUS
WINAPI
LdrLoadDll
(
LPCWSTR
,
DWORD
,
const
UNICODE_STRING
*,
HMODULE
*);
2358
NTSYSAPI
NTSTATUS
WINAPI
LdrLockLoaderLock
(
ULONG
,
ULONG
*,
ULONG_PTR
*);
2359
IMAGE_BASE_RELOCATION
*
WINAPI
LdrProcessRelocationBlock
(
void
*,
UINT
,
USHORT
*,
INT_PTR
);
2360
NTSYSAPI
NTSTATUS
WINAPI
LdrQueryImageFileExecutionOptions
(
const
UNICODE_STRING
*,
LPCWSTR
,
ULONG
,
void
*,
ULONG
,
ULONG
*);
2361
NTSYSAPI
NTSTATUS
WINAPI
LdrQueryProcessModuleInformation
(
SYSTEM_MODULE_INFORMATION
*,
ULONG
,
ULONG
*);
2362
NTSYSAPI
void
WINAPI
LdrShutdownProcess
(
void
);
2363
NTSYSAPI
void
WINAPI
LdrShutdownThread
(
void
);
2364
NTSYSAPI
NTSTATUS
WINAPI
LdrUnloadDll
(
HMODULE
);
2365
NTSYSAPI
NTSTATUS
WINAPI
LdrUnlockLoaderLock
(
ULONG
,
ULONG_PTR
);
2366
NTSYSAPI
NTSTATUS
WINAPI
NtAcceptConnectPort
(
PHANDLE
,
ULONG
,
PLPC_MESSAGE
,
BOOLEAN
,
PLPC_SECTION_WRITE
,
PLPC_SECTION_READ
);
2367
NTSYSAPI
NTSTATUS
WINAPI
NtAccessCheck
(
PSECURITY_DESCRIPTOR
,
HANDLE
,
ACCESS_MASK
,
PGENERIC_MAPPING
,
PPRIVILEGE_SET
,
PULONG
,
PULONG
,
NTSTATUS
*);
2368
NTSYSAPI
NTSTATUS
WINAPI
NtAccessCheckAndAuditAlarm
(
PUNICODE_STRING
,
HANDLE
,
PUNICODE_STRING
,
PUNICODE_STRING
,
PSECURITY_DESCRIPTOR
,
ACCESS_MASK
,
PGENERIC_MAPPING
,
BOOLEAN
,
PACCESS_MASK
,
PBOOLEAN
,
PBOOLEAN
);
2369
NTSYSAPI
NTSTATUS
WINAPI
NtAddAtom
(
const
WCHAR
*,
ULONG
,
RTL_ATOM
*);
2370
NTSYSAPI
NTSTATUS
WINAPI
NtAdjustGroupsToken
(
HANDLE
,
BOOLEAN
,
PTOKEN_GROUPS
,
ULONG
,
PTOKEN_GROUPS
,
PULONG
);
2371
NTSYSAPI
NTSTATUS
WINAPI
NtAdjustPrivilegesToken
(
HANDLE
,
BOOLEAN
,
PTOKEN_PRIVILEGES
,
DWORD
,
PTOKEN_PRIVILEGES
,
PDWORD
);
2372
NTSYSAPI
NTSTATUS
WINAPI
NtAlertResumeThread
(
HANDLE
,
PULONG
);
2373
NTSYSAPI
NTSTATUS
WINAPI
NtAlertThread
(
HANDLE
ThreadHandle);
2374
NTSYSAPI
NTSTATUS
WINAPI
NtAllocateLocallyUniqueId
(
PLUID
lpLuid
);
2375
NTSYSAPI
NTSTATUS
WINAPI
NtAllocateUuids
(
PULARGE_INTEGER
,
PULONG
,
PULONG
,
PUCHAR
);
2376
NTSYSAPI
NTSTATUS
WINAPI
NtAllocateVirtualMemory
(
HANDLE
,
PVOID
*,
ULONG
,
SIZE_T
*,
ULONG
,
ULONG
);
2377
NTSYSAPI
NTSTATUS
WINAPI
NtAreMappedFilesTheSame
(
PVOID
,
PVOID
);
2378
NTSYSAPI
NTSTATUS
WINAPI
NtAssignProcessToJobObject
(
HANDLE
,
HANDLE
);
2379
NTSYSAPI
NTSTATUS
WINAPI
NtCallbackReturn
(
PVOID
,
ULONG
,
NTSTATUS
);
2380
NTSYSAPI
NTSTATUS
WINAPI
NtCancelIoFile
(
HANDLE
,
PIO_STATUS_BLOCK
);
2381
NTSYSAPI
NTSTATUS
WINAPI
NtCancelIoFileEx
(
HANDLE
,
PIO_STATUS_BLOCK
,
PIO_STATUS_BLOCK
);
2382
NTSYSAPI
NTSTATUS
WINAPI
NtCancelTimer
(
HANDLE
,
BOOLEAN
*);
2383
NTSYSAPI
NTSTATUS
WINAPI
NtClearEvent
(
HANDLE
);
2384
NTSYSAPI
NTSTATUS
WINAPI
NtClose
(
HANDLE
);
2385
NTSYSAPI
NTSTATUS
WINAPI
NtCloseObjectAuditAlarm
(
PUNICODE_STRING
,
HANDLE
,
BOOLEAN
);
2386
NTSYSAPI
NTSTATUS
WINAPI
NtCompleteConnectPort
(
HANDLE
);
2387
NTSYSAPI
NTSTATUS
WINAPI
NtConnectPort
(
PHANDLE
,
PUNICODE_STRING
,
PSECURITY_QUALITY_OF_SERVICE
,
PLPC_SECTION_WRITE
,
PLPC_SECTION_READ
,
PULONG
,
PVOID
,
PULONG
);
2388
NTSYSAPI
NTSTATUS
WINAPI
NtContinue
(
PCONTEXT
,
BOOLEAN
);
2389
NTSYSAPI
NTSTATUS
WINAPI
NtCreateDirectoryObject
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
);
2390
NTSYSAPI
NTSTATUS
WINAPI
NtCreateEvent
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
EVENT_TYPE
,
BOOLEAN
);
2391
NTSYSAPI
NTSTATUS
WINAPI
NtCreateEventPair
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
);
2392
NTSYSAPI
NTSTATUS
WINAPI
NtCreateFile
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
PIO_STATUS_BLOCK
,
PLARGE_INTEGER
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
PVOID
,
ULONG
);
2393
NTSYSAPI
NTSTATUS
WINAPI
NtCreateIoCompletion
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
ULONG
);
2394
NTSYSAPI
NTSTATUS
WINAPI
NtCreateJobObject
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2395
NTSYSAPI
NTSTATUS
WINAPI
NtCreateKey
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
ULONG
,
const
UNICODE_STRING
*,
ULONG
,
PULONG
);
2396
NTSYSAPI
NTSTATUS
WINAPI
NtCreateKeyTransacted
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
ULONG
,
const
UNICODE_STRING
*,
ULONG
,
HANDLE
,
ULONG
*);
2397
NTSYSAPI
NTSTATUS
WINAPI
NtCreateKeyedEvent
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
ULONG
);
2398
NTSYSAPI
NTSTATUS
WINAPI
NtCreateMailslotFile
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
PIO_STATUS_BLOCK
,
ULONG
,
ULONG
,
ULONG
,
PLARGE_INTEGER
);
2399
NTSYSAPI
NTSTATUS
WINAPI
NtCreateMutant
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
BOOLEAN
);
2400
NTSYSAPI
NTSTATUS
WINAPI
NtCreateNamedPipeFile
(
PHANDLE
,
ULONG
,
POBJECT_ATTRIBUTES
,
PIO_STATUS_BLOCK
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
ULONG
,
PLARGE_INTEGER
);
2401
NTSYSAPI
NTSTATUS
WINAPI
NtCreatePagingFile
(
PUNICODE_STRING
,
PLARGE_INTEGER
,
PLARGE_INTEGER
,
PLARGE_INTEGER
);
2402
NTSYSAPI
NTSTATUS
WINAPI
NtCreatePort
(
PHANDLE
,
POBJECT_ATTRIBUTES
,
ULONG
,
ULONG
,
PULONG
);
2403
NTSYSAPI
NTSTATUS
WINAPI
NtCreateProcess
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
HANDLE
,
BOOLEAN
,
HANDLE
,
HANDLE
,
HANDLE
);
2404
NTSYSAPI
NTSTATUS
WINAPI
NtCreateProfile
(
PHANDLE
,
HANDLE
,
PVOID
,
ULONG
,
ULONG
,
PVOID
,
ULONG
,
KPROFILE_SOURCE
,
KAFFINITY
);
2405
NTSYSAPI
NTSTATUS
WINAPI
NtCreateSection
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
const
LARGE_INTEGER
*,
ULONG
,
ULONG
,
HANDLE
);
2406
NTSYSAPI
NTSTATUS
WINAPI
NtCreateSemaphore
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
LONG
,
LONG
);
2407
NTSYSAPI
NTSTATUS
WINAPI
NtCreateSymbolicLinkObject
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
PUNICODE_STRING
);
2408
NTSYSAPI
NTSTATUS
WINAPI
NtCreateThread
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
HANDLE
,
PCLIENT_ID
,
PCONTEXT
,
PINITIAL_TEB
,
BOOLEAN
);
2409
NTSYSAPI
NTSTATUS
WINAPI
NtCreateTimer
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
TIMER_TYPE
);
2410
NTSYSAPI
NTSTATUS
WINAPI
NtCreateToken
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
TOKEN_TYPE
,
PLUID
,
PLARGE_INTEGER
,
PTOKEN_USER
,
PTOKEN_GROUPS
,
PTOKEN_PRIVILEGES
,
PTOKEN_OWNER
,
PTOKEN_PRIMARY_GROUP
,
PTOKEN_DEFAULT_DACL
,
PTOKEN_SOURCE
);
2411
NTSYSAPI
NTSTATUS
WINAPI
NtDelayExecution
(
BOOLEAN
,
const
LARGE_INTEGER
*);
2412
NTSYSAPI
NTSTATUS
WINAPI
NtDeleteAtom
(
RTL_ATOM
);
2413
NTSYSAPI
NTSTATUS
WINAPI
NtDeleteFile
(
POBJECT_ATTRIBUTES
);
2414
NTSYSAPI
NTSTATUS
WINAPI
NtDeleteKey
(
HANDLE
);
2415
NTSYSAPI
NTSTATUS
WINAPI
NtDeleteValueKey
(
HANDLE
,
const
UNICODE_STRING
*);
2416
NTSYSAPI
NTSTATUS
WINAPI
NtDeviceIoControlFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
ULONG
,
PVOID
,
ULONG
,
PVOID
,
ULONG
);
2417
NTSYSAPI
NTSTATUS
WINAPI
NtDisplayString
(
PUNICODE_STRING
);
2418
NTSYSAPI
NTSTATUS
WINAPI
NtDuplicateObject
(
HANDLE
,
HANDLE
,
HANDLE
,
PHANDLE
,
ACCESS_MASK
,
ULONG
,
ULONG
);
2419
NTSYSAPI
NTSTATUS
WINAPI
NtDuplicateToken
(
HANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
SECURITY_IMPERSONATION_LEVEL
,
TOKEN_TYPE
,
PHANDLE
);
2420
NTSYSAPI
NTSTATUS
WINAPI
NtEnumerateKey
(
HANDLE
,
ULONG
,
KEY_INFORMATION_CLASS
,
void
*,
DWORD
,
DWORD
*);
2421
NTSYSAPI
NTSTATUS
WINAPI
NtEnumerateValueKey
(
HANDLE
,
ULONG
,
KEY_VALUE_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2422
NTSYSAPI
NTSTATUS
WINAPI
NtExtendSection
(
HANDLE
,
PLARGE_INTEGER
);
2423
NTSYSAPI
NTSTATUS
WINAPI
NtFilterToken
(
HANDLE
,
ULONG
,
TOKEN_GROUPS
*,
TOKEN_PRIVILEGES
*,
TOKEN_GROUPS
*,
HANDLE
*);
2424
NTSYSAPI
NTSTATUS
WINAPI
NtFindAtom
(
const
WCHAR
*,
ULONG
,
RTL_ATOM
*);
2425
NTSYSAPI
NTSTATUS
WINAPI
NtFlushBuffersFile
(
HANDLE
,
IO_STATUS_BLOCK
*);
2426
NTSYSAPI
NTSTATUS
WINAPI
NtFlushInstructionCache
(
HANDLE
,
LPCVOID
,
SIZE_T
);
2427
NTSYSAPI
NTSTATUS
WINAPI
NtFlushKey
(
HANDLE
);
2428
NTSYSAPI
NTSTATUS
WINAPI
NtFlushVirtualMemory
(
HANDLE
,
LPCVOID
*,
SIZE_T
*,
ULONG
);
2429
NTSYSAPI
NTSTATUS
WINAPI
NtFlushWriteBuffer
(
VOID
);
2430
NTSYSAPI
NTSTATUS
WINAPI
NtFreeVirtualMemory
(
HANDLE
,
PVOID
*,
SIZE_T
*,
ULONG
);
2431
NTSYSAPI
NTSTATUS
WINAPI
NtFsControlFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
ULONG
,
PVOID
,
ULONG
,
PVOID
,
ULONG
);
2432
NTSYSAPI
NTSTATUS
WINAPI
NtGetContextThread
(
HANDLE
,
CONTEXT
*);
2433
NTSYSAPI
ULONG
WINAPI
NtGetCurrentProcessorNumber
(
void
);
2434
NTSYSAPI
NTSTATUS
WINAPI
NtGetPlugPlayEvent
(
ULONG
,
ULONG
,
PVOID
,
ULONG
);
2435
NTSYSAPI
ULONG
WINAPI
NtGetTickCount
(
VOID
);
2436
NTSYSAPI
NTSTATUS
WINAPI
NtGetWriteWatch
(
HANDLE
,
ULONG
,
PVOID
,
SIZE_T
,
PVOID
*,
ULONG_PTR
*,
ULONG
*);
2437
NTSYSAPI
NTSTATUS
WINAPI
NtImpersonateAnonymousToken
(
HANDLE
);
2438
NTSYSAPI
NTSTATUS
WINAPI
NtImpersonateClientOfPort
(
HANDLE
,
PPORT_MESSAGE
);
2439
NTSYSAPI
NTSTATUS
WINAPI
NtImpersonateThread
(
HANDLE
,
HANDLE
,
PSECURITY_QUALITY_OF_SERVICE
);
2440
NTSYSAPI
NTSTATUS
WINAPI
NtInitializeRegistry
(
BOOLEAN
);
2441
NTSYSAPI
NTSTATUS
WINAPI
NtInitiatePowerAction
(
POWER_ACTION
,
SYSTEM_POWER_STATE
,
ULONG
,
BOOLEAN
);
2442
NTSYSAPI
NTSTATUS
WINAPI
NtIsProcessInJob
(
HANDLE
,
HANDLE
);
2443
NTSYSAPI
NTSTATUS
WINAPI
NtListenPort
(
HANDLE
,
PLPC_MESSAGE
);
2444
NTSYSAPI
NTSTATUS
WINAPI
NtLoadDriver
(
const
UNICODE_STRING
*);
2445
NTSYSAPI
NTSTATUS
WINAPI
NtLoadKey
(
const
OBJECT_ATTRIBUTES
*,
OBJECT_ATTRIBUTES
*);
2446
NTSYSAPI
NTSTATUS
WINAPI
NtLockFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
void
*,
PIO_STATUS_BLOCK
,
PLARGE_INTEGER
,
PLARGE_INTEGER
,
ULONG
*,
BOOLEAN
,
BOOLEAN
);
2447
NTSYSAPI
NTSTATUS
WINAPI
NtLockVirtualMemory
(
HANDLE
,
PVOID
*,
SIZE_T
*,
ULONG
);
2448
NTSYSAPI
NTSTATUS
WINAPI
NtMakeTemporaryObject
(
HANDLE
);
2449
NTSYSAPI
NTSTATUS
WINAPI
NtMapViewOfSection
(
HANDLE
,
HANDLE
,
PVOID
*,
ULONG
,
SIZE_T
,
const
LARGE_INTEGER
*,
SIZE_T
*,
SECTION_INHERIT
,
ULONG
,
ULONG
);
2450
NTSYSAPI
NTSTATUS
WINAPI
NtNotifyChangeDirectoryFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
ULONG
,
BOOLEAN
);
2451
NTSYSAPI
NTSTATUS
WINAPI
NtNotifyChangeKey
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
ULONG
,
BOOLEAN
,
PVOID
,
ULONG
,
BOOLEAN
);
2452
NTSYSAPI
NTSTATUS
WINAPI
NtNotifyChangeMultipleKeys
(
HANDLE
,
ULONG
,
OBJECT_ATTRIBUTES
*,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
ULONG
,
BOOLEAN
,
PVOID
,
ULONG
,
BOOLEAN
);
2453
NTSYSAPI
NTSTATUS
WINAPI
NtOpenDirectoryObject
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2454
NTSYSAPI
NTSTATUS
WINAPI
NtOpenEvent
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2455
NTSYSAPI
NTSTATUS
WINAPI
NtOpenEventPair
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2456
NTSYSAPI
NTSTATUS
WINAPI
NtOpenFile
(
PHANDLE
,
ACCESS_MASK
,
POBJECT_ATTRIBUTES
,
PIO_STATUS_BLOCK
,
ULONG
,
ULONG
);
2457
NTSYSAPI
NTSTATUS
WINAPI
NtOpenIoCompletion
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2458
NTSYSAPI
NTSTATUS
WINAPI
NtOpenJobObject
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2459
NTSYSAPI
NTSTATUS
WINAPI
NtOpenKey
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2460
NTSYSAPI
NTSTATUS
WINAPI
NtOpenKeyEx
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
ULONG
);
2461
NTSYSAPI
NTSTATUS
WINAPI
NtOpenKeyTransacted
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
HANDLE
);
2462
NTSYSAPI
NTSTATUS
WINAPI
NtOpenKeyTransactedEx
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
ULONG
,
HANDLE
);
2463
NTSYSAPI
NTSTATUS
WINAPI
NtOpenKeyedEvent
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2464
NTSYSAPI
NTSTATUS
WINAPI
NtOpenMutant
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2465
NTSYSAPI
NTSTATUS
WINAPI
NtOpenObjectAuditAlarm
(
PUNICODE_STRING
,
PHANDLE
,
PUNICODE_STRING
,
PUNICODE_STRING
,
PSECURITY_DESCRIPTOR
,
HANDLE
,
ACCESS_MASK
,
ACCESS_MASK
,
PPRIVILEGE_SET
,
BOOLEAN
,
BOOLEAN
,
PBOOLEAN
);
2466
NTSYSAPI
NTSTATUS
WINAPI
NtOpenProcess
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
const
CLIENT_ID
*);
2467
NTSYSAPI
NTSTATUS
WINAPI
NtOpenProcessToken
(
HANDLE
,
DWORD
,
HANDLE
*);
2468
NTSYSAPI
NTSTATUS
WINAPI
NtOpenProcessTokenEx
(
HANDLE
,
DWORD
,
DWORD
,
HANDLE
*);
2469
NTSYSAPI
NTSTATUS
WINAPI
NtOpenSection
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2470
NTSYSAPI
NTSTATUS
WINAPI
NtOpenSemaphore
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2471
NTSYSAPI
NTSTATUS
WINAPI
NtOpenSymbolicLinkObject
(
PHANDLE
,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2472
NTSYSAPI
NTSTATUS
WINAPI
NtOpenThread
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*,
const
CLIENT_ID
*);
2473
NTSYSAPI
NTSTATUS
WINAPI
NtOpenThreadToken
(
HANDLE
,
DWORD
,
BOOLEAN
,
HANDLE
*);
2474
NTSYSAPI
NTSTATUS
WINAPI
NtOpenThreadTokenEx
(
HANDLE
,
DWORD
,
BOOLEAN
,
DWORD
,
HANDLE
*);
2475
NTSYSAPI
NTSTATUS
WINAPI
NtOpenTimer
(
HANDLE
*,
ACCESS_MASK
,
const
OBJECT_ATTRIBUTES
*);
2476
NTSYSAPI
NTSTATUS
WINAPI
NtPowerInformation
(
POWER_INFORMATION_LEVEL
,
PVOID
,
ULONG
,
PVOID
,
ULONG
);
2477
NTSYSAPI
NTSTATUS
WINAPI
NtPrivilegeCheck
(
HANDLE
,
PPRIVILEGE_SET
,
PBOOLEAN
);
2478
NTSYSAPI
NTSTATUS
WINAPI
NtPrivilegeObjectAuditAlarm
(
PUNICODE_STRING
,
HANDLE
,
HANDLE
,
ULONG
,
PPRIVILEGE_SET
,
BOOLEAN
);
2479
NTSYSAPI
NTSTATUS
WINAPI
NtPrivilegedServiceAuditAlarm
(
PUNICODE_STRING
,
PUNICODE_STRING
,
HANDLE
,
PPRIVILEGE_SET
,
BOOLEAN
);
2480
NTSYSAPI
NTSTATUS
WINAPI
NtProtectVirtualMemory
(
HANDLE
,
PVOID
*,
SIZE_T
*,
ULONG
,
ULONG
*);
2481
NTSYSAPI
NTSTATUS
WINAPI
NtPulseEvent
(
HANDLE
,
PULONG
);
2482
NTSYSAPI
NTSTATUS
WINAPI
NtQueueApcThread
(
HANDLE
,
PNTAPCFUNC
,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
);
2483
NTSYSAPI
NTSTATUS
WINAPI
NtQueryAttributesFile
(
const
OBJECT_ATTRIBUTES
*,
FILE_BASIC_INFORMATION
*);
2484
NTSYSAPI
NTSTATUS
WINAPI
NtQueryDefaultLocale
(
BOOLEAN
,
LCID
*);
2485
NTSYSAPI
NTSTATUS
WINAPI
NtQueryDefaultUILanguage
(
LANGID
*);
2486
NTSYSAPI
NTSTATUS
WINAPI
NtQueryDirectoryFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
FILE_INFORMATION_CLASS
,
BOOLEAN
,
PUNICODE_STRING
,
BOOLEAN
);
2487
NTSYSAPI
NTSTATUS
WINAPI
NtQueryDirectoryObject
(
HANDLE
,
PDIRECTORY_BASIC_INFORMATION
,
ULONG
,
BOOLEAN
,
BOOLEAN
,
PULONG
,
PULONG
);
2488
NTSYSAPI
NTSTATUS
WINAPI
NtQueryEaFile
(
HANDLE
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
BOOLEAN
,
PVOID
,
ULONG
,
PULONG
,
BOOLEAN
);
2489
NTSYSAPI
NTSTATUS
WINAPI
NtQueryEvent
(
HANDLE
,
EVENT_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2490
NTSYSAPI
NTSTATUS
WINAPI
NtQueryFullAttributesFile
(
const
OBJECT_ATTRIBUTES
*,
FILE_NETWORK_OPEN_INFORMATION
*);
2491
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationAtom
(
RTL_ATOM
,
ATOM_INFORMATION_CLASS
,
PVOID
,
ULONG
,
ULONG
*);
2492
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationFile
(
HANDLE
,
PIO_STATUS_BLOCK
,
PVOID
,
LONG
,
FILE_INFORMATION_CLASS
);
2493
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationJobObject
(
HANDLE
,
JOBOBJECTINFOCLASS
,
PVOID
,
ULONG
,
PULONG
);
2494
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationPort
(
HANDLE
,
PORT_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2495
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationProcess
(
HANDLE
,
PROCESSINFOCLASS
,
PVOID
,
ULONG
,
PULONG
);
2496
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationThread
(
HANDLE
,
THREADINFOCLASS
,
PVOID
,
ULONG
,
PULONG
);
2497
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInformationToken
(
HANDLE
,
TOKEN_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2498
NTSYSAPI
NTSTATUS
WINAPI
NtQueryInstallUILanguage
(
LANGID
*);
2499
NTSYSAPI
NTSTATUS
WINAPI
NtQueryIntervalProfile
(
KPROFILE_SOURCE
,
PULONG
);
2500
NTSYSAPI
NTSTATUS
WINAPI
NtQueryIoCompletion
(
HANDLE
,
IO_COMPLETION_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2501
NTSYSAPI
NTSTATUS
WINAPI
NtQueryKey
(
HANDLE
,
KEY_INFORMATION_CLASS
,
void
*,
DWORD
,
DWORD
*);
2502
NTSYSAPI
NTSTATUS
WINAPI
NtQueryMultipleValueKey
(
HANDLE
,
PKEY_MULTIPLE_VALUE_INFORMATION
,
ULONG
,
PVOID
,
ULONG
,
PULONG
);
2503
NTSYSAPI
NTSTATUS
WINAPI
NtQueryMutant
(
HANDLE
,
MUTANT_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2504
NTSYSAPI
NTSTATUS
WINAPI
NtQueryObject
(
HANDLE
,
OBJECT_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2505
NTSYSAPI
NTSTATUS
WINAPI
NtQueryOpenSubKeys
(
POBJECT_ATTRIBUTES
,
PULONG
);
2506
NTSYSAPI
NTSTATUS
WINAPI
NtQueryPerformanceCounter
(
PLARGE_INTEGER
,
PLARGE_INTEGER
);
2507
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySecurityObject
(
HANDLE
,
SECURITY_INFORMATION
,
PSECURITY_DESCRIPTOR
,
ULONG
,
PULONG
);
2508
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySection
(
HANDLE
,
SECTION_INFORMATION_CLASS
,
PVOID
,
SIZE_T
,
SIZE_T
*);
2509
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySemaphore
(
HANDLE
,
SEMAPHORE_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2510
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySymbolicLinkObject
(
HANDLE
,
PUNICODE_STRING
,
PULONG
);
2511
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySystemEnvironmentValue
(
PUNICODE_STRING
,
PWCHAR
,
ULONG
,
PULONG
);
2512
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySystemInformation
(
SYSTEM_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2513
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySystemInformationEx
(
SYSTEM_INFORMATION_CLASS
,
void
*,
ULONG
,
void
*,
ULONG
,
ULONG
*);
2514
NTSYSAPI
NTSTATUS
WINAPI
NtQuerySystemTime
(
PLARGE_INTEGER
);
2515
NTSYSAPI
NTSTATUS
WINAPI
NtQueryTimer
(
HANDLE
,
TIMER_INFORMATION_CLASS
,
PVOID
,
ULONG
,
PULONG
);
2516
NTSYSAPI
NTSTATUS
WINAPI
NtQueryTimerResolution
(
PULONG
,
PULONG
,
PULONG
);
2517
NTSYSAPI
NTSTATUS
WINAPI
NtQueryValueKey
(
HANDLE
,
const
UNICODE_STRING
*,
KEY_VALUE_INFORMATION_CLASS
,
void
*,
DWORD
,
DWORD
*);
2518
NTSYSAPI
NTSTATUS
WINAPI
NtQueryLicenseValue
(
const
UNICODE_STRING
*,
ULONG
*,
PVOID
,
ULONG
,
ULONG
*);
2519
NTSYSAPI
NTSTATUS
WINAPI
NtQueryVirtualMemory
(
HANDLE
,
LPCVOID
,
MEMORY_INFORMATION_CLASS
,
PVOID
,
SIZE_T
,
SIZE_T
*);
2520
NTSYSAPI
NTSTATUS
WINAPI
NtQueryVolumeInformationFile
(
HANDLE
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
FS_INFORMATION_CLASS
);
2521
NTSYSAPI
NTSTATUS
WINAPI
NtRaiseException
(
PEXCEPTION_RECORD
,
PCONTEXT
,
BOOL
);
2522
NTSYSAPI
NTSTATUS
WINAPI
NtRaiseHardError
(
NTSTATUS
,
ULONG
,
PUNICODE_STRING
,
PVOID
*,
HARDERROR_RESPONSE_OPTION
,
PHARDERROR_RESPONSE
);
2523
NTSYSAPI
NTSTATUS
WINAPI
NtReadFile
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
PVOID
,
ULONG
,
PLARGE_INTEGER
,
PULONG
);
2524
NTSYSAPI
NTSTATUS
WINAPI
NtReadFileScatter
(
HANDLE
,
HANDLE
,
PIO_APC_ROUTINE
,
PVOID
,
PIO_STATUS_BLOCK
,
FILE_SEGMENT_ELEMENT
*,
ULONG
,
PLARGE_INTEGER
,
PULONG
);
2525
NTSYSAPI
NTSTATUS
WINAPI
NtReadRequestData
(
HANDLE
,
PLPC_MESSAGE
,
ULONG
,
PVOID
,
ULONG
,
PULONG
);
2526
NTSYSAPI
NTSTATUS
WINAPI
NtReadVirtualMemory
(
HANDLE
,
const
void
*,
void
*,
SIZE_T
,
SIZE_T
*);
2527
NTSYSAPI
NTSTATUS
WINAPI
NtRegisterThreadTerminatePort
(
HANDLE
);
2528
NTSYSAPI
NTSTATUS
WINAPI
NtReleaseKeyedEvent
(
HANDLE
,
const
void
*,
BOOLEAN
,
const
LARGE_INTEGER
*);
2529
NTSYSAPI
NTSTATUS
WINAPI
NtReleaseMutant
(
HANDLE
,
PLONG
);
2530
NTSYSAPI
NTSTATUS
WINAPI
NtReleaseSemaphore
(
HANDLE
,
ULONG
,
PULONG
);
2531
NTSYSAPI
NTSTATUS
WINAPI
NtRemoveIoCompletion
(
HANDLE
,
PULONG_PTR
,
PULONG_PTR
,
PIO_STATUS_BLOCK
,
PLARGE_INTEGER
);
2532
NTSYSAPI
NTSTATUS
WINAPI
NtRenameKey
(
HANDLE
,
UNICODE_STRING
*);
2533
NTSYSAPI
NTSTATUS
WINAPI
NtReplaceKey
(
POBJECT_ATTRIBUTES
,
HANDLE
,
POBJECT_ATTRIBUTES
);
2534
NTSYSAPI
NTSTATUS
WINAPI
NtReplyPort
(
HANDLE
,
PLPC_MESSAGE
);
2535
NTSYSAPI
NTSTATUS
WINAPI
NtReplyWaitReceivePort
(
HANDLE
,
PULONG
,
PLPC_MESSAGE
,
PLPC_MESSAGE
);
2536
NTSYSAPI
NTSTATUS
WINAPI
NtReplyWaitReceivePortEx
(
HANDLE
,
PVOID
*,
PPORT_MESSAGE
,
PPORT_MESSAGE
,
PLARGE_INTEGER
);
2537
NTSYSAPI
NTSTATUS
WINAPI
NtReplyWaitReplyPort
(
HANDLE
,
PLPC_MESSAGE
);
2538
NTSYSAPI
NTSTATUS
WINAPI
NtRequestPort
(
HANDLE
,
PLPC_MESSAGE
);
2539
NTSYSAPI
NTSTATUS
WINAPI
NtRequestWaitReplyPort
(
HANDLE
,