libPeConv
A library to load, manipulate, dump PE files.
ntddk.h
Go to the documentation of this file.
1#ifndef __NTDLL_H__
2#define __NTDLL_H__
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7#include <windows.h>
8
9#ifdef _NTDDK_
10#error This header cannot be compiled together with NTDDK
11#endif
12
13
14#ifndef _NTDLL_SELF_ // Auto-insert the library
15#pragma comment(lib, "Ntdll.lib")
16#endif
17
18#pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
19
20#pragma warning(push)
21#pragma warning(disable:4005)
22#include <ntstatus.h>
23#pragma warning(pop)
24
25//------------------------------------------------------------------------------
26// Defines for NTSTATUS
27
28typedef long NTSTATUS;
29
30#ifndef NT_SUCCESS
31#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
32#endif
33
34#ifndef STATUS_SUCCESS
35#define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
36#endif
37
38#ifndef STATUS_UNSUCCESSFUL
39#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)
40#endif
41
42#ifndef ASSERT
43#ifdef _DEBUG
44#define ASSERT(x) assert(x)
45#else
46#define ASSERT(x) /* x */
47#endif
48#endif
49
50//------------------------------------------------------------------------------
51// Structures
52
53typedef enum _EVENT_TYPE
54{
57
59
60//
61// ANSI strings are counted 8-bit character strings. If they are
62// NULL terminated, Length does not include trailing NULL.
63//
64
65#ifndef _NTSECAPI_
66typedef struct _STRING
67{
68 USHORT Length;
70 PCHAR Buffer;
71
73
74//
75// Unicode strings are counted 16-bit character strings. If they are
76// NULL terminated, Length does not include trailing NULL.
77//
78
79typedef struct _UNICODE_STRING
80{
81 USHORT Length;
83 PWSTR Buffer;
84
86#endif // _NTSECAPI_
87
90
93typedef CONST STRING* PCOEM_STRING;
94
96
97#define UNICODE_NULL ((WCHAR)0) // winnt
98
99//
100// Valid values for the Attributes field
101//
102
103#ifndef OBJ_CASE_INSENSITIVE
104#define OBJ_INHERIT 0x00000002L
105#define OBJ_PERMANENT 0x00000010L
106#define OBJ_EXCLUSIVE 0x00000020L
107#define OBJ_CASE_INSENSITIVE 0x00000040L
108#define OBJ_OPENIF 0x00000080L
109#define OBJ_OPENLINK 0x00000100L
110#define OBJ_KERNEL_HANDLE 0x00000200L
111#define OBJ_FORCE_ACCESS_CHECK 0x00000400L
112#define OBJ_VALID_ATTRIBUTES 0x000007F2L
113
114//
115// Object Attributes structure
116//
117
118typedef struct _OBJECT_ATTRIBUTES
119{
120 ULONG Length;
124 PVOID SecurityDescriptor; // Points to type SECURITY_DESCRIPTOR
125 PVOID SecurityQualityOfService; // Points to type SECURITY_QUALITY_OF_SERVICE
126
128#endif // OBJ_CASE_INSENSITIVE
129
130//
131// IO_STATUS_BLOCK
132//
133
134typedef struct _IO_STATUS_BLOCK
135{
136 union
137 {
139 PVOID Pointer;
140 };
141
142 ULONG_PTR Information;
143
145
146//
147// ClientId
148//
149
150typedef struct _CLIENT_ID
151{
154
156
157
158//
159// CURDIR structure
160//
161
162typedef struct _CURDIR
163{
165 HANDLE Handle;
166
168
169
170//------------------------------------------------------------------------------
171// Macros
172
173// INIT_UNICODE_STRING is a replacement of RtlInitUnicodeString
174#ifndef INIT_UNICODE_STRING
175#define INIT_UNICODE_STRING(us, wch) \
176 us.MaximumLength = (USHORT)sizeof(wch); \
177 us.Length = (USHORT)(wcslen(wch) * sizeof(WCHAR)); \
178 us.Buffer = wch
179#endif
180
181
182#ifndef InitializeObjectAttributes
183#define InitializeObjectAttributes( p, n, a, r, s ) { \
184 (p)->Length = sizeof( OBJECT_ATTRIBUTES ); \
185 (p)->RootDirectory = r; \
186 (p)->Attributes = a; \
187 (p)->ObjectName = n; \
188 (p)->SecurityDescriptor = s; \
189 (p)->SecurityQualityOfService = NULL; \
190 }
191#endif
192
193
194#ifndef InitializePortHeader
195#define InitializeMessageHeader( ph, l, t ) { \
196 (ph)->TotalLength = (USHORT)(l); \
197 (ph)->DataLength = (USHORT)(l - sizeof(PORT_MESSAGE)); \
198 (ph)->Type = (USHORT)(t); \
199 (ph)->VirtualRangesOffset = 0; \
200 }
201#endif
202
203//-----------------------------------------------------------------------------
204// Image functions
205
206NTSYSAPI
207PVOID
208NTAPI
210 IN PVOID BaseAddress
211 );
212
213NTSYSAPI
214PVOID
215NTAPI
217 IN PVOID Base,
218 IN BOOLEAN MappedAsImage,
219 IN USHORT DirectoryEntry,
220 OUT PULONG Size
221 );
222
223//-----------------------------------------------------------------------------
224// Unicode string functions
225
226NTSYSAPI
228NTAPI
230 IN REFGUID Guid,
231 OUT PUNICODE_STRING GuidString
232 );
233
234
235NTSYSAPI
236VOID
237NTAPI
239 PUNICODE_STRING DestinationString,
240 PCWSTR SourceString
241 );
242
243
244NTSYSAPI
245BOOLEAN
246NTAPI
248 OUT PUNICODE_STRING DestinationString,
249 IN PCWSTR SourceString
250 );
251
252
253NTSYSAPI
254BOOLEAN
255NTAPI
257 OUT PUNICODE_STRING Destination,
258 IN PCSTR Source
259 );
260
261
262NTSYSAPI
263BOOLEAN
264NTAPI
266 IN PUNICODE_STRING String1,
267 IN PUNICODE_STRING String2,
268 IN BOOLEAN CaseInSensitive
269 );
270
271
272NTSYSAPI
274NTAPI
276 IN BOOLEAN AllocateNew,
277 IN PUNICODE_STRING SourceString,
278 OUT PUNICODE_STRING TargetString
279 );
280
281
282NTSYSAPI
284NTAPI
286 PUNICODE_STRING Destination,
287 PCWSTR Source
288 );
289
290
291NTSYSAPI
293NTAPI
295 IN OUT PUNICODE_STRING Destination,
296 IN PUNICODE_STRING Source
297 );
298
299
300NTSYSAPI
302NTAPI
304 IN PUNICODE_STRING String,
305 IN ULONG Base OPTIONAL,
306 OUT PULONG Value
307 );
308
309
310NTSYSAPI
312NTAPI
314 IN ULONG Value,
315 IN ULONG Base OPTIONAL,
316 IN OUT PUNICODE_STRING String
317 );
318
319
320NTSYSAPI
322NTAPI
324 IN PUNICODE_STRING GuidString,
325 OUT GUID *Guid
326 );
327
328
329NTSYSAPI
330LONG
331NTAPI
333 IN PUNICODE_STRING String1,
334 IN PUNICODE_STRING String2,
335 IN BOOLEAN CaseInSensitive
336 );
337
338
339NTSYSAPI
340VOID
341NTAPI
343 OUT PUNICODE_STRING DestinationString,
344 IN PUNICODE_STRING SourceString
345 );
346
347
348NTSYSAPI
350NTAPI
352 OUT PUNICODE_STRING DestinationString,
353 IN PUNICODE_STRING SourceString,
354 IN BOOLEAN AllocateDestinationString
355 );
356
357
358NTSYSAPI
360NTAPI
362 OUT PUNICODE_STRING DestinationString,
363 IN PUNICODE_STRING SourceString,
364 IN BOOLEAN AllocateDestinationString
365 );
366
367
368NTSYSAPI
369BOOLEAN
370NTAPI
372 IN PUNICODE_STRING String1,
373 IN PUNICODE_STRING String2,
374 IN BOOLEAN CaseInSensitive
375 );
376
377
378NTSYSAPI
379VOID
380NTAPI
382 IN PUNICODE_STRING UnicodeString
383 );
384
385
386NTSYSAPI
388NTAPI
390 OUT PUNICODE_STRING DestinationString,
391 IN PANSI_STRING SourceString,
392 IN BOOLEAN AllocateDestinationString
393 );
394
395
396NTSYSAPI
398NTAPI
400 OUT PANSI_STRING DestinationString,
401 IN PUNICODE_STRING SourceString,
402 IN BOOLEAN AllocateDestinationString
403 );
404
405
406NTSYSAPI
407VOID
408NTAPI
410 OUT PANSI_STRING DestinationString,
411 IN PCHAR SourceString
412 );
413
414
415NTSYSAPI
416VOID
417NTAPI
419 IN PANSI_STRING AnsiString
420 );
421
422
423NTSYSAPI
425NTAPI
427 OUT PUNICODE_STRING CurrentUserKeyPath
428 );
429
430
431NTSYSAPI
432VOID
433NTAPI
435 IN NTSTATUS Status
436 );
437
438
439NTSYSAPI
440VOID
441NTAPI
443 VOID
444 );
445
446
447NTSYSAPI
448ULONG
449_cdecl
451 PCH Format,
452 ...
453 );
454
455
456NTSYSAPI
457ULONG
458NTAPI
460 IN OUT PULONG Seed
461 );
462
463//-----------------------------------------------------------------------------
464// Critical section functions
465
466NTSYSAPI
468NTAPI
470 IN PRTL_CRITICAL_SECTION CriticalSection
471 );
472
473
474NTSYSAPI
475BOOL
476NTAPI
478 IN PRTL_CRITICAL_SECTION CriticalSection
479 );
480
481
482NTSYSAPI
484NTAPI
486 IN PRTL_CRITICAL_SECTION CriticalSection
487 );
488
489
490NTSYSAPI
492NTAPI
494 IN PRTL_CRITICAL_SECTION CriticalSection
495 );
496
497
498NTSYSAPI
500NTAPI
502 IN PRTL_CRITICAL_SECTION CriticalSection
503 );
504
505//-----------------------------------------------------------------------------
506// Object functions
507
508//
509// Object Manager Directory Specific Access Rights.
510//
511
512#ifndef DIRECTORY_QUERY
513#define DIRECTORY_QUERY (0x0001)
514#define DIRECTORY_TRAVERSE (0x0002)
515#define DIRECTORY_CREATE_OBJECT (0x0004)
516#define DIRECTORY_CREATE_SUBDIRECTORY (0x0008)
517#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
518#endif
519
520typedef enum _POOL_TYPE {
530
531
532//
533// For NtQueryObject
534//
535
540 ObjectTypesInformation, // = 3 //object handle is ignored
543
544//
545// NtQueryObject uses ObjectBasicInformation
546//
547
550 ACCESS_MASK GrantedAccess;
555 ULONG Reserved[3];
559 LARGE_INTEGER CreationTime;
561
562//
563// NtQueryObject uses ObjectNameInformation
564//
565
569
570//
571// NtQueryObject uses ObjectTypeInformation
572//
573
589 GENERIC_MAPPING GenericMapping;
597
598//
599// NtQueryObject uses ObjectHandleFlagInformation
600// NtSetInformationObject uses ObjectHandleFlagInformation
601//
602
604 BOOLEAN Inherit;
607
608//
609// NtQueryDirectoryObject uses this type
610//
611
616
617
618NTSYSAPI
620NTAPI
622 OUT PHANDLE DirectoryHandle,
623 IN ACCESS_MASK DesiredAccess,
624 IN POBJECT_ATTRIBUTES ObjectAttributes
625 );
626
627
628NTSYSAPI
630NTAPI
632 IN HANDLE DirectoryHandle,
633 OUT PVOID Buffer,
634 IN ULONG Length,
635 IN BOOLEAN ReturnSingleEntry,
636 IN BOOLEAN RestartScan,
637 IN OUT PULONG Context,
638 OUT PULONG ReturnLength OPTIONAL
639 );
640
641
642NTSYSAPI
644NTAPI
646 IN HANDLE ObjectHandle,
647 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
648 OUT PVOID ObjectInformation,
649 IN ULONG Length,
650 OUT PULONG ResultLength OPTIONAL
651 );
652
653
654NTSYSAPI
656NTAPI
658 IN HANDLE ObjectHandle,
659 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
660 IN PVOID ObjectInformation,
661 IN ULONG Length
662 );
663
664
665NTSYSAPI
667NTAPI
669 IN HANDLE SourceProcessHandle,
670 IN HANDLE SourceHandle,
671 IN HANDLE TargetProcessHandle OPTIONAL,
672 OUT PHANDLE TargetHandle OPTIONAL,
673 IN ACCESS_MASK DesiredAccess,
674 IN ULONG HandleAttributes,
675 IN ULONG Options
676 );
677
678
679NTSYSAPI
681NTAPI
683 IN HANDLE ObjectHandle,
684 IN SECURITY_INFORMATION SecurityInformation,
685 OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
686 IN ULONG DescriptorLength,
687 OUT PULONG ReturnLength
688 );
689
690
691NTSYSAPI
693NTAPI
695 IN HANDLE ObjectHandle,
696 IN SECURITY_INFORMATION SecurityInformation,
697 IN PSECURITY_DESCRIPTOR SecurityDescriptor
698 );
699
700
701//-----------------------------------------------------------------------------
702// Handle table RTL functions
703
704#define LEVEL_HANDLE_ID 0x74000000
705#define LEVEL_HANDLE_ID_MASK 0xFF000000
706#define LEVEL_HANDLE_INDEX_MASK 0x00FFFFFF
707
713
714
715typedef struct _RTL_SPLAY_LINKS
716{
721
722
723struct _RTL_GENERIC_TABLE;
724
725typedef
727(NTAPI * PRTL_GENERIC_COMPARE_ROUTINE) (
728 struct _RTL_GENERIC_TABLE *Table,
731 );
732
733typedef
734PVOID
736 struct _RTL_GENERIC_TABLE *Table,
737 ULONG ByteSize
738 );
739
740typedef
741VOID
743 struct _RTL_GENERIC_TABLE *Table,
744 PVOID Buffer
745 );
746
747
748typedef struct _RTL_GENERIC_TABLE {
750 LIST_ENTRY InsertOrderList;
751 PLIST_ENTRY OrderedPointer;
754 PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
759
760
762{
763 struct _RTL_HANDLE_TABLE_ENTRY *Next; /* pointer to next free handle */
764 PVOID Object;
765
767
768
769typedef struct _RTL_HANDLE_TABLE
770{
780
781
782NTSYSAPI
783VOID
784NTAPI
786 IN PRTL_GENERIC_TABLE Table,
787 IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
788 IN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
789 IN PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
790 IN PVOID TableContext
791 );
792
793
794NTSYSAPI
795VOID
796NTAPI
798 IN ULONG MaximumNumberOfHandles,
799 IN ULONG SizeOfHandleTableEntry,
800 OUT PRTL_HANDLE_TABLE HandleTable
801 );
802
803
804NTSYSAPI
806NTAPI
808 IN PRTL_HANDLE_TABLE HandleTable,
809 OUT PULONG HandleIndex OPTIONAL
810 );
811
812
813NTSYSAPI
814BOOLEAN
815NTAPI
817 IN PRTL_HANDLE_TABLE HandleTable,
819 );
820
821
822NTSYSAPI
823BOOLEAN
824NTAPI
826 IN PRTL_HANDLE_TABLE HandleTable,
827 IN ULONG HandleIndex,
828 OUT PRTL_HANDLE_TABLE_ENTRY *Handle
829 );
830
831
832NTSYSAPI
833PVOID
834NTAPI
836 IN PRTL_GENERIC_TABLE Table,
837 IN PVOID Buffer,
838 IN LONG BufferSize,
839 OUT PBOOLEAN NewElement OPTIONAL
840 );
841
842
843NTSYSAPI
844BOOLEAN
845NTAPI
847 IN PRTL_GENERIC_TABLE Table
848 );
849
850
851NTSYSAPI
852BOOLEAN
853NTAPI
855 IN PRTL_GENERIC_TABLE Table
856 );
857
858
859NTSYSAPI
860PVOID
861NTAPI
863 IN PRTL_GENERIC_TABLE Table,
864 IN PVOID Buffer
865 );
866
867
868NTSYSAPI
869PVOID
870NTAPI
872 IN PRTL_GENERIC_TABLE Table,
873 IN PVOID *RestartKey
874 );
875
876
877NTSYSAPI
879NTAPI
881 IN HANDLE Handle
882 );
883
884
885NTSYSAPI
887NTAPI
889 IN HANDLE Handle
890 );
891
892//-----------------------------------------------------------------------------
893// Environment functions
894
895NTSYSAPI
897NTAPI
899 IN ULONG DesiredAccess,
900 OUT PHANDLE CurrentUserKey
901 );
902
903
904NTSYSAPI
906NTAPI
908 BOOLEAN CloneCurrentEnvironment,
909 PVOID *Environment
910 );
911
912
913NTSYSAPI
915NTAPI
917 PVOID Environment,
918 PUNICODE_STRING Name,
919 PUNICODE_STRING Value
920 );
921
922
923NTSYSAPI
925NTAPI
927 PVOID *Environment,
928 PUNICODE_STRING Name,
929 PUNICODE_STRING Value
930 );
931
932
933NTSYSAPI
935NTAPI
937 PVOID Environment
938 );
939
940//-----------------------------------------------------------------------------
941// Registry functions
942
943
945{
952 MaxKeyInfoClass // MaxKeyInfoClass should always be the last enum
953
955
956//
957// Key query structures
958//
959
961{
962 LARGE_INTEGER LastWriteTime;
965 WCHAR Name[1]; // Variable length string
966
968
969
971{
972 LARGE_INTEGER LastWriteTime;
977 WCHAR Name[1]; // Variable length string
978// Class[1]; // Variable length string not declared
980
981
983{
984 LARGE_INTEGER LastWriteTime;
988 ULONG SubKeys;
991 ULONG Values;
994 WCHAR Class[1]; // Variable length
995
997
998
999// end_wdm
1001{
1003 WCHAR Name[1]; // Variable length string
1004
1006
1008{
1009 LARGE_INTEGER LastWriteTime;
1011 ULONG SubKeys;
1013 ULONG Values;
1017 WCHAR Name[1]; // Variable length string
1018
1020
1021
1023{
1025
1027
1028
1029
1036 MaxKeyValueInfoClass // MaxKeyValueInfoClass should always be the last enum
1038
1039
1042 ULONG Type;
1046 WCHAR Name[1]; // Variable size
1047// Data[1]; // Variable size data not declared
1049
1050
1053 ULONG Type;
1055 UCHAR Data[1]; // Variable size
1057
1058
1059
1060NTSYSAPI
1062NTAPI
1064 OUT PHANDLE KeyHandle,
1065 IN ACCESS_MASK DesiredAccess,
1066 IN POBJECT_ATTRIBUTES ObjectAttributes,
1067 IN ULONG TitleIndex,
1068 IN PUNICODE_STRING Class OPTIONAL,
1069 IN ULONG CreateOptions,
1070 OUT PULONG Disposition OPTIONAL
1071 );
1072
1073
1074NTSYSAPI
1076NTAPI
1078 OUT PHANDLE KeyHandle,
1079 IN ACCESS_MASK DesiredAccess,
1080 IN POBJECT_ATTRIBUTES ObjectAttributes
1081 );
1082
1083NTSYSAPI
1085NTAPI
1087 IN HANDLE KeyHandle,
1088 IN KEY_INFORMATION_CLASS KeyInformationClass,
1089 OUT PVOID KeyInformation,
1090 IN ULONG Length,
1091 OUT PULONG ResultLength
1092 );
1093
1094NTSYSAPI
1096NTAPI
1098 IN HANDLE KeyHandle,
1099 IN ULONG Index,
1100 IN KEY_INFORMATION_CLASS KeyInformationClass,
1101 IN PVOID KeyInformation,
1102 IN ULONG Length,
1103 IN PULONG ResultLength
1104 );
1105
1106
1107NTSYSAPI
1109NTAPI
1111 IN HANDLE KeyHandle
1112 );
1113
1114
1115NTSYSAPI
1117NTAPI
1119 IN HANDLE KeyHandle,
1120 IN PUNICODE_STRING ValueName,
1121 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
1122 OUT PVOID KeyValueInformation,
1123 IN ULONG Length,
1124 OUT PULONG ResultLength
1125 );
1126
1127
1128NTSYSAPI
1130NTAPI
1132 IN HANDLE KeyHandle,
1133 IN PUNICODE_STRING ValueName,
1134 IN ULONG TitleIndex OPTIONAL,
1135 IN ULONG Type,
1136 IN PVOID Data,
1137 IN ULONG DataSize
1138 );
1139
1140
1141NTSYSAPI
1143NTAPI
1145 IN HANDLE KeyHandle,
1146 IN PUNICODE_STRING ValueName
1147 );
1148
1149//-----------------------------------------------------------------------------
1150// RtlQueryRegistryValues
1151
1152//
1153// The following flags specify how the Name field of a RTL_QUERY_REGISTRY_TABLE
1154// entry is interpreted. A NULL name indicates the end of the table.
1155//
1156
1157#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001 // Name is a subkey and remainder of
1158 // table or until next subkey are value
1159 // names for that subkey to look at.
1160
1161#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002 // Reset current key to original key for
1162 // this and all following table entries.
1163
1164#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004 // Fail if no match found for this table
1165 // entry.
1166
1167#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008 // Used to mark a table entry that has no
1168 // value name, just wants a call out, not
1169 // an enumeration of all values.
1170
1171#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010 // Used to suppress the expansion of
1172 // REG_MULTI_SZ into multiple callouts or
1173 // to prevent the expansion of environment
1174 // variable values in REG_EXPAND_SZ
1175
1176#define RTL_QUERY_REGISTRY_DIRECT 0x00000020 // QueryRoutine field ignored. EntryContext
1177 // field points to location to store value.
1178 // For null terminated strings, EntryContext
1179 // points to UNICODE_STRING structure that
1180 // that describes maximum size of buffer.
1181 // If .Buffer field is NULL then a buffer is
1182 // allocated.
1183 //
1184
1185#define RTL_QUERY_REGISTRY_DELETE 0x00000040 // Used to delete value keys after they
1186 // are queried.
1187
1188
1189//
1190// The following values for the RelativeTo parameter determine what the
1191// Path parameter to RtlQueryRegistryValues is relative to.
1192//
1193
1194#define RTL_REGISTRY_ABSOLUTE 0 // Path is a full path
1195#define RTL_REGISTRY_SERVICES 1 // \Registry\Machine\System\CurrentControlSet\Services
1196#define RTL_REGISTRY_CONTROL 2 // \Registry\Machine\System\CurrentControlSet\Control
1197#define RTL_REGISTRY_WINDOWS_NT 3 // \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion
1198#define RTL_REGISTRY_DEVICEMAP 4 // \Registry\Machine\Hardware\DeviceMap
1199#define RTL_REGISTRY_USER 5 // \Registry\User\CurrentUser
1200#define RTL_REGISTRY_MAXIMUM 6
1201#define RTL_REGISTRY_HANDLE 0x40000000 // Low order bits are registry handle
1202#define RTL_REGISTRY_OPTIONAL 0x80000000 // Indicates the key node is optional
1203
1204
1206 IN PWSTR ValueName,
1207 IN ULONG ValueType,
1208 IN PVOID ValueData,
1209 IN ULONG ValueLength,
1210 IN PVOID Context,
1211 IN PVOID EntryContext
1212 );
1213
1215{
1217 ULONG Flags;
1218 PWSTR Name;
1223
1225
1226
1227NTSYSAPI
1229NTAPI
1231 IN ULONG RelativeTo,
1232 IN PCWSTR Path,
1233 IN PRTL_QUERY_REGISTRY_TABLE QueryTable,
1234 IN PVOID Context,
1235 IN PVOID Environment OPTIONAL
1236 );
1237
1238
1239//-----------------------------------------------------------------------------
1240// Query system information
1241
1243{
1244 SystemBasicInformation, // 0x00 SYSTEM_BASIC_INFORMATION
1245 SystemProcessorInformation, // 0x01 SYSTEM_PROCESSOR_INFORMATION
1255 SystemModuleInformation, // 0x0B SYSTEM_MODULE_INFORMATION
1286 //SystemPowerInformation, // 0x2A
1287 //SystemProcessorSpeedInformation, // 0x2B
1288 //SystemCurrentTimeZoneInformation, // 0x2C
1289 //SystemLookasideInformation // 0x2D
1290
1292
1293//
1294// Thread priority
1295//
1296
1297typedef LONG KPRIORITY;
1298
1299//
1300// Basic System information
1301// NtQuerySystemInformation with SystemBasicInformation
1302//
1303
1317
1318//
1319// Processor information
1320// NtQuerySystemInformation with SystemProcessorInformation
1321//
1322
1327 USHORT Reserved;
1330
1331//
1332// Performance information
1333// NtQuerySystemInformation with SystemPerformanceInformation
1334//
1335
1337 LARGE_INTEGER IdleProcessTime;
1338 LARGE_INTEGER IoReadTransferCount;
1412
1413//
1414// Time of Day information
1415// NtQuerySystemInformation with SystemTimeOfDayInformation
1416//
1417
1419 LARGE_INTEGER BootTime;
1420 LARGE_INTEGER CurrentTime;
1421 LARGE_INTEGER TimeZoneBias;
1425
1426//
1427// Process information
1428// NtQuerySystemInformation with SystemProcessInformation
1429//
1430
1434 LARGE_INTEGER SpareLi1;
1435 LARGE_INTEGER SpareLi2;
1436 LARGE_INTEGER SpareLi3;
1437 LARGE_INTEGER CreateTime;
1438 LARGE_INTEGER UserTime;
1439 LARGE_INTEGER KernelTime;
1445 // Next part is platform dependent
1446
1448
1449//
1450// Device information
1451// NtQuerySystemInformation with SystemDeviceInformation
1452//
1453
1462
1463//
1464// Processor performance information
1465// NtQuerySystemInformation with SystemProcessorPerformanceInformation
1466//
1467
1469 LARGE_INTEGER IdleTime;
1470 LARGE_INTEGER KernelTime;
1471 LARGE_INTEGER UserTime;
1472 LARGE_INTEGER DpcTime; // DEVL only
1473 LARGE_INTEGER InterruptTime; // DEVL only
1476
1477//
1478// NT Global Flag information
1479// NtQuerySystemInformation with SystemFlagsInformation
1480//
1481
1483{
1485
1487
1488//
1489// System Module information
1490// NtQuerySystemInformation with SystemModuleInformation
1491//
1492
1493typedef struct _SYSTEM_MODULE
1494{
1495 ULONG Reserved1; // Should be 0xBAADF00D
1496 ULONG Reserved2; // Should be zero
1497 PVOID Base;
1498 ULONG Size;
1499 ULONG Flags;
1500 USHORT Index;
1501 USHORT Unknown;
1504 CHAR ImageName[256];
1505
1507
1508
1510{
1513
1515
1516/*
1517typedef struct _SYSTEM_VDM_INSTEMUL_INFO {
1518 ULONG SegmentNotPresent ;
1519 ULONG VdmOpcode0F ;
1520 ULONG OpcodeESPrefix ;
1521 ULONG OpcodeCSPrefix ;
1522 ULONG OpcodeSSPrefix ;
1523 ULONG OpcodeDSPrefix ;
1524 ULONG OpcodeFSPrefix ;
1525 ULONG OpcodeGSPrefix ;
1526 ULONG OpcodeOPER32Prefix;
1527 ULONG OpcodeADDR32Prefix;
1528 ULONG OpcodeINSB ;
1529 ULONG OpcodeINSW ;
1530 ULONG OpcodeOUTSB ;
1531 ULONG OpcodeOUTSW ;
1532 ULONG OpcodePUSHF ;
1533 ULONG OpcodePOPF ;
1534 ULONG OpcodeINTnn ;
1535 ULONG OpcodeINTO ;
1536 ULONG OpcodeIRET ;
1537 ULONG OpcodeINBimm ;
1538 ULONG OpcodeINWimm ;
1539 ULONG OpcodeOUTBimm ;
1540 ULONG OpcodeOUTWimm ;
1541 ULONG OpcodeINB ;
1542 ULONG OpcodeINW ;
1543 ULONG OpcodeOUTB ;
1544 ULONG OpcodeOUTW ;
1545 ULONG OpcodeLOCKPrefix ;
1546 ULONG OpcodeREPNEPrefix ;
1547 ULONG OpcodeREPPrefix ;
1548 ULONG OpcodeHLT ;
1549 ULONG OpcodeCLI ;
1550 ULONG OpcodeSTI ;
1551 ULONG BopCount ;
1552} SYSTEM_VDM_INSTEMUL_INFO, *PSYSTEM_VDM_INSTEMUL_INFO;
1553
1554
1555typedef struct _SYSTEM_QUERY_TIME_ADJUST_INFORMATION {
1556 ULONG TimeAdjustment;
1557 ULONG TimeIncrement;
1558 BOOLEAN Enable;
1559} SYSTEM_QUERY_TIME_ADJUST_INFORMATION, *PSYSTEM_QUERY_TIME_ADJUST_INFORMATION;
1560
1561typedef struct _SYSTEM_SET_TIME_ADJUST_INFORMATION {
1562 ULONG TimeAdjustment;
1563 BOOLEAN Enable;
1564} SYSTEM_SET_TIME_ADJUST_INFORMATION, *PSYSTEM_SET_TIME_ADJUST_INFORMATION;
1565
1566
1567typedef struct _SYSTEM_THREAD_INFORMATION {
1568 LARGE_INTEGER KernelTime;
1569 LARGE_INTEGER UserTime;
1570 LARGE_INTEGER CreateTime;
1571 ULONG WaitTime;
1572 PVOID StartAddress;
1573 CLIENT_ID ClientId;
1574 KPRIORITY Priority;
1575 LONG BasePriority;
1576 ULONG ContextSwitches;
1577 ULONG ThreadState;
1578 ULONG WaitReason;
1579} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION;
1580
1581typedef struct _SYSTEM_MEMORY_INFO {
1582 PUCHAR StringOffset;
1583 USHORT ValidCount;
1584 USHORT TransitionCount;
1585 USHORT ModifiedCount;
1586 USHORT PageTableCount;
1587} SYSTEM_MEMORY_INFO, *PSYSTEM_MEMORY_INFO;
1588
1589typedef struct _SYSTEM_MEMORY_INFORMATION {
1590 ULONG InfoSize;
1591 ULONG StringStart;
1592 SYSTEM_MEMORY_INFO Memory[1];
1593} SYSTEM_MEMORY_INFORMATION, *PSYSTEM_MEMORY_INFORMATION;
1594
1595typedef struct _SYSTEM_CALL_COUNT_INFORMATION {
1596 ULONG Length;
1597 ULONG NumberOfTables;
1598 //ULONG NumberOfEntries[NumberOfTables];
1599 //ULONG CallCounts[NumberOfTables][NumberOfEntries];
1600} SYSTEM_CALL_COUNT_INFORMATION, *PSYSTEM_CALL_COUNT_INFORMATION;
1601
1602typedef struct _SYSTEM_CRASH_DUMP_INFORMATION {
1603 HANDLE CrashDumpSection;
1604} SYSTEM_CRASH_DUMP_INFORMATION, *PSYSTEM_CRASH_DUMP_INFORMATION;
1605
1606typedef struct _SYSTEM_EXCEPTION_INFORMATION {
1607 ULONG AlignmentFixupCount;
1608 ULONG ExceptionDispatchCount;
1609 ULONG FloatingEmulationCount;
1610 ULONG ByteWordEmulationCount;
1611} SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
1612
1613typedef struct _SYSTEM_CRASH_STATE_INFORMATION {
1614 ULONG ValidCrashDump;
1615} SYSTEM_CRASH_STATE_INFORMATION, *PSYSTEM_CRASH_STATE_INFORMATION;
1616
1617typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION {
1618 BOOLEAN KernelDebuggerEnabled;
1619 BOOLEAN KernelDebuggerNotPresent;
1620} SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION;
1621
1622typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION {
1623 ULONG RegistryQuotaAllowed;
1624 ULONG RegistryQuotaUsed;
1625 ULONG PagedPoolSize;
1626} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
1627
1628typedef struct _SYSTEM_GDI_DRIVER_INFORMATION {
1629 UNICODE_STRING DriverName;
1630 PVOID ImageAddress;
1631 PVOID SectionPointer;
1632 PVOID EntryPoint;
1633 PIMAGE_EXPORT_DIRECTORY ExportSectionPointer;
1634} SYSTEM_GDI_DRIVER_INFORMATION, *PSYSTEM_GDI_DRIVER_INFORMATION;
1635*/
1636
1637NTSYSAPI
1639NTAPI
1641 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
1642 OUT PVOID SystemInformation,
1643 IN ULONG SystemInformationLength,
1644 OUT PULONG ReturnLength
1645 );
1646
1647//------------------------------------------------------------------------------
1648// Shutdown system
1649
1651{
1655
1657
1658
1659NTSYSAPI
1661NTAPI
1663 IN SHUTDOWN_ACTION Action
1664 );
1665
1666//-----------------------------------------------------------------------------
1667// File functions
1668
1669#ifndef OLD_DOS_VOLID
1670#define OLD_DOS_VOLID 0x00000008
1671#endif
1672
1673#ifndef FILE_SUPERSEDE
1674#define FILE_SUPERSEDE 0x00000000
1675#define FILE_OPEN 0x00000001
1676#define FILE_CREATE 0x00000002
1677#define FILE_OPEN_IF 0x00000003
1678#define FILE_OVERWRITE 0x00000004
1679#define FILE_OVERWRITE_IF 0x00000005
1680#define FILE_MAXIMUM_DISPOSITION 0x00000005
1681#endif // File create flags
1682
1683
1684// Define the create/open option flags
1685#ifndef FILE_DIRECTORY_FILE
1686#define FILE_DIRECTORY_FILE 0x00000001
1687#define FILE_WRITE_THROUGH 0x00000002
1688#define FILE_SEQUENTIAL_ONLY 0x00000004
1689#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
1690#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
1691#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
1692#define FILE_NON_DIRECTORY_FILE 0x00000040
1693#define FILE_CREATE_TREE_CONNECTION 0x00000080
1694#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
1695#define FILE_NO_EA_KNOWLEDGE 0x00000200
1696#define FILE_OPEN_FOR_RECOVERY 0x00000400
1697#define FILE_RANDOM_ACCESS 0x00000800
1698#define FILE_DELETE_ON_CLOSE 0x00001000
1699#define FILE_OPEN_BY_FILE_ID 0x00002000
1700#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
1701#define FILE_NO_COMPRESSION 0x00008000
1702#define FILE_RESERVE_OPFILTER 0x00100000
1703#define FILE_OPEN_REPARSE_POINT 0x00200000
1704#define FILE_OPEN_NO_RECALL 0x00400000
1705#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
1706#endif // FILE_DIRECTORY_FILE
1707
1708
1709//
1710// Define the I/O status information return values for NtCreateFile/NtOpenFile
1711//
1712
1713#ifndef FILE_SUPERSEDED
1714#define FILE_SUPERSEDED 0x00000000
1715#define FILE_OPENED 0x00000001
1716#define FILE_CREATED 0x00000002
1717#define FILE_OVERWRITTEN 0x00000003
1718#define FILE_EXISTS 0x00000004
1719#define FILE_DOES_NOT_EXIST 0x00000005
1720#endif
1721
1722
1723#ifndef PIO_APC_ROUTINE_DEFINED
1724typedef
1725VOID
1726(NTAPI *PIO_APC_ROUTINE) (
1727 IN PVOID ApcContext,
1728 IN PIO_STATUS_BLOCK IoStatusBlock,
1729 IN ULONG Reserved
1730 );
1731#define PIO_APC_ROUTINE_DEFINED
1732#endif // PIO_APC_ROUTINE_DEFINED
1733
1734
1736{
1786
1787
1791 LARGE_INTEGER CreationTime;
1792 LARGE_INTEGER LastAccessTime;
1793 LARGE_INTEGER LastWriteTime;
1794 LARGE_INTEGER ChangeTime;
1795 LARGE_INTEGER EndOfFile;
1796 LARGE_INTEGER AllocationSize;
1799 WCHAR FileName[1];
1801
1802
1806 LARGE_INTEGER CreationTime;
1807 LARGE_INTEGER LastAccessTime;
1808 LARGE_INTEGER LastWriteTime;
1809 LARGE_INTEGER ChangeTime;
1810 LARGE_INTEGER EndOfFile;
1811 LARGE_INTEGER AllocationSize;
1814 ULONG EaSize;
1815 WCHAR FileName[1];
1817
1818
1822 LARGE_INTEGER CreationTime;
1823 LARGE_INTEGER LastAccessTime;
1824 LARGE_INTEGER LastWriteTime;
1825 LARGE_INTEGER ChangeTime;
1826 LARGE_INTEGER EndOfFile;
1827 LARGE_INTEGER AllocationSize;
1830 ULONG EaSize;
1832 WCHAR ShortName[12];
1833 WCHAR FileName[1];
1835
1836
1838 LARGE_INTEGER CreationTime;
1839 LARGE_INTEGER LastAccessTime;
1840 LARGE_INTEGER LastWriteTime;
1841 LARGE_INTEGER ChangeTime;
1844
1845
1847 LARGE_INTEGER AllocationSize;
1848 LARGE_INTEGER EndOfFile;
1851 BOOLEAN Directory;
1853
1854
1856 LARGE_INTEGER IndexNumber;
1858
1859
1860typedef struct _FILE_EA_INFORMATION {
1861 ULONG EaSize;
1863
1864
1866 ACCESS_MASK AccessFlags;
1868
1869
1872 WCHAR FileName[1];
1874
1875
1880 WCHAR FileName[1];
1882
1883
1888 WCHAR FileName[1];
1890
1891
1893 BOOLEAN DeleteFile;
1895
1896
1898 LARGE_INTEGER CurrentByteOffset;
1900
1901
1904 UCHAR Flags;
1907 CHAR EaName[1];
1909
1910
1912 ULONG Mode;
1914
1915
1919
1920
1932
1933
1935 LARGE_INTEGER AllocationSize;
1937
1938
1940 LARGE_INTEGER EndOfFile;
1942
1943
1947 LARGE_INTEGER StreamSize;
1949 WCHAR StreamName[1];
1951
1956
1957
1970
1971
1973 LARGE_INTEGER CollectDataTime;
1976
1977
1983 LARGE_INTEGER ReadTimeout;
1985
1986
1988 PLARGE_INTEGER ReadTimeout;
1990
1991
1993 LARGE_INTEGER CompressedFileSize;
1998 UCHAR Reserved[3];
2000
2001
2006 WCHAR FileName[1];
2008
2009
2011{
2013 UCHAR ObjectId[16];
2014 union {
2015 struct {
2016 UCHAR BirthVolumeId[16];
2017 UCHAR BirthObjectId[16];
2018 UCHAR DomainId[16];
2019 } ;
2020 UCHAR ExtendedInfo[48];
2021 };
2023
2024
2026 HANDLE Port;
2027 PVOID Key;
2029
2030
2035 WCHAR FileName[1];
2037
2038
2040 LARGE_INTEGER CreationTime;
2041 LARGE_INTEGER LastAccessTime;
2042 LARGE_INTEGER LastWriteTime;
2043 LARGE_INTEGER ChangeTime;
2044 LARGE_INTEGER AllocationSize;
2045 LARGE_INTEGER EndOfFile;
2048
2049
2054
2055
2061
2062
2065 ULONG Tag;
2067
2068
2072 LARGE_INTEGER ChangeTime;
2073 LARGE_INTEGER QuotaUsed;
2074 LARGE_INTEGER QuotaThreshold;
2075 LARGE_INTEGER QuotaLimit;
2076 SID Sid;
2078
2079
2083 LARGE_INTEGER CreationTime;
2084 LARGE_INTEGER LastAccessTime;
2085 LARGE_INTEGER LastWriteTime;
2086 LARGE_INTEGER ChangeTime;
2087 LARGE_INTEGER EndOfFile;
2088 LARGE_INTEGER AllocationSize;
2091 ULONG EaSize;
2093 WCHAR ShortName[12];
2094 LARGE_INTEGER FileId;
2095 WCHAR FileName[1];
2097
2098
2102 LARGE_INTEGER CreationTime;
2103 LARGE_INTEGER LastAccessTime;
2104 LARGE_INTEGER LastWriteTime;
2105 LARGE_INTEGER ChangeTime;
2106 LARGE_INTEGER EndOfFile;
2107 LARGE_INTEGER AllocationSize;
2110 ULONG EaSize;
2111 LARGE_INTEGER FileId;
2112 WCHAR FileName[1];
2114
2115
2117 LARGE_INTEGER ValidDataLength;
2119
2124 WCHAR FileName[1];
2126
2132
2133
2134
2135typedef enum _FSINFOCLASS {
2147
2148
2149NTSYSAPI
2151NTAPI
2153 OUT PHANDLE FileHandle,
2154 IN ACCESS_MASK DesiredAccess,
2155 IN POBJECT_ATTRIBUTES ObjectAttributes,
2156 OUT PIO_STATUS_BLOCK IoStatusBlock,
2157 IN PLARGE_INTEGER AllocationSize,
2158 IN ULONG FileAttributes,
2159 IN ULONG ShareAccess,
2160 IN ULONG CreateDisposition,
2161 IN ULONG CreateOptions,
2162 IN PVOID EaBuffer,
2163 IN ULONG EaLength);
2164
2165
2166NTSYSAPI
2168NTAPI
2170 OUT PHANDLE FileHandle,
2171 IN ACCESS_MASK DesiredAccess,
2172 IN POBJECT_ATTRIBUTES ObjectAttributes,
2173 OUT PIO_STATUS_BLOCK IoStatusBlock,
2174 IN PLARGE_INTEGER AllocationSize,
2175 IN ULONG FileAttributes,
2176 IN ULONG ShareAccess,
2177 IN ULONG CreateDisposition,
2178 IN ULONG CreateOptions,
2179 IN PVOID EaBuffer,
2180 IN ULONG EaLength);
2181
2182
2183NTSYSAPI
2185NTAPI
2187 OUT PHANDLE FileHandle,
2188 IN ACCESS_MASK DesiredAccess,
2189 IN POBJECT_ATTRIBUTES ObjectAttributes,
2190 OUT PIO_STATUS_BLOCK IoStatusBlock,
2191 IN ULONG ShareAccess,
2192 IN ULONG OpenOptions
2193 );
2194
2195
2196NTSYSAPI
2198NTAPI
2200 OUT PHANDLE FileHandle,
2201 IN ACCESS_MASK DesiredAccess,
2202 IN POBJECT_ATTRIBUTES ObjectAttributes,
2203 OUT PIO_STATUS_BLOCK IoStatusBlock,
2204 IN ULONG ShareAccess,
2205 IN ULONG OpenOptions
2206 );
2207
2208
2209NTSYSAPI
2211NTAPI
2213 IN HANDLE FileHandle,
2214 OUT PIO_STATUS_BLOCK IoStatusBlock,
2215 OUT PVOID FileInformation,
2216 IN ULONG Length,
2217 IN FILE_INFORMATION_CLASS FileInformationClass
2218 );
2219
2220
2221NTSYSAPI
2223NTAPI
2225 IN HANDLE FileHandle,
2226 OUT PIO_STATUS_BLOCK IoStatusBlock,
2227 OUT PVOID FileInformation,
2228 IN ULONG Length,
2229 IN FILE_INFORMATION_CLASS FileInformationClass
2230 );
2231
2232
2233NTSYSAPI
2235NTAPI
2237 IN HANDLE FileHandle,
2238 IN HANDLE Event OPTIONAL,
2239 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
2240 IN PVOID ApcContext OPTIONAL,
2241 OUT PIO_STATUS_BLOCK IoStatusBlock,
2242 OUT PVOID FileInformation,
2243 IN ULONG Length,
2244 IN FILE_INFORMATION_CLASS FileInformationClass,
2245 IN BOOLEAN ReturnSingleEntry,
2246 IN PUNICODE_STRING FileName OPTIONAL,
2247 IN BOOLEAN RestartScan
2248 );
2249
2250
2251NTSYSAPI
2253NTAPI
2255 IN HANDLE FileHandle,
2256 IN HANDLE Event OPTIONAL,
2257 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
2258 IN PVOID ApcContext OPTIONAL,
2259 OUT PIO_STATUS_BLOCK IoStatusBlock,
2260 OUT PVOID FileInformation,
2261 IN ULONG Length,
2262 IN FILE_INFORMATION_CLASS FileInformationClass,
2263 IN BOOLEAN ReturnSingleEntry,
2264 IN PUNICODE_STRING FileName OPTIONAL,
2265 IN BOOLEAN RestartScan
2266 );
2267
2268
2269NTSYSAPI
2271NTAPI
2273 IN HANDLE FileHandle,
2274 OUT PIO_STATUS_BLOCK IoStatusBlock,
2275 OUT PVOID FsInformation,
2276 IN ULONG Length,
2277 IN FS_INFORMATION_CLASS FsInformationClass
2278 );
2279
2280
2281NTSYSAPI
2283NTAPI
2285 IN HANDLE FileHandle,
2286 OUT PIO_STATUS_BLOCK IoStatusBlock,
2287 OUT PVOID FsInformation,
2288 IN ULONG Length,
2289 IN FS_INFORMATION_CLASS FsInformationClass
2290 );
2291
2292
2293NTSYSAPI
2295NTAPI
2297 IN HANDLE FileHandle,
2298 OUT PIO_STATUS_BLOCK IoStatusBlock,
2299 IN PVOID FileInformation,
2300 IN ULONG Length,
2301 IN FILE_INFORMATION_CLASS FileInformationClass
2302 );
2303
2304
2305NTSYSAPI
2307NTAPI
2309 IN HANDLE FileHandle,
2310 OUT PIO_STATUS_BLOCK IoStatusBlock,
2311 IN PVOID FileInformation,
2312 IN ULONG Length,
2313 IN FILE_INFORMATION_CLASS FileInformationClass
2314 );
2315
2316
2317NTSYSAPI
2319NTAPI
2321 IN HANDLE FileHandle,
2322 OUT PIO_STATUS_BLOCK IoStatusBlock,
2323 OUT PVOID Buffer,
2324 IN ULONG Length,
2325 IN BOOLEAN ReturnSingleEntry,
2326 IN PVOID EaList OPTIONAL,
2327 IN ULONG EaListLength,
2328 IN PULONG EaIndex OPTIONAL,
2329 IN BOOLEAN RestartScan);
2330
2331
2332NTSYSAPI
2334NTAPI
2336 IN HANDLE FileHandle,
2337 OUT PIO_STATUS_BLOCK IoStatusBlock,
2338 OUT PVOID Buffer,
2339 IN ULONG Length,
2340 IN BOOLEAN ReturnSingleEntry,
2341 IN PVOID EaList OPTIONAL,
2342 IN ULONG EaListLength,
2343 IN PULONG EaIndex OPTIONAL,
2344 IN BOOLEAN RestartScan);
2345
2346
2347NTSYSAPI
2349NTAPI
2351 IN HANDLE FileHandle,
2352 OUT PIO_STATUS_BLOCK IoStatusBlock,
2353 IN PVOID Buffer,
2354 IN ULONG Length);
2355
2356
2357NTSYSAPI
2359NTAPI
2361 IN HANDLE FileHandle,
2362 OUT PIO_STATUS_BLOCK IoStatusBlock,
2363 IN PVOID Buffer,
2364 IN ULONG Length);
2365
2366
2367NTSYSAPI
2369NTAPI
2371 IN HANDLE FileHandle,
2372 IN HANDLE Event OPTIONAL,
2373 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
2374 IN PVOID ApcContext OPTIONAL,
2375 OUT PIO_STATUS_BLOCK IoStatusBlock,
2376 OUT PVOID Buffer,
2377 IN ULONG Length,
2378 IN PLARGE_INTEGER ByteOffset OPTIONAL,
2379 IN PULONG Key OPTIONAL
2380 );
2381
2382
2383NTSYSAPI
2385NTAPI
2387 IN HANDLE FileHandle,
2388 IN HANDLE Event OPTIONAL,
2389 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
2390 IN PVOID ApcContext OPTIONAL,
2391 OUT PIO_STATUS_BLOCK IoStatusBlock,
2392 OUT PVOID Buffer,
2393 IN ULONG Length,
2394 IN PLARGE_INTEGER ByteOffset OPTIONAL,
2395 IN PULONG Key OPTIONAL
2396 );
2397
2398
2399NTSYSAPI
2401NTAPI
2403 IN HANDLE FileHandle,
2404 IN HANDLE Event OPTIONAL,
2405 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
2406 IN PVOID ApcContext OPTIONAL,
2407 OUT PIO_STATUS_BLOCK IoStatusBlock,
2408 IN PVOID Buffer,
2409 IN ULONG Length,
2410 IN PLARGE_INTEGER ByteOffset OPTIONAL,
2411 IN PULONG Key OPTIONAL
2412 );
2413
2414
2415NTSYSAPI
2417NTAPI
2419 IN HANDLE FileHandle,
2420 IN HANDLE Event OPTIONAL,
2421 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
2422 IN PVOID ApcContext OPTIONAL,
2423 OUT PIO_STATUS_BLOCK IoStatusBlock,
2424 IN PVOID Buffer,
2425 IN ULONG Length,
2426 IN PLARGE_INTEGER ByteOffset OPTIONAL,
2427 IN PULONG Key OPTIONAL
2428 );
2429
2430
2431NTSYSAPI
2433NTAPI
2435 IN POBJECT_ATTRIBUTES ObjectAttributes
2436 );
2437
2438
2439NTSYSAPI
2441NTAPI
2443 IN POBJECT_ATTRIBUTES ObjectAttributes
2444 );
2445
2446
2447NTSYSAPI
2449NTAPI
2451 IN HANDLE FileHandle,
2452 OUT PIO_STATUS_BLOCK IoStatusBlock
2453 );
2454
2455
2456NTSYSAPI
2458NTAPI
2460 IN HANDLE FileHandle,
2461 OUT PIO_STATUS_BLOCK IoStatusBlock
2462 );
2463
2464
2465NTSYSAPI
2467NTAPI
2469 IN HANDLE FileHandle,
2470 IN HANDLE Event,
2471 IN PIO_APC_ROUTINE ApcRoutine,
2472 IN PVOID ApcContext,
2473 OUT PIO_STATUS_BLOCK IoStatusBlock,
2474 IN ULONG IoControlCode,
2475 IN PVOID InputBuffer,
2476 IN ULONG InputBufferLength,
2477 IN PVOID OutputBuffer,
2478 IN ULONG OutputBufferLength
2479 );
2480
2481
2482NTSYSAPI
2484NTAPI
2486 IN HANDLE FileHandle,
2487 IN HANDLE Event,
2488 IN PIO_APC_ROUTINE ApcRoutine,
2489 IN PVOID ApcContext,
2490 OUT PIO_STATUS_BLOCK IoStatusBlock,
2491 IN ULONG IoControlCode,
2492 IN PVOID InputBuffer,
2493 IN ULONG InputBufferLength,
2494 IN PVOID OutputBuffer,
2495 IN ULONG OutputBufferLength
2496 );
2497
2498
2499NTSYSAPI
2501NTAPI
2503 IN HANDLE Filehandle,
2504 OUT PIO_STATUS_BLOCK IoStatusBlock
2505 );
2506
2507
2508NTSYSAPI
2510NTAPI
2512 IN HANDLE Filehandle,
2513 OUT PIO_STATUS_BLOCK IoStatusBlock
2514 );
2515
2516
2517NTSYSAPI
2518BOOLEAN
2519NTAPI
2521 IN PWSTR DosPathName,
2522 OUT PUNICODE_STRING NtPathName,
2523 OUT PWSTR * NtFileNamePart OPTIONAL,
2524 OUT PCURDIR DirectoryInfo OPTIONAL
2525 );
2526
2527
2528//-----------------------------------------------------------------------------
2529// Process functions
2530
2531#define GDI_HANDLE_BUFFER_SIZE 34
2532
2533//
2534// Process Information Classes
2535//
2536
2537typedef enum _PROCESSINFOCLASS {
2551 ProcessIoPortHandlers, // Note: this is kernel mode only
2571 MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum
2573
2574//
2575// Thread Information Classes
2576//
2577
2578typedef enum _THREADINFOCLASS {
2585 ThreadDescriptorTableEntry, // ULONG Selector + LDT_ENTRY
2597
2598
2600{
2601 USHORT Flags;
2602 USHORT Length;
2605
2607
2608
2610{
2611 ULONG MaximumLength; // Should be set before call RtlCreateProcessParameters
2612 ULONG Length; // Length of valid structure
2613 ULONG Flags; // Currently only PPF_NORMALIZED (1) is known:
2614 // - Means that structure is normalized by call RtlNormalizeProcessParameters
2616
2617 PVOID ConsoleHandle; // HWND to console window associated with process (if any).
2622
2623 CURDIR CurrentDirectory; // Specified in DOS-like symbolic link path, ex: "C:/WinNT/SYSTEM32"
2624 UNICODE_STRING DllPath; // DOS-like paths separated by ';' where system should search for DLL files.
2625 UNICODE_STRING ImagePathName; // Full path in DOS-like format to process'es file image.
2627 PVOID Environment; // Pointer to environment block (see RtlCreateEnvironment)
2630 ULONG CountX;
2631 ULONG CountY;
2634 ULONG FillAttribute; // Fill attribute for console window
2638 UNICODE_STRING DesktopInfo; // Name of WindowStation and Desktop objects, where process is assigned
2642
2644
2645//
2646// Process Environment Block
2647//
2648
2649typedef struct _PEB_FREE_BLOCK
2650{
2652 ULONG Size;
2653
2655
2656
2657typedef struct _PEB_LDR_DATA
2658{
2659 ULONG Length;
2661 HANDLE SsHandle;
2662 LIST_ENTRY InLoadOrderModuleList; // Points to the loaded modules (main EXE usually)
2663 LIST_ENTRY InMemoryOrderModuleList; // Points to all modules (EXE and all DLLs)
2666
2668
2669
2671{
2675 PVOID DllBase; // Base address of the module
2680 ULONG Flags;
2682 USHORT TlsIndex;
2683 LIST_ENTRY HashLinks;
2693
2695
2696
2697typedef struct _PEB
2698{
2699 BOOLEAN InheritedAddressSpace; // These four fields cannot change unless the
2701 BOOLEAN BeingDebugged; //
2702 BOOLEAN BitField; // reserved for bitfields with system-specific flags
2703
2704 HANDLE Mutant; // INITIAL_PEB structure is also updated.
2705
2711 PRTL_CRITICAL_SECTION FastPebLock;
2712
2713 PSLIST_HEADER AtlThunkSListPtr;
2714 PVOID IFEOKey;
2716 union {
2719 };
2720
2724
2727 DWORD TlsBitmapBits[2]; // relates to TLS_MINIMUM_AVAILABLE
2728
2735
2736 //
2737 // Useful information for LdrpInitialize
2738
2741
2742 //
2743 // Passed up from MmCreatePeb from Session Manager registry key
2744 //
2745
2751
2752 //
2753 // Where heap manager keeps track of all heaps created for a process
2754 // Fields initialized by MmCreatePeb. ProcessHeaps is initialized
2755 // to point to the first free byte after the PEB and MaximumNumberOfHeaps
2756 // is computed from the page size used to hold the PEB, less the fixed
2757 // size of this data structure.
2758 //
2759
2763
2764 //
2765 //
2769 PRTL_CRITICAL_SECTION LoaderLock;
2770
2771 //
2772 // Following fields filled in by MmCreatePeb from system values and/or
2773 // image header. These fields have changed since Windows NT 4.0,
2774 // so use with caution
2775 //
2776
2784
2788
2789 // [...] - more fields are there: this is just a fragment of the PEB structure
2791
2792
2793//
2794// Thread environment block
2795//
2796
2797typedef struct _TEB
2798{
2799 NT_TIB NtTib;
2809 // Incomplete
2810
2812
2813
2815{
2818 ULONG_PTR AffinityMask;
2822
2824
2825
2826
2827#define NtCurrentProcess() ((HANDLE) -1)
2828#define NtCurrentThread() ((HANDLE) -2)
2829
2830NTSYSAPI
2832NTAPI
2834 OUT PHANDLE ProcessHandle,
2835 IN ACCESS_MASK DesiredAccess,
2836 IN POBJECT_ATTRIBUTES ObjectAttributes,
2837 IN PCLIENT_ID ClientId OPTIONAL
2838 );
2839
2840NTSYSCALLAPI
2841 NTSTATUS
2842 NTAPI
2844 IN HANDLE ProcessHandle
2845 );
2846
2847NTSYSCALLAPI
2848 NTSTATUS
2849 NTAPI
2851 IN HANDLE ProcessHandle
2852 );
2853
2854NTSYSAPI
2856NTAPI
2858 OUT PHANDLE ThreadHandle,
2859 IN ACCESS_MASK DesiredAccess,
2860 IN POBJECT_ATTRIBUTES ObjectAttributes,
2861 IN PCLIENT_ID ClientId OPTIONAL
2862 );
2863
2864NTSYSAPI
2865 NTSTATUS
2866 NTAPI
2868 IN HANDLE ThreadHandle,
2869 IN THREADINFOCLASS ThreadInformationClass,
2870 OUT PVOID ThreadInformation,
2871 IN ULONG ThreadInformationLength,
2872 OUT PULONG ReturnLength OPTIONAL
2873 );
2874
2875NTSYSAPI
2877NTAPI
2879 IN HANDLE ProcessHandle,
2880 IN PROCESSINFOCLASS ProcessInformationClass,
2881 OUT PVOID ProcessInformation,
2882 IN ULONG ProcessInformationLength,
2883 OUT PULONG ReturnLength OPTIONAL
2884 );
2885
2886
2887NTSYSAPI
2889NTAPI
2891 IN HANDLE ProcessHandle,
2892 IN PROCESSINFOCLASS ProcessInformationClass,
2893 IN PVOID ProcessInformation,
2894 IN ULONG ProcessInformationLength
2895 );
2896
2897//------------------------------------------------------------------------------
2898// LPC Functions
2899
2900#define MAX_LPC_DATA 0x130 // Maximum number of bytes that can be copied through LPC
2901
2902// LPC connection types
2903typedef enum _LPC_TYPE
2904{
2905 LPC_NEW_MESSAGE, // (0) A new message
2906 LPC_REQUEST, // (1) A request message
2907 LPC_REPLY, // (2) A reply to a request message
2910 LPC_PORT_CLOSED, // (5) Send when port is deleted
2911 LPC_CLIENT_DIED, // (6) Messages to thread termination ports
2912 LPC_EXCEPTION, // (7) Messages to thread exception ports
2913 LPC_DEBUG_EVENT, // (8) Messages to thread debug port
2914 LPC_ERROR_EVENT, // (9) Used by NtRaiseHardError
2915 LPC_CONNECTION_REQUEST // (A) Used by NtConnectPort
2916
2918
2919//
2920// Define header for Port Message
2921//
2922
2923typedef struct _PORT_MESSAGE
2924{
2925 USHORT DataLength; // Length of data following the header (bytes)
2926 USHORT TotalLength; // Length of data + sizeof(PORT_MESSAGE)
2927 USHORT Type; // Type of the message (See LPC_TYPE enum)
2928 USHORT VirtualRangesOffset; // Offset of array of virtual address ranges
2929 CLIENT_ID ClientId; // Client identifier of the message sender
2930 ULONG MessageId; // Identifier of the particular message instance
2931 union
2932 {
2933 ULONG CallbackId; //
2934 ULONG ClientViewSize; // Size, in bytes, of section created by the sender
2935 };
2936
2938
2939//
2940// Define structure for initializing shared memory on the caller's side of the port
2941//
2942
2943typedef struct _PORT_VIEW {
2944
2945 ULONG Length; // Size of this structure
2946 HANDLE SectionHandle; // Handle to section object with
2947 // SECTION_MAP_WRITE and SECTION_MAP_READ
2948 ULONG SectionOffset; // The offset in the section to map a view for
2949 // the port data area. The offset must be aligned
2950 // with the allocation granularity of the system.
2951 ULONG ViewSize; // The size of the view (in bytes)
2952 PVOID ViewBase; // The base address of the view in the creator
2953 //
2954 PVOID ViewRemoteBase; // The base address of the view in the process
2955 // connected to the port.
2957
2958//
2959// Define structure for shared memory coming from remote side of the port
2960//
2961
2962typedef struct _REMOTE_PORT_VIEW {
2963
2964 ULONG Length; // Size of this structure
2965 ULONG ViewSize; // The size of the view (bytes)
2966 PVOID ViewBase; // Base address of the view
2967
2969
2970/*++
2971
2972 NtCreatePort
2973 ============
2974
2975 Creates a LPC port object. The creator of the LPC port becomes a server
2976 of LPC communication
2977
2978 PortHandle - Points to a variable that will receive the
2979 port object handle if the call is successful.
2980
2981 ObjectAttributes - Points to a structure that specifies the object s
2982 attributes. OBJ_KERNEL_HANDLE, OBJ_OPENLINK, OBJ_OPENIF, OBJ_EXCLUSIVE,
2983 OBJ_PERMANENT, and OBJ_INHERIT are not valid attributes for a port object.
2984
2985 MaxConnectionInfoLength - The maximum size, in bytes, of data that can
2986 be sent through the port.
2987
2988 MaxMessageLength - The maximum size, in bytes, of a message
2989 that can be sent through the port.
2990
2991 MaxPoolUsage - Specifies the maximum amount of NonPaged pool that can be used for
2992 message storage. Zero means default value.
2993
2994 ZwCreatePort verifies that (MaxDataSize <= 0x104) and (MaxMessageSize <= 0x148).
2995
2996--*/
2997
2998NTSYSAPI
3000NTAPI
3002 OUT PHANDLE PortHandle,
3003 IN POBJECT_ATTRIBUTES ObjectAttributes,
3004 IN ULONG MaxConnectionInfoLength,
3005 IN ULONG MaxMessageLength,
3006 IN ULONG MaxPoolUsage
3007 );
3008
3009
3010/*++
3011
3012 NtConnectPort
3013 =============
3014
3015 Creates a port connected to a named port (cliend side).
3016
3017 PortHandle - A pointer to a variable that will receive the client
3018 communication port object handle value.
3019
3020 PortName - Points to a structure that specifies the name
3021 of the port to connect to.
3022
3023 SecurityQos - Points to a structure that specifies the level
3024 of impersonation available to the port listener.
3025
3026 ClientView - Optionally points to a structure describing
3027 the shared memory region used to send large amounts of data
3028 to the listener; if the call is successful, this will be updated.
3029
3030 ServerView - Optionally points to a caller-allocated buffer
3031 or variable that receives information on the shared memory region
3032 used by the listener to send large amounts of data to the
3033 caller.
3034
3035 MaxMessageLength - Optionally points to a variable that receives the size,
3036 in bytes, of the largest message that can be sent through the port.
3037
3038 ConnectionInformation - Optionally points to a caller-allocated
3039 buffer or variable that specifies connect data to send to the listener,
3040 and receives connect data sent by the listener.
3041
3042 ConnectionInformationLength - Optionally points to a variable that
3043 specifies the size, in bytes, of the connect data to send
3044 to the listener, and receives the size of the connect data
3045 sent by the listener.
3046
3047--*/
3048
3049NTSYSAPI
3051NTAPI
3053 OUT PHANDLE PortHandle,
3054 IN PUNICODE_STRING PortName,
3055 IN PSECURITY_QUALITY_OF_SERVICE SecurityQos,
3056 IN OUT PPORT_VIEW ClientView OPTIONAL,
3057 OUT PREMOTE_PORT_VIEW ServerView OPTIONAL,
3058 OUT PULONG MaxMessageLength OPTIONAL,
3059 IN OUT PVOID ConnectionInformation OPTIONAL,
3060 IN OUT PULONG ConnectionInformationLength OPTIONAL
3061 );
3062
3063
3064NTSYSAPI
3066NTAPI
3068 OUT PHANDLE PortHandle,
3069 IN PUNICODE_STRING PortName,
3070 IN PSECURITY_QUALITY_OF_SERVICE SecurityQos,
3071 IN OUT PPORT_VIEW ClientView OPTIONAL,
3072 OUT PREMOTE_PORT_VIEW ServerView OPTIONAL,
3073 OUT PULONG MaxMessageLength OPTIONAL,
3074 IN OUT PVOID ConnectionInformation OPTIONAL,
3075 IN OUT PULONG ConnectionInformationLength OPTIONAL
3076 );
3077
3078
3079/*++
3080
3081 NtListenPort
3082 ============
3083
3084 Listens on a port for a connection request message on the server side.
3085
3086 PortHandle - A handle to a port object. The handle doesn't need
3087 to grant any specific access.
3088
3089 ConnectionRequest - Points to a caller-allocated buffer
3090 or variable that receives the connect message sent to
3091 the port.
3092
3093--*/
3094
3095
3096NTSYSAPI
3098NTAPI
3100 IN HANDLE PortHandle,
3101 OUT PPORT_MESSAGE RequestMessage
3102 );
3103
3104/*++
3105
3106 NtAcceptConnectPort
3107 ===================
3108
3109 Accepts or rejects a connection request on the server side.
3110
3111 PortHandle - Points to a variable that will receive the port object
3112 handle if the call is successful.
3113
3114 PortContext - A numeric identifier to be associated with the port.
3115
3116 ConnectionRequest - Points to a caller-allocated buffer or variable
3117 that identifies the connection request and contains any connect
3118 data that should be returned to requestor of the connection
3119
3120 AcceptConnection - Specifies whether the connection should
3121 be accepted or not
3122
3123 ServerView - Optionally points to a structure describing
3124 the shared memory region used to send large amounts of data to the
3125 requestor; if the call is successful, this will be updated
3126
3127 ClientView - Optionally points to a caller-allocated buffer
3128 or variable that receives information on the shared memory
3129 region used by the requestor to send large amounts of data to the
3130 caller
3131
3132--*/
3133
3134
3135NTSYSAPI
3137NTAPI
3139 OUT PHANDLE PortHandle,
3140 IN PVOID PortContext OPTIONAL,
3141 IN PPORT_MESSAGE ConnectionRequest,
3142 IN BOOLEAN AcceptConnection,
3143 IN OUT PPORT_VIEW ServerView OPTIONAL,
3144 OUT PREMOTE_PORT_VIEW ClientView OPTIONAL
3145 );
3146
3147/*++
3148
3149 NtCompleteConnectPort
3150 =====================
3151
3152 Completes the port connection process on the server side.
3153
3154 PortHandle - A handle to a port object. The handle doesn't need
3155 to grant any specific access.
3156
3157--*/
3158
3159
3160NTSYSAPI
3162NTAPI
3164 IN HANDLE PortHandle
3165 );
3166
3167
3168NTSYSAPI
3170NTAPI
3172 IN HANDLE PortHandle
3173 );
3174
3175
3176/*++
3177
3178 NtRequestPort
3179 =============
3180
3181 Sends a request message to a port (client side)
3182
3183 PortHandle - A handle to a port object. The handle doesn't need
3184 to grant any specific access.
3185
3186 RequestMessage - Points to a caller-allocated buffer or variable
3187 that specifies the request message to send to the port.
3188
3189--*/
3190
3191NTSYSAPI
3193NTAPI
3195 IN HANDLE PortHandle,
3196 IN PPORT_MESSAGE RequestMessage
3197 );
3198
3199/*++
3200
3201 NtRequestWaitReplyPort
3202 ======================
3203
3204 Sends a request message to a port and waits for a reply (client side)
3205
3206 PortHandle - A handle to a port object. The handle doesn't need
3207 to grant any specific access.
3208
3209 RequestMessage - Points to a caller-allocated buffer or variable
3210 that specifies the request message to send to the port.
3211
3212 ReplyMessage - Points to a caller-allocated buffer or variable
3213 that receives the reply message sent to the port.
3214
3215--*/
3216
3217NTSYSAPI
3219NTAPI
3221 IN HANDLE PortHandle,
3222 IN PPORT_MESSAGE RequestMessage,
3223 OUT PPORT_MESSAGE ReplyMessage
3224 );
3225
3226
3227NTSYSAPI
3229NTAPI
3231 IN HANDLE PortHandle,
3232 IN PPORT_MESSAGE RequestMessage,
3233 OUT PPORT_MESSAGE ReplyMessage
3234 );
3235
3236
3237/*++
3238
3239 NtReplyPort
3240 ===========
3241
3242 Sends a reply message to a port (Server side)
3243
3244 PortHandle - A handle to a port object. The handle doesn't need
3245 to grant any specific access.
3246
3247 ReplyMessage - Points to a caller-allocated buffer or variable
3248 that specifies the reply message to send to the port.
3249
3250--*/
3251
3252
3253NTSYSAPI
3255NTAPI
3257 IN HANDLE PortHandle,
3258 IN PPORT_MESSAGE ReplyMessage
3259 );
3260
3261/*++
3262
3263 NtReplyWaitReplyPort
3264 ====================
3265
3266 Sends a reply message to a port and waits for a reply message
3267
3268 PortHandle - A handle to a port object. The handle doesn't need
3269 to grant any specific access.
3270
3271 ReplyMessage - Points to a caller-allocated buffer or variable
3272 that specifies the reply message to send to the port.
3273
3274--*/
3275
3276NTSYSAPI
3278NTAPI
3280 IN HANDLE PortHandle,
3281 IN OUT PPORT_MESSAGE ReplyMessage
3282 );
3283
3284
3285/*++
3286
3287 NtReplyWaitReceivePort
3288 ======================
3289
3290 Optionally sends a reply message to a port and waits for a
3291 message
3292
3293 PortHandle - A handle to a port object. The handle doesn't need
3294 to grant any specific access.
3295
3296 PortContext - Optionally points to a variable that receives
3297 a numeric identifier associated with the port.
3298
3299 ReplyMessage - Optionally points to a caller-allocated buffer
3300 or variable that specifies the reply message to send to the port.
3301
3302 ReceiveMessage - Points to a caller-allocated buffer or variable
3303 that receives the message sent to the port.
3304
3305--*/
3306
3307NTSYSAPI
3309NTAPI
3311 IN HANDLE PortHandle,
3312 OUT PVOID *PortContext OPTIONAL,
3313 IN PPORT_MESSAGE ReplyMessage OPTIONAL,
3314 OUT PPORT_MESSAGE ReceiveMessage
3315 );
3316
3317//-----------------------------------------------------------------------------
3318// Heap functions
3319
3320#define HEAP_NO_SERIALIZE 0x00000001
3321#define HEAP_GROWABLE 0x00000002
3322#define HEAP_GENERATE_EXCEPTIONS 0x00000004
3323#define HEAP_ZERO_MEMORY 0x00000008
3324#define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010
3325#define HEAP_TAIL_CHECKING_ENABLED 0x00000020
3326#define HEAP_FREE_CHECKING_ENABLED 0x00000040
3327#define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080
3328#define HEAP_CREATE_ALIGN_16 0x00010000
3329#define HEAP_CREATE_ENABLE_TRACING 0x00020000
3330#define HEAP_MAXIMUM_TAG 0x0FFF
3331#define HEAP_PSEUDO_TAG_FLAG 0x8000
3332
3333//
3334// Data structure for heap definition. This includes various
3335// sizing parameters and callback routines, which, if left NULL,
3336// result in default behavior
3337//
3338
3339typedef struct RTL_HEAP_PARAMETERS {
3340 ULONG Length; //sizeof(RTL_HEAP_PARAMETERS)
3352
3353
3354#define RtlProcessHeap() (HANDLE)(NtCurrentTeb()->ProcessEnvironmentBlock->ProcessHeap)
3355
3356
3357NTSYSAPI
3358HANDLE
3359NTAPI
3361 IN ULONG Flags,
3362 IN PVOID BaseAddress OPTIONAL,
3363 IN ULONG SizeToReserve,
3364 IN ULONG SizeToCommit,
3365 IN BOOLEAN Lock OPTIONAL,
3366 IN PRTL_HEAP_PARAMETERS Definition OPTIONAL
3367 );
3368
3369
3370NTSYSAPI
3371ULONG
3372NTAPI
3374 IN HANDLE HeapHandle
3375 );
3376
3377
3378NTSYSAPI
3379PVOID
3380NTAPI
3382 IN HANDLE HeapHandle,
3383 IN ULONG Flags,
3384 IN ULONG Size
3385 );
3386
3387
3388NTSYSAPI
3389BOOLEAN
3390NTAPI
3392 IN HANDLE HeapHandle,
3393 IN ULONG Flags,
3394 IN PVOID Address
3395 );
3396
3397
3398NTSYSAPI
3399ULONG
3400NTAPI
3402 IN HANDLE HeapHandle,
3403 IN ULONG Flags
3404 );
3405
3406
3407NTSYSAPI
3408BOOLEAN
3409NTAPI
3411 IN HANDLE HeapHandle
3412 );
3413
3414
3415NTSYSAPI
3416BOOLEAN
3417NTAPI
3419 IN HANDLE HeapHandle
3420 );
3421
3422
3423NTSYSAPI
3424PVOID
3425NTAPI
3427 IN HANDLE HeapHandle,
3428 IN ULONG Flags,
3429 IN PVOID Address,
3430 IN ULONG Size
3431 );
3432
3433
3434NTSYSAPI
3435ULONG
3436NTAPI
3438 IN HANDLE HeapHandle,
3439 IN ULONG Flags,
3440 IN PVOID Address
3441 );
3442
3443
3444NTSYSAPI
3445BOOLEAN
3446NTAPI
3448 IN HANDLE HeapHandle,
3449 IN ULONG Flags,
3450 IN PVOID Address OPTIONAL
3451 );
3452
3453
3454//-----------------------------------------------------------------------------
3455// Virtual memory functions
3456
3457NTSYSAPI
3459NTAPI
3461 IN HANDLE ProcessHandle,
3462 IN OUT PVOID *BaseAddress,
3463 IN ULONG ZeroBits,
3464 IN OUT PULONG RegionSize,
3465 IN ULONG AllocationType,
3466 IN ULONG Protect
3467 );
3468
3469
3470NTSYSAPI
3472NTAPI
3474 IN HANDLE ProcessHandle,
3475 IN OUT PVOID *BaseAddress,
3476 IN ULONG ZeroBits,
3477 IN OUT PULONG RegionSize,
3478 IN ULONG AllocationType,
3479 IN ULONG Protect
3480 );
3481
3482
3483NTSYSAPI
3485NTAPI
3487 IN HANDLE ProcessHandle,
3488 IN OUT PVOID *BaseAddress,
3489 IN OUT PULONG RegionSize,
3490 IN ULONG FreeType
3491 );
3492
3493
3494NTSYSAPI
3496NTAPI
3498 IN HANDLE ProcessHandle,
3499 IN OUT PVOID *BaseAddress,
3500 IN OUT PULONG RegionSize,
3501 IN ULONG FreeType
3502 );
3503
3504
3505NTSYSAPI
3507NTAPI
3509 IN HANDLE ProcessHandle,
3510 IN PVOID BaseAddress,
3511 OUT PVOID Buffer,
3512 IN ULONG NumberOfBytesToRead,
3513 OUT PULONG NumberOfBytesRead OPTIONAL
3514 );
3515
3516
3517NTSYSAPI
3519NTAPI
3521 IN HANDLE ProcessHandle,
3522 IN PVOID BaseAddress,
3523 IN PVOID Buffer,
3524 IN ULONG NumberOfBytesToWrite,
3525 OUT PULONG NumberOfBytesWritten OPTIONAL
3526 );
3527
3528
3529//-----------------------------------------------------------------------------
3530// Section functions
3531
3533{
3535 ViewUnmap = 2
3536
3538
3539
3541{
3544
3546
3547
3548/*++
3549
3550 NtCreateSection
3551 ===============
3552
3553 Creates a section object.
3554
3555 SectionHandle - Points to a variable that will receive the section
3556 object handle if the call is successful.
3557
3558 DesiredAccess - Specifies the type of access that the caller requires
3559 to the section object. This parameter can be zero, or any combination
3560 of the following flags:
3561
3562 SECTION_QUERY - Query access
3563 SECTION_MAP_WRITE - Can be written when mapped
3564 SECTION_MAP_READ - Can be read when mapped
3565 SECTION_MAP_EXECUTE - Can be executed when mapped
3566 SECTION_EXTEND_SIZE - Extend access
3567 SECTION_ALL_ACCESS - All of the preceding +
3568 STANDARD_RIGHTS_REQUIRED
3569
3570 ObjectAttributes - Points to a structure that specifies the object s attributes.
3571 OBJ_OPENLINK is not a valid attribute for a section object.
3572
3573 MaximumSize - Optionally points to a variable that specifies the size,
3574 in bytes, of the section. If FileHandle is zero, the size must be
3575 specified; otherwise, it can be defaulted from the size of the file
3576 referred to by FileHandle.
3577
3578 SectionPageProtection - The protection desired for the pages
3579 of the section when the section is mapped. This parameter can take
3580 one of the following values:
3581
3582 PAGE_READONLY
3583 PAGE_READWRITE
3584 PAGE_WRITECOPY
3585 PAGE_EXECUTE
3586 PAGE_EXECUTE_READ
3587 PAGE_EXECUTE_READWRITE
3588 PAGE_EXECUTE_WRITECOPY
3589
3590 AllocationAttributes - The attributes for the section. This parameter must
3591 be a combination of the following values:
3592
3593 SEC_BASED 0x00200000 // Map section at same address in each process
3594 SEC_NO_CHANGE 0x00400000 // Disable changes to protection of pages
3595 SEC_IMAGE 0x01000000 // Map section as an image
3596 SEC_VLM 0x02000000 // Map section in VLM region
3597 SEC_RESERVE 0x04000000 // Reserve without allocating pagefile storage
3598 SEC_COMMIT 0x08000000 // Commit pages; the default behavior
3599 SEC_NOCACHE 0x10000000 // Mark pages as non-cacheable
3600
3601 FileHandle - Identifies the file from which to create the section object.
3602 The file must be opened with an access mode compatible with the protection
3603 flags specified by the Protect parameter. If FileHandle is zero,
3604 the function creates a section object of the specified size backed
3605 by the paging file rather than by a named file in the file system.
3606
3607--*/
3608
3609
3610NTSYSAPI
3612NTAPI
3614 OUT PHANDLE SectionHandle,
3615 IN ACCESS_MASK DesiredAccess,
3616 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
3617 IN PLARGE_INTEGER MaximumSize OPTIONAL,
3618 IN ULONG SectionPageProtection,
3619 IN ULONG AllocationAttributes,
3620 IN HANDLE FileHandle OPTIONAL
3621 );
3622
3623
3624NTSYSAPI
3626NTAPI
3628 OUT PHANDLE SectionHandle,
3629 IN ACCESS_MASK DesiredAccess,
3630 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
3631 IN PLARGE_INTEGER MaximumSize OPTIONAL,
3632 IN ULONG SectionPageProtection,
3633 IN ULONG AllocationAttributes,
3634 IN HANDLE FileHandle OPTIONAL
3635 );
3636
3637
3638NTSYSAPI
3640NTAPI
3642 OUT PHANDLE SectionHandle,
3643 IN ACCESS_MASK DesiredAccess,
3644 IN POBJECT_ATTRIBUTES ObjectAttributes
3645 );
3646
3647
3648NTSYSAPI
3650NTAPI
3652 OUT PHANDLE SectionHandle,
3653 IN ACCESS_MASK DesiredAccess,
3654 IN POBJECT_ATTRIBUTES ObjectAttributes
3655 );
3656
3657NTSYSAPI
3659NTAPI
3661 IN HANDLE SectionHandle,
3662 IN HANDLE ProcessHandle,
3663 IN OUT PVOID *BaseAddress,
3664 IN ULONG_PTR ZeroBits,
3665 IN SIZE_T CommitSize,
3666 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
3667 IN OUT PSIZE_T ViewSize,
3668 IN SECTION_INHERIT InheritDisposition,
3669 IN ULONG AllocationType,
3670 IN ULONG Protect
3671);
3672
3673
3674NTSYSAPI
3676NTAPI
3678 IN HANDLE SectionHandle,
3679 IN HANDLE ProcessHandle,
3680 IN OUT PVOID *BaseAddress,
3681 IN ULONG_PTR ZeroBits,
3682 IN SIZE_T CommitSize,
3683 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
3684 IN OUT PSIZE_T ViewSize,
3685 IN SECTION_INHERIT InheritDisposition,
3686 IN ULONG AllocationType,
3687 IN ULONG Protect
3688);
3689
3690NTSYSAPI
3692NTAPI
3694 IN HANDLE ProcessHandle,
3695 IN PVOID BaseAddress
3696 );
3697
3698
3699NTSYSAPI
3701NTAPI
3703 IN HANDLE ProcessHandle,
3704 IN PVOID BaseAddress
3705 );
3706
3707
3708NTSYSAPI
3710NTAPI
3712 IN HANDLE SectionHandle,
3713 IN OUT PLARGE_INTEGER SectionSize
3714 );
3715
3716
3717NTSYSAPI
3719NTAPI
3721 IN HANDLE SectionHandle,
3722 IN OUT PLARGE_INTEGER SectionSize
3723 );
3724
3725
3726NTSYSAPI
3728NTAPI
3730 IN HANDLE SectionHandle,
3731 IN SECTION_INFORMATION_CLASS SectionInformationClass,
3732 OUT PVOID SectionInformation,
3733 IN ULONG Length,
3734 OUT PULONG ResultLength OPTIONAL
3735 );
3736
3737
3738NTSYSAPI
3740NTAPI
3742 IN HANDLE SectionHandle,
3743 IN SECTION_INFORMATION_CLASS SectionInformationClass,
3744 OUT PVOID SectionInformation,
3745 IN ULONG Length,
3746 OUT PULONG ResultLength OPTIONAL
3747 );
3748
3749
3750//-----------------------------------------------------------------------------
3751// Synchronization
3752
3753//
3754// Wait type
3755//
3756
3757typedef enum _WAIT_TYPE {
3759 WaitAny
3761
3762
3763NTSYSAPI
3765NTAPI
3767 IN HANDLE Handle,
3768 IN BOOLEAN Alertable,
3769 IN PLARGE_INTEGER Timeout OPTIONAL
3770 );
3771
3772
3773NTSYSAPI
3775NTAPI
3777 IN HANDLE Handle,
3778 IN BOOLEAN Alertable,
3779 IN PLARGE_INTEGER Timeout OPTIONAL
3780 );
3781
3782
3783NTSYSAPI
3785NTAPI
3787 IN ULONG Count,
3788 IN HANDLE Handle[],
3789 IN WAIT_TYPE WaitType,
3790 IN BOOLEAN Alertable,
3791 IN PLARGE_INTEGER Timeout OPTIONAL
3792 );
3793
3794
3795NTSYSAPI
3797NTAPI
3799 IN ULONG Count,
3800 IN HANDLE Handle[],
3801 IN WAIT_TYPE WaitType,
3802 IN BOOLEAN Alertable,
3803 IN PLARGE_INTEGER Timeout OPTIONAL
3804 );
3805
3806
3807//-----------------------------------------------------------------------------
3808// Event support
3809
3813
3818
3819//
3820// Event handling routines
3821//
3822
3823
3824NTSYSAPI
3826NTAPI
3828 OUT PHANDLE EventHandle,
3829 IN ACCESS_MASK DesiredAccess,
3830 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
3831 IN EVENT_TYPE EventType,
3832 IN BOOLEAN InitialState
3833 );
3834
3835
3836NTSYSAPI
3838NTAPI
3840 OUT PHANDLE EventHandle,
3841 IN ACCESS_MASK DesiredAccess,
3842 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
3843 IN EVENT_TYPE EventType,
3844 IN BOOLEAN InitialState
3845 );
3846
3847
3848NTSYSAPI
3850NTAPI
3852 IN HANDLE Handle
3853 );
3854
3855
3856NTSYSAPI
3858NTAPI
3860 IN HANDLE Handle
3861 );
3862
3863
3864NTSYSAPI
3866NTAPI
3868 IN HANDLE Handle,
3869 OUT PLONG PreviousState OPTIONAL
3870 );
3871
3872
3873NTSYSAPI
3875NTAPI
3877 IN HANDLE Handle,
3878 OUT PLONG PreviousState OPTIONAL
3879 );
3880
3881
3882NTSYSAPI
3884NTAPI
3886 IN HANDLE Handle,
3887 OUT PLONG PreviousState OPTIONAL
3888 );
3889
3890
3891NTSYSAPI
3893NTAPI
3895 IN HANDLE Handle,
3896 OUT PLONG PreviousState OPTIONAL
3897 );
3898
3899
3900NTSYSAPI
3902NTAPI
3904 IN HANDLE Handle,
3905 OUT PLONG PreviousState OPTIONAL
3906 );
3907
3908
3909NTSYSAPI
3911NTAPI
3913 IN HANDLE Handle,
3914 OUT PLONG PreviousState OPTIONAL
3915 );
3916
3917
3918NTSYSAPI
3920NTAPI
3922 OUT PHANDLE EventHandle,
3923 IN ACCESS_MASK DesiredAccess,
3924 IN POBJECT_ATTRIBUTES ObjectAttributes
3925 );
3926
3927
3928NTSYSAPI
3930NTAPI
3932 OUT PHANDLE EventHandle,
3933 IN ACCESS_MASK DesiredAccess,
3934 IN POBJECT_ATTRIBUTES ObjectAttributes
3935 );
3936
3937
3938NTSYSAPI
3940NTAPI
3942 IN HANDLE EventHandle,
3943 IN EVENT_INFORMATION_CLASS EventInfoClass,
3944 OUT PVOID EventInfo,
3945 IN ULONG Length,
3946 OUT PULONG ResultLength OPTIONAL
3947 );
3948
3949
3950NTSYSAPI
3952NTAPI
3954 IN HANDLE EventHandle,
3955 IN EVENT_INFORMATION_CLASS EventInfoClass,
3956 OUT PVOID EventInfo,
3957 IN ULONG Length,
3958 OUT PULONG ResultLength OPTIONAL
3959 );
3960
3961
3962//-----------------------------------------------------------------------------
3963// Security descriptor functions
3964
3965NTSYSAPI
3967NTAPI
3969 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
3970 IN ULONG Revision
3971 );
3972
3973
3974NTSYSAPI
3976NTAPI
3978 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
3979 IN BOOLEAN DaclPresent,
3980 IN PACL Dacl OPTIONAL,
3981 IN BOOLEAN DaclDefaulted OPTIONAL
3982 );
3983
3984
3985NTSYSAPI
3987NTAPI
3989 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
3990 IN PSID Owner OPTIONAL,
3991 IN BOOLEAN OwnerDefaulted OPTIONAL
3992 );
3993
3994
3995NTSYSAPI
3997NTAPI
3999 IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
4000 IN UCHAR SubAuthorityCount,
4001 IN ULONG SubAuthority0,
4002 IN ULONG SubAuthority1,
4003 IN ULONG SubAuthority2,
4004 IN ULONG SubAuthority3,
4005 IN ULONG SubAuthority4,
4006 IN ULONG SubAuthority5,
4007 IN ULONG SubAuthority6,
4008 IN ULONG SubAuthority7,
4009 OUT PSID *Sid
4010 );
4011
4012
4013NTSYSAPI
4014ULONG
4015NTAPI
4017 IN PSID Sid
4018 );
4019
4020
4021NTSYSAPI
4022BOOLEAN
4023NTAPI
4025 IN PSID Sid1,
4026 IN PSID Sid2
4027 );
4028
4029
4030NTSYSAPI
4031PVOID
4032NTAPI
4034 IN PSID Sid
4035 );
4036
4037
4038NTSYSAPI
4040NTAPI
4042 IN PACL Acl,
4043 IN ULONG AclLength,
4044 IN ULONG AclRevision
4045 );
4046
4047
4048NTSYSAPI
4050NTAPI
4052 IN OUT PACL Acl,
4053 IN ULONG AceRevision,
4054 IN ACCESS_MASK AccessMask,
4055 IN PSID Sid
4056 );
4057
4058
4059NTSYSAPI
4061NTAPI
4063 IN OUT PACL Acl,
4064 IN ULONG AceRevision,
4065 IN ULONG AceFlags,
4066 IN ULONG AccessMask,
4067 IN PSID Sid
4068 );
4069
4070//-----------------------------------------------------------------------------
4071// Token functions
4072
4073NTSYSAPI
4075NTAPI
4077 IN HANDLE ProcessHandle,
4078 IN ACCESS_MASK DesiredAccess,
4079 OUT PHANDLE TokenHandle
4080 );
4081
4082
4083NTSYSAPI
4085NTAPI
4087 IN HANDLE ThreadHandle,
4088 IN ACCESS_MASK DesiredAccess,
4089 IN BOOLEAN OpenAsSelf,
4090 OUT PHANDLE TokenHandle
4091 );
4092
4093
4094NTSYSAPI
4096NTAPI
4098 IN HANDLE TokenHandle,
4099 IN TOKEN_INFORMATION_CLASS TokenInformationClass,
4100 OUT PVOID TokenInformation,
4101 IN ULONG TokenInformationLength,
4102 OUT PULONG ReturnLength
4103 );
4104
4105
4106NTSYSAPI
4108NTAPI
4110 IN HANDLE TokenHandle,
4111 IN TOKEN_INFORMATION_CLASS TokenInformationClass,
4112 IN PVOID TokenInformation,
4113 IN ULONG TokenInformationLength
4114 );
4115
4116
4117NTSYSAPI
4119NTAPI
4121 IN HANDLE TokenHandle,
4122 IN BOOLEAN DisableAllPrivileges,
4123 IN PTOKEN_PRIVILEGES NewState OPTIONAL,
4124 IN ULONG BufferLength OPTIONAL,
4125 IN PTOKEN_PRIVILEGES PreviousState OPTIONAL,
4126 OUT PULONG ReturnLength
4127 );
4128
4129
4130NTSYSAPI
4132NTAPI
4134 IN HANDLE ExistingTokenHandle,
4135 IN ACCESS_MASK DesiredAccess,
4136 IN POBJECT_ATTRIBUTES ObjectAttributes,
4137 IN BOOLEAN EffectiveOnly,
4138 IN TOKEN_TYPE TokenType,
4139 OUT PHANDLE NewTokenHandle
4140 );
4141
4142
4143NTSYSAPI
4145NTAPI
4147 IN HANDLE FirstTokenHandle,
4148 IN HANDLE SecondTokenHandle,
4149 OUT PBOOLEAN IdenticalTokens
4150 );
4151
4152
4153//-----------------------------------------------------------------------------
4154// Symbolic links
4155
4156//
4157// Object Manager Symbolic Link Specific Access Rights.
4158//
4159
4160#ifndef SYMBOLIC_LINK_QUERY
4161#define SYMBOLIC_LINK_QUERY (0x0001)
4162#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
4163#endif
4164
4165NTSYSAPI
4167NTAPI
4169 OUT PHANDLE SymbolicLinkHandle,
4170 IN ACCESS_MASK DesiredAccess,
4171 IN POBJECT_ATTRIBUTES ObjectAttributes
4172 );
4173
4174
4175NTSYSAPI
4177NTAPI
4179 IN HANDLE SymbolicLinkHandle,
4180 OUT PUNICODE_STRING NameString,
4181 OUT PULONG ResultLength OPTIONAL
4182 );
4183
4184//-----------------------------------------------------------------------------
4185// Loader functions
4186
4187NTSYSAPI
4189NTAPI
4191 IN PWSTR DllPath OPTIONAL,
4192 IN PULONG DllCharacteristics OPTIONAL,
4193 IN PUNICODE_STRING DllName,
4194 OUT PVOID * DllHandle
4195 );
4196
4197
4198NTSYSAPI
4200NTAPI
4202 IN PVOID DllHandle,
4203 IN PANSI_STRING ProcedureName OPTIONAL,
4204 IN ULONG ProcedureNumber OPTIONAL,
4205 OUT PVOID *ProcedureAddress
4206 );
4207
4208
4209NTSYSAPI
4211NTAPI
4213 IN PWSTR DllPath OPTIONAL,
4214 IN PULONG DllCharacteristics OPTIONAL,
4215 IN PUNICODE_STRING DllName,
4216 OUT PVOID *DllHandle
4217 );
4218
4219NTSYSAPI
4221NTAPI
4223 IN PVOID Address,
4224 OUT PLDR_DATA_TABLE_ENTRY *Module
4225 );
4226
4227NTSYSAPI
4228VOID
4229NTAPI
4231 OUT PVOID *CallersAddress,
4232 OUT PVOID *CallersCaller
4233 );
4234
4235//-----------------------------------------------------------------------------
4236// Functions dealing with NTSTATUS and Win32 error
4237
4238NTSYSAPI
4239ULONG
4240NTAPI
4242 NTSTATUS Status
4243 );
4244
4245
4246NTSYSAPI
4247ULONG
4248NTAPI
4250 NTSTATUS Status
4251 );
4252
4253
4254NTSYSAPI
4256NTAPI
4258 );
4259
4260
4261NTSYSAPI
4262ULONG
4263NTAPI
4265 );
4266
4267
4268NTSYSAPI
4269VOID
4270NTAPI
4272 ULONG WinError
4273 );
4274
4275
4276NTSYSAPI
4277VOID
4278NTAPI
4280 NTSTATUS Status
4281 );
4282
4283
4284//-----------------------------------------------------------------------------
4285// I/O functions
4286
4287
4288NTSYSAPI
4290NTAPI
4292 IN PUNICODE_STRING String
4293 );
4294
4295
4296#ifdef __cplusplus
4297} // extern "C"
4298#endif
4299
4300#endif // __NTDLL_H__
struct _FILE_FULL_EA_INFORMATION * PFILE_FULL_EA_INFORMATION
NTSYSAPI BOOLEAN NTAPI RtlIsGenericTableEmpty(IN PRTL_GENERIC_TABLE Table)
struct _FILE_BOTH_DIR_INFORMATION * PFILE_BOTH_DIR_INFORMATION
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(OUT PUNICODE_STRING DestinationString, IN PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI NtOpenThreadToken(IN HANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN BOOLEAN OpenAsSelf, OUT PHANDLE TokenHandle)
NTSYSAPI NTSTATUS NTAPI NtCreateSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL)
struct _PROCESS_BASIC_INFORMATION * PPROCESS_BASIC_INFORMATION
struct _FILE_COMPRESSION_INFORMATION FILE_COMPRESSION_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtCancelIoFile(IN HANDLE Filehandle, OUT PIO_STATUS_BLOCK IoStatusBlock)
struct _FILE_VALID_DATA_LENGTH_INFORMATION FILE_VALID_DATA_LENGTH_INFORMATION
_FILE_INFORMATION_CLASS
Definition: ntddk.h:1736
@ FilePositionInformation
Definition: ntddk.h:1750
@ FileMoveClusterInformation
Definition: ntddk.h:1767
@ FilePipeLocalInformation
Definition: ntddk.h:1760
@ FileMaximumInformation
Definition: ntddk.h:1784
@ FileEndOfFileInformation
Definition: ntddk.h:1756
@ FileNameInformation
Definition: ntddk.h:1745
@ FileQuotaInformation
Definition: ntddk.h:1768
@ FileCompressionInformation
Definition: ntddk.h:1764
@ FileRenameInformation
Definition: ntddk.h:1746
@ FileAllInformation
Definition: ntddk.h:1754
@ FilePipeRemoteInformation
Definition: ntddk.h:1761
@ FileTrackingInformation
Definition: ntddk.h:1772
@ FileSfioVolumeInformation
Definition: ntddk.h:1781
@ FileIoPriorityHintInformation
Definition: ntddk.h:1779
@ FileLinkInformation
Definition: ntddk.h:1747
@ FileInternalInformation
Definition: ntddk.h:1742
@ FileAttributeTagInformation
Definition: ntddk.h:1771
@ FileStandardInformation
Definition: ntddk.h:1741
@ FileDirectoryInformation
Definition: ntddk.h:1737
@ FileAlignmentInformation
Definition: ntddk.h:1753
@ FileReparsePointInformation
Definition: ntddk.h:1769
@ FileObjectIdInformation
Definition: ntddk.h:1765
@ FileIdBothDirectoryInformation
Definition: ntddk.h:1773
@ FileEaInformation
Definition: ntddk.h:1743
@ FilePipeInformation
Definition: ntddk.h:1759
@ FileAlternateNameInformation
Definition: ntddk.h:1757
@ FileIoCompletionNotificationInformation
Definition: ntddk.h:1777
@ FileNamesInformation
Definition: ntddk.h:1748
@ FileMailslotSetInformation
Definition: ntddk.h:1763
@ FileValidDataLengthInformation
Definition: ntddk.h:1775
@ FileMailslotQueryInformation
Definition: ntddk.h:1762
@ FileAllocationInformation
Definition: ntddk.h:1755
@ FileCompletionInformation
Definition: ntddk.h:1766
@ FileAccessInformation
Definition: ntddk.h:1744
@ FileFullDirectoryInformation
Definition: ntddk.h:1738
@ FileSfioReserveInformation
Definition: ntddk.h:1780
@ FileNetworkOpenInformation
Definition: ntddk.h:1770
@ FileStreamInformation
Definition: ntddk.h:1758
@ FileModeInformation
Definition: ntddk.h:1752
@ FileBasicInformation
Definition: ntddk.h:1740
@ FileDispositionInformation
Definition: ntddk.h:1749
@ FileShortNameInformation
Definition: ntddk.h:1776
@ FileFullEaInformation
Definition: ntddk.h:1751
@ FileProcessIdsUsingFileInformation
Definition: ntddk.h:1783
@ FileBothDirectoryInformation
Definition: ntddk.h:1739
@ FileIoStatusBlockRangeInformation
Definition: ntddk.h:1778
@ FileHardLinkInformation
Definition: ntddk.h:1782
@ FileIdFullDirectoryInformation
Definition: ntddk.h:1774
NTSYSAPI NTSTATUS NTAPI NtClose(IN HANDLE Handle)
struct _SYSTEM_TIMEOFDAY_INFORMATION SYSTEM_TIMEOFDAY_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwQueryDirectoryFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan)
NTSYSAPI NTSTATUS NTAPI NtQueryKey(IN HANDLE KeyHandle, IN KEY_INFORMATION_CLASS KeyInformationClass, OUT PVOID KeyInformation, IN ULONG Length, OUT PULONG ResultLength)
NTSYSAPI NTSTATUS NTAPI ZwFlushBuffersFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock)
struct RTL_HEAP_PARAMETERS RTL_HEAP_PARAMETERS
NTSYSAPI NTSTATUS NTAPI NtResetEvent(IN HANDLE Handle, OUT PLONG PreviousState OPTIONAL)
struct _OBJECT_HANDLE_FLAG_INFORMATION OBJECT_HANDLE_FLAG_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtSetInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass)
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI NtSetSecurityObject(IN HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor)
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(IN PACL Acl, IN ULONG AclLength, IN ULONG AclRevision)
NTSYSAPI NTSTATUS NTAPI NtRequestWaitReplyPort(IN HANDLE PortHandle, IN PPORT_MESSAGE RequestMessage, OUT PPORT_MESSAGE ReplyMessage)
NTSYSAPI PVOID NTAPI RtlAllocateHeap(IN HANDLE HeapHandle, IN ULONG Flags, IN ULONG Size)
struct _SYSTEM_MODULE_INFORMATION * PSYSTEM_MODULE_INFORMATION
NTSYSAPI ULONG NTAPI RtlRandom(IN OUT PULONG Seed)
enum _FSINFOCLASS * PFS_INFORMATION_CLASS
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(OUT PUNICODE_STRING DestinationString, IN PUNICODE_STRING SourceString)
NTSYSAPI NTSTATUS NTAPI NtQueryVolumeInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FsInformation, IN ULONG Length, IN FS_INFORMATION_CLASS FsInformationClass)
struct _FILE_PIPE_REMOTE_INFORMATION * PFILE_PIPE_REMOTE_INFORMATION
NTSYSCALLAPI NTSTATUS NTAPI NtResumeProcess(IN HANDLE ProcessHandle)
NTSYSAPI VOID NTAPI RtlRaiseStatus(IN NTSTATUS Status)
struct _FILE_ATTRIBUTE_TAG_INFORMATION FILE_ATTRIBUTE_TAG_INFORMATION
struct _FILE_NETWORK_OPEN_INFORMATION FILE_NETWORK_OPEN_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtMapViewOfSection(IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect)
NTSYSAPI NTSTATUS NTAPI ZwCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer, IN ULONG EaLength)
NTSYSAPI VOID NTAPI RtlInitializeGenericTable(IN PRTL_GENERIC_TABLE Table, IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine, IN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine, IN PRTL_GENERIC_FREE_ROUTINE FreeRoutine, IN PVOID TableContext)
struct _CURDIR * PCURDIR
struct _RTL_HANDLE_TABLE_ENTRY * PRTL_HANDLE_TABLE_ENTRY
NTSYSAPI NTSTATUS NTAPI NtSetValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN ULONG TitleIndex OPTIONAL, IN ULONG Type, IN PVOID Data, IN ULONG DataSize)
struct _KEY_VALUE_FULL_INFORMATION KEY_VALUE_FULL_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwMapViewOfSection(IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG_PTR ZeroBits, IN SIZE_T CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect)
struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
struct _STRING * PSTRING
NTSYSAPI NTSTATUS NTAPI RtlAllocateAndInitializeSid(IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, IN UCHAR SubAuthorityCount, IN ULONG SubAuthority0, IN ULONG SubAuthority1, IN ULONG SubAuthority2, IN ULONG SubAuthority3, IN ULONG SubAuthority4, IN ULONG SubAuthority5, IN ULONG SubAuthority6, IN ULONG SubAuthority7, OUT PSID *Sid)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(OUT PANSI_STRING DestinationString, IN PUNICODE_STRING SourceString, IN BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI NtQuerySection(IN HANDLE SectionHandle, IN SECTION_INFORMATION_CLASS SectionInformationClass, OUT PVOID SectionInformation, IN ULONG Length, OUT PULONG ResultLength OPTIONAL)
struct _FILE_FULL_DIR_INFORMATION FILE_FULL_DIR_INFORMATION
struct _FILE_ID_FULL_DIR_INFORMATION FILE_ID_FULL_DIR_INFORMATION
struct _PORT_MESSAGE PORT_MESSAGE
_KEY_INFORMATION_CLASS
Definition: ntddk.h:945
@ KeyFlagsInformation
Definition: ntddk.h:951
@ KeyCachedInformation
Definition: ntddk.h:950
@ KeyNameInformation
Definition: ntddk.h:949
@ KeyBasicInformation
Definition: ntddk.h:946
@ KeyNodeInformation
Definition: ntddk.h:947
@ KeyFullInformation
Definition: ntddk.h:948
@ MaxKeyInfoClass
Definition: ntddk.h:952
NTSYSAPI NTSTATUS NTAPI NtDeleteFile(IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI ZwSetEaFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID Buffer, IN ULONG Length)
NTSYSAPI NTSTATUS NTAPI NtSetInformationToken(IN HANDLE TokenHandle, IN TOKEN_INFORMATION_CLASS TokenInformationClass, IN PVOID TokenInformation, IN ULONG TokenInformationLength)
struct _FILE_LINK_ENTRY_INFORMATION FILE_LINK_ENTRY_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlDuplicateUnicodeString(IN BOOLEAN AllocateNew, IN PUNICODE_STRING SourceString, OUT PUNICODE_STRING TargetString)
NTSYSAPI NTSTATUS NTAPI LdrGetProcedureAddress(IN PVOID DllHandle, IN PANSI_STRING ProcedureName OPTIONAL, IN ULONG ProcedureNumber OPTIONAL, OUT PVOID *ProcedureAddress)
struct _SYSTEM_MODULE * PSYSTEM_MODULE
enum _SECTION_INFORMATION_CLASS SECTION_INFORMATION_CLASS
NTSYSAPI NTSTATUS NTAPI NtOpenThread(OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtDeleteKey(IN HANDLE KeyHandle)
NTSYSAPI NTSTATUS NTAPI NtFreeVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN OUT PULONG RegionSize, IN ULONG FreeType)
_SHUTDOWN_ACTION
Definition: ntddk.h:1651
@ ShutdownReboot
Definition: ntddk.h:1653
@ ShutdownPowerOff
Definition: ntddk.h:1654
@ ShutdownNoReboot
Definition: ntddk.h:1652
struct _FILE_OBJECTID_INFORMATION FILE_OBJECTID_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtCreatePort(OUT PHANDLE PortHandle, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG MaxConnectionInfoLength, IN ULONG MaxMessageLength, IN ULONG MaxPoolUsage)
NTSYSAPI PRTL_HANDLE_TABLE_ENTRY NTAPI RtlAllocateHandle(IN PRTL_HANDLE_TABLE HandleTable, OUT PULONG HandleIndex OPTIONAL)
struct _KEY_NODE_INFORMATION * PKEY_NODE_INFORMATION
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(IN PWSTR DosPathName, OUT PUNICODE_STRING NtPathName, OUT PWSTR *NtFileNamePart OPTIONAL, OUT PCURDIR DirectoryInfo OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtAcceptConnectPort(OUT PHANDLE PortHandle, IN PVOID PortContext OPTIONAL, IN PPORT_MESSAGE ConnectionRequest, IN BOOLEAN AcceptConnection, IN OUT PPORT_VIEW ServerView OPTIONAL, OUT PREMOTE_PORT_VIEW ClientView OPTIONAL)
enum _FILE_INFORMATION_CLASS * PFILE_INFORMATION_CLASS
NTSYSAPI NTSTATUS NTAPI RtlGetLastNtStatus()
struct _RTL_DRIVE_LETTER_CURDIR RTL_DRIVE_LETTER_CURDIR
_POOL_TYPE
Definition: ntddk.h:520
@ PagedPoolCacheAligned
Definition: ntddk.h:526
@ NonPagedPoolCacheAligned
Definition: ntddk.h:525
@ NonPagedPoolCacheAlignedMustS
Definition: ntddk.h:527
@ MaxPoolType
Definition: ntddk.h:528
@ NonPagedPool
Definition: ntddk.h:521
@ DontUseThisType
Definition: ntddk.h:524
@ NonPagedPoolMustSucceed
Definition: ntddk.h:523
@ PagedPool
Definition: ntddk.h:522
struct _FILE_MODE_INFORMATION FILE_MODE_INFORMATION
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString)
enum _SYSTEM_INFORMATION_CLASS * PSYSTEM_INFORMATION_CLASS
NTSYSAPI NTSTATUS NTAPI NtListenPort(IN HANDLE PortHandle, OUT PPORT_MESSAGE RequestMessage)
enum _SHUTDOWN_ACTION SHUTDOWN_ACTION
NTSYSAPI NTSTATUS NTAPI RtlSetEnvironmentVariable(PVOID *Environment, PUNICODE_STRING Name, PUNICODE_STRING Value)
struct _RTL_HANDLE_TABLE * PRTL_HANDLE_TABLE
NTSYSAPI NTSTATUS NTAPI NtOpenEvent(OUT PHANDLE EventHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
struct _OBJECT_DIRECTORY_INFORMATION OBJECT_DIRECTORY_INFORMATION
struct _FILE_PIPE_LOCAL_INFORMATION FILE_PIPE_LOCAL_INFORMATION
_KEY_VALUE_INFORMATION_CLASS
Definition: ntddk.h:1030
@ MaxKeyValueInfoClass
Definition: ntddk.h:1036
@ KeyValuePartialInformationAlign64
Definition: ntddk.h:1035
@ KeyValueBasicInformation
Definition: ntddk.h:1031
@ KeyValuePartialInformation
Definition: ntddk.h:1033
@ KeyValueFullInformation
Definition: ntddk.h:1032
@ KeyValueFullInformationAlign64
Definition: ntddk.h:1034
enum _SECTION_INFORMATION_CLASS * PSECTION_INFORMATION_CLASS
struct _SYSTEM_BASIC_INFORMATION * PSYSTEM_BASIC_INFORMATION
struct _FILE_BASIC_INFORMATION FILE_BASIC_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtFlushBuffersFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock)
NTSYSAPI NTSTATUS NTAPI RtlSetDaclSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN BOOLEAN DaclPresent, IN PACL Dacl OPTIONAL, IN BOOLEAN DaclDefaulted OPTIONAL)
NTSYSAPI PVOID NTAPI RtlEnumerateGenericTableWithoutSplaying(IN PRTL_GENERIC_TABLE Table, IN PVOID *RestartKey)
struct _FILE_MOVE_CLUSTER_INFORMATION * PFILE_MOVE_CLUSTER_INFORMATION
struct _FILE_ALLOCATION_INFORMATION * PFILE_ALLOCATION_INFORMATION
NTSTATUS(NTAPI * PRTL_QUERY_REGISTRY_ROUTINE)(IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext)
Definition: ntddk.h:1205
NTSYSAPI NTSTATUS NTAPI NtRequestPort(IN HANDLE PortHandle, IN PPORT_MESSAGE RequestMessage)
struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS
struct _FILE_STANDARD_INFORMATION * PFILE_STANDARD_INFORMATION
struct RTL_HEAP_PARAMETERS * PRTL_HEAP_PARAMETERS
struct _RTL_HANDLE_TABLE RTL_HANDLE_TABLE
struct _FILE_NETWORK_OPEN_INFORMATION * PFILE_NETWORK_OPEN_INFORMATION
struct _OBJECT_BASIC_INFORMATION OBJECT_BASIC_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtSetEvent(IN HANDLE Handle, OUT PLONG PreviousState OPTIONAL)
struct _CLIENT_ID CLIENT_ID
enum _OBJECT_INFORMATION_CLASS OBJECT_INFORMATION_CLASS
NTSYSAPI BOOLEAN NTAPI RtlLockHeap(IN HANDLE HeapHandle)
NTSYSAPI NTSTATUS NTAPI ZwCancelIoFile(IN HANDLE Filehandle, OUT PIO_STATUS_BLOCK IoStatusBlock)
struct _FILE_PIPE_INFORMATION FILE_PIPE_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlInitializeCriticalSection(IN PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlFormatCurrentUserKeyPath(OUT PUNICODE_STRING CurrentUserKeyPath)
NTSYSAPI NTSTATUS NTAPI ZwClearEvent(IN HANDLE Handle)
NTSYSAPI NTSTATUS NTAPI RtlAddAccessAllowedAce(IN OUT PACL Acl, IN ULONG AceRevision, IN ACCESS_MASK AccessMask, IN PSID Sid)
NTSYSAPI ULONG NTAPI RtlNtStatusToDosErrorNoTeb(NTSTATUS Status)
#define GDI_HANDLE_BUFFER_SIZE
Definition: ntddk.h:2531
NTSYSAPI NTSTATUS NTAPI NtWriteVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN PVOID Buffer, IN ULONG NumberOfBytesToWrite, OUT PULONG NumberOfBytesWritten OPTIONAL)
struct _FILE_LINK_INFORMATION FILE_LINK_INFORMATION
NTSYSAPI VOID NTAPI RtlSetLastWin32Error(ULONG WinError)
NTSYSAPI NTSTATUS NTAPI NtDeleteValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName)
enum _POOL_TYPE POOL_TYPE
struct _FILE_ID_BOTH_DIR_INFORMATION * PFILE_ID_BOTH_DIR_INFORMATION
_EVENT_TYPE
Definition: ntddk.h:54
@ NotificationEvent
Definition: ntddk.h:55
@ SynchronizationEvent
Definition: ntddk.h:56
NTSYSAPI VOID NTAPI RtlInitAnsiString(OUT PANSI_STRING DestinationString, IN PCHAR SourceString)
struct _FILE_RENAME_INFORMATION * PFILE_RENAME_INFORMATION
NTSYSAPI LONG NTAPI RtlCompareUnicodeString(IN PUNICODE_STRING String1, IN PUNICODE_STRING String2, IN BOOLEAN CaseInSensitive)
struct _FILE_QUOTA_INFORMATION FILE_QUOTA_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtReplyPort(IN HANDLE PortHandle, IN PPORT_MESSAGE ReplyMessage)
enum _SHUTDOWN_ACTION * PSHUTDOWN_ACTION
struct _FILE_ACCESS_INFORMATION FILE_ACCESS_INFORMATION
NTSYSAPI BOOLEAN NTAPI RtlUnlockHeap(IN HANDLE HeapHandle)
struct _KEY_BASIC_INFORMATION KEY_BASIC_INFORMATION
struct _TEB * PTEB
struct _KEY_NAME_INFORMATION * PKEY_NAME_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwDeviceIoControlFile(IN HANDLE FileHandle, IN HANDLE Event, IN PIO_APC_ROUTINE ApcRoutine, IN PVOID ApcContext, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength)
struct _FILE_REPARSE_POINT_INFORMATION * PFILE_REPARSE_POINT_INFORMATION
enum _THREADINFOCLASS THREADINFOCLASS
NTSYSAPI NTSTATUS NTAPI NtAdjustPrivilegesToken(IN HANDLE TokenHandle, IN BOOLEAN DisableAllPrivileges, IN PTOKEN_PRIVILEGES NewState OPTIONAL, IN ULONG BufferLength OPTIONAL, IN PTOKEN_PRIVILEGES PreviousState OPTIONAL, OUT PULONG ReturnLength)
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
struct _FILE_QUOTA_INFORMATION * PFILE_QUOTA_INFORMATION
struct _SYSTEM_PERFORMANCE_INFORMATION * PSYSTEM_PERFORMANCE_INFORMATION
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
struct _REMOTE_PORT_VIEW * PREMOTE_PORT_VIEW
struct _FILE_TRACKING_INFORMATION FILE_TRACKING_INFORMATION
struct _FILE_ID_BOTH_DIR_INFORMATION FILE_ID_BOTH_DIR_INFORMATION
struct _FILE_LINK_INFORMATION * PFILE_LINK_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtOpenFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions)
NTSYSAPI BOOLEAN NTAPI RtlIsValidIndexHandle(IN PRTL_HANDLE_TABLE HandleTable, IN ULONG HandleIndex, OUT PRTL_HANDLE_TABLE_ENTRY *Handle)
struct _SYSTEM_BASIC_INFORMATION SYSTEM_BASIC_INFORMATION
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI ZwAllocateVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG ZeroBits, IN OUT PULONG RegionSize, IN ULONG AllocationType, IN ULONG Protect)
enum _PROCESSINFOCLASS PROCESSINFOCLASS
NTSYSAPI NTSTATUS NTAPI ZwQueryEaFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN BOOLEAN ReturnSingleEntry, IN PVOID EaList OPTIONAL, IN ULONG EaListLength, IN PULONG EaIndex OPTIONAL, IN BOOLEAN RestartScan)
NTSYSAPI NTSTATUS NTAPI ZwCompleteConnectPort(IN HANDLE PortHandle)
struct _LDR_DATA_TABLE_ENTRY * PLDR_DATA_TABLE_ENTRY
struct _KEY_FLAGS_INFORMATION KEY_FLAGS_INFORMATION
struct _IO_STATUS_BLOCK IO_STATUS_BLOCK
NTSYSAPI VOID NTAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS Status)
_THREADINFOCLASS
Definition: ntddk.h:2578
@ ThreadEnableAlignmentFaultFixup
Definition: ntddk.h:2586
@ ThreadDescriptorTableEntry
Definition: ntddk.h:2585
@ ThreadEventPair
Definition: ntddk.h:2587
@ ThreadAmILastThread
Definition: ntddk.h:2591
@ ThreadTimes
Definition: ntddk.h:2580
@ ThreadPriority
Definition: ntddk.h:2581
@ MaxThreadInfoClass
Definition: ntddk.h:2595
@ ThreadIdealProcessor
Definition: ntddk.h:2592
@ ThreadQuerySetWin32StartAddress
Definition: ntddk.h:2588
@ ThreadImpersonationToken
Definition: ntddk.h:2584
@ ThreadSetTlsArrayAddress
Definition: ntddk.h:2594
@ ThreadAffinityMask
Definition: ntddk.h:2583
@ ThreadBasePriority
Definition: ntddk.h:2582
@ ThreadBasicInformation
Definition: ntddk.h:2579
@ ThreadPriorityBoost
Definition: ntddk.h:2593
@ ThreadPerformanceCount
Definition: ntddk.h:2590
@ ThreadZeroTlsCell
Definition: ntddk.h:2589
VOID(NTAPI * PRTL_GENERIC_FREE_ROUTINE)(struct _RTL_GENERIC_TABLE *Table, PVOID Buffer)
Definition: ntddk.h:742
NTSYSAPI PVOID NTAPI RtlLookupElementGenericTable(IN PRTL_GENERIC_TABLE Table, IN PVOID Buffer)
struct _KEY_CACHED_INFORMATION * PKEY_CACHED_INFORMATION
struct _KEY_NODE_INFORMATION KEY_NODE_INFORMATION
CONST STRING * PCOEM_STRING
Definition: ntddk.h:93
struct _RTL_QUERY_REGISTRY_TABLE * PRTL_QUERY_REGISTRY_TABLE
_WAIT_TYPE
Definition: ntddk.h:3757
@ WaitAll
Definition: ntddk.h:3758
@ WaitAny
Definition: ntddk.h:3759
struct _FILE_ALL_INFORMATION * PFILE_ALL_INFORMATION
struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY
struct _SYSTEM_DEVICE_INFORMATION * PSYSTEM_DEVICE_INFORMATION
VOID(NTAPI * PIO_APC_ROUTINE)(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved)
Definition: ntddk.h:1726
struct _RTL_GENERIC_TABLE RTL_GENERIC_TABLE
NTSYSAPI NTSTATUS NTAPI ZwCreateSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtection, IN ULONG AllocationAttributes, IN HANDLE FileHandle OPTIONAL)
struct _PORT_VIEW PORT_VIEW
struct _KEY_BASIC_INFORMATION * PKEY_BASIC_INFORMATION
NTSYSAPI VOID NTAPI RtlInitializeHandleTable(IN ULONG MaximumNumberOfHandles, IN ULONG SizeOfHandleTableEntry, OUT PRTL_HANDLE_TABLE HandleTable)
struct _OBJECT_ATTRIBUTES * POBJECT_ATTRIBUTES
struct _PEB_LDR_DATA * PPEB_LDR_DATA
NTSYSAPI NTSTATUS NTAPI NtUnmapViewOfSection(IN HANDLE ProcessHandle, IN PVOID BaseAddress)
NTSYSAPI NTSTATUS NTAPI RtlQueryRegistryValues(IN ULONG RelativeTo, IN PCWSTR Path, IN PRTL_QUERY_REGISTRY_TABLE QueryTable, IN PVOID Context, IN PVOID Environment OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtQueryInformationThread(IN HANDLE ThreadHandle, IN THREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength, OUT PULONG ReturnLength OPTIONAL)
NTSYSAPI NTSTATUS NTAPI ZwSetEvent(IN HANDLE Handle, OUT PLONG PreviousState OPTIONAL)
_OBJECT_INFORMATION_CLASS
Definition: ntddk.h:536
@ ObjectTypeInformation
Definition: ntddk.h:539
@ ObjectHandleFlagInformation
Definition: ntddk.h:541
@ ObjectBasicInformation
Definition: ntddk.h:537
@ ObjectNameInformation
Definition: ntddk.h:538
@ ObjectTypesInformation
Definition: ntddk.h:540
NTSYSAPI NTSTATUS NTAPI RtlAddAccessAllowedAceEx(IN OUT PACL Acl, IN ULONG AceRevision, IN ULONG AceFlags, IN ULONG AccessMask, IN PSID Sid)
NTSYSAPI NTSTATUS NTAPI ZwOpenSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI NtQuerySecurityObject(IN HANDLE ObjectHandle, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN ULONG DescriptorLength, OUT PULONG ReturnLength)
struct _SYSTEM_MODULE SYSTEM_MODULE
NTSYSAPI NTSTATUS NTAPI NtQueryInformationProcess(IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, OUT PVOID ProcessInformation, IN ULONG ProcessInformationLength, OUT PULONG ReturnLength OPTIONAL)
STRING OEM_STRING
Definition: ntddk.h:91
struct _FILE_LINKS_INFORMATION * PFILE_LINKS_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtDisplayString(IN PUNICODE_STRING String)
struct _FILE_NAME_INFORMATION FILE_NAME_INFORMATION
long NTSTATUS
Definition: ntddk.h:28
struct _PEB * PPEB
enum _EVENT_INFORMATION_CLASS EVENT_INFORMATION_CLASS
struct _FILE_STREAM_INFORMATION * PFILE_STREAM_INFORMATION
struct _FILE_POSITION_INFORMATION FILE_POSITION_INFORMATION
struct _RTL_SPLAY_LINKS * PRTL_SPLAY_LINKS
struct _IO_STATUS_BLOCK * PIO_STATUS_BLOCK
struct _KEY_FULL_INFORMATION KEY_FULL_INFORMATION
struct _FILE_NAME_INFORMATION * PFILE_NAME_INFORMATION
struct _FILE_RENAME_INFORMATION FILE_RENAME_INFORMATION
enum _SECTION_INHERIT SECTION_INHERIT
struct _FILE_MOVE_CLUSTER_INFORMATION FILE_MOVE_CLUSTER_INFORMATION
NTSYSAPI ULONG NTAPI RtlNtStatusToDosError(NTSTATUS Status)
NTSYSAPI NTSTATUS NTAPI LdrGetDllHandle(IN PWSTR DllPath OPTIONAL, IN PULONG DllCharacteristics OPTIONAL, IN PUNICODE_STRING DllName, OUT PVOID *DllHandle)
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwPulseEvent(IN HANDLE Handle, OUT PLONG PreviousState OPTIONAL)
NTSYSAPI NTSTATUS NTAPI ZwFreeVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN OUT PULONG RegionSize, IN ULONG FreeType)
struct _KEY_CACHED_INFORMATION KEY_CACHED_INFORMATION
NTSYSAPI ULONG NTAPI RtlSizeHeap(IN HANDLE HeapHandle, IN ULONG Flags, IN PVOID Address)
NTSYSAPI NTSTATUS NTAPI NtQueryEaFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN BOOLEAN ReturnSingleEntry, IN PVOID EaList OPTIONAL, IN ULONG EaListLength, IN PULONG EaIndex OPTIONAL, IN BOOLEAN RestartScan)
enum _LPC_TYPE * PLPC_TYPE
struct _FILE_END_OF_FILE_INFORMATION * PFILE_END_OF_FILE_INFORMATION
struct _EVENT_BASIC_INFORMATION EVENT_BASIC_INFORMATION
struct _OBJECT_TYPE_INFORMATION * POBJECT_TYPE_INFORMATION
struct _FILE_EA_INFORMATION * PFILE_EA_INFORMATION
enum _EVENT_TYPE EVENT_TYPE
NTSYSAPI NTSTATUS NTAPI RtlSetOwnerSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID Owner OPTIONAL, IN BOOLEAN OwnerDefaulted OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtDuplicateToken(IN HANDLE ExistingTokenHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN BOOLEAN EffectiveOnly, IN TOKEN_TYPE TokenType, OUT PHANDLE NewTokenHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtSuspendProcess(IN HANDLE ProcessHandle)
struct _OBJECT_NAME_INFORMATION * POBJECT_NAME_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(IN PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI BOOLEAN NTAPI RtlFreeHeap(IN HANDLE HeapHandle, IN ULONG Flags, IN PVOID Address)
NTSYSAPI ULONG NTAPI RtlDestroyHeap(IN HANDLE HeapHandle)
NTSYSAPI NTSTATUS NTAPI NtQueryObject(IN HANDLE ObjectHandle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG Length, OUT PULONG ResultLength OPTIONAL)
NTSYSAPI NTSTATUS NTAPI RtlOpenCurrentUser(IN ULONG DesiredAccess, OUT PHANDLE CurrentUserKey)
NTSYSAPI NTSTATUS NTAPI NtCreateEvent(OUT PHANDLE EventHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN EVENT_TYPE EventType, IN BOOLEAN InitialState)
struct _FILE_BASIC_INFORMATION * PFILE_BASIC_INFORMATION
struct _FILE_REPARSE_POINT_INFORMATION FILE_REPARSE_POINT_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwRequestWaitReplyPort(IN HANDLE PortHandle, IN PPORT_MESSAGE RequestMessage, OUT PPORT_MESSAGE ReplyMessage)
struct _PORT_VIEW * PPORT_VIEW
NTSYSAPI NTSTATUS NTAPI NtCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer, IN ULONG EaLength)
NTSYSAPI NTSTATUS NTAPI ZwReadFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtReplyWaitReplyPort(IN HANDLE PortHandle, IN OUT PPORT_MESSAGE ReplyMessage)
NTSYSAPI NTSTATUS NTAPI ZwWaitForMultipleObjects(IN ULONG Count, IN HANDLE Handle[], IN WAIT_TYPE WaitType, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
struct _FILE_ACCESS_INFORMATION * PFILE_ACCESS_INFORMATION
struct _FILE_DISPOSITION_INFORMATION FILE_DISPOSITION_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlGUIDFromString(IN PUNICODE_STRING GuidString, OUT GUID *Guid)
struct _RTL_GENERIC_TABLE * PRTL_GENERIC_TABLE
struct _FILE_ALIGNMENT_INFORMATION FILE_ALIGNMENT_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtDeviceIoControlFile(IN HANDLE FileHandle, IN HANDLE Event, IN PIO_APC_ROUTINE ApcRoutine, IN PVOID ApcContext, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferLength, IN PVOID OutputBuffer, IN ULONG OutputBufferLength)
NTSYSAPI ULONG NTAPI RtlCompactHeap(IN HANDLE HeapHandle, IN ULONG Flags)
_PROCESSINFOCLASS
Definition: ntddk.h:2537
@ ProcessLUIDDeviceMapsEnabled
Definition: ntddk.h:2566
@ ProcessWx86Information
Definition: ntddk.h:2557
@ ProcessDebugFlags
Definition: ntddk.h:2569
@ MaxProcessInfoClass
Definition: ntddk.h:2571
@ ProcessDebugPort
Definition: ntddk.h:2545
@ ProcessSessionInformation
Definition: ntddk.h:2562
@ ProcessBreakOnTermination
Definition: ntddk.h:2567
@ ProcessAffinityMask
Definition: ntddk.h:2559
@ ProcessIoPortHandlers
Definition: ntddk.h:2551
@ ProcessRaisePriority
Definition: ntddk.h:2544
@ ProcessVmCounters
Definition: ntddk.h:2541
@ ProcessPriorityClass
Definition: ntddk.h:2556
@ ProcessPriorityBoost
Definition: ntddk.h:2560
@ ProcessBasicInformation
Definition: ntddk.h:2538
@ ProcessWow64Information
Definition: ntddk.h:2564
@ ProcessPooledUsageAndLimits
Definition: ntddk.h:2552
@ ProcessLdtSize
Definition: ntddk.h:2549
@ ProcessIoCounters
Definition: ntddk.h:2540
@ ProcessDefaultHardErrorMode
Definition: ntddk.h:2550
@ ProcessEnableAlignmentFaultFixup
Definition: ntddk.h:2555
@ ProcessDeviceMap
Definition: ntddk.h:2561
@ ProcessBasePriority
Definition: ntddk.h:2543
@ ProcessQuotaLimits
Definition: ntddk.h:2539
@ ProcessAccessToken
Definition: ntddk.h:2547
@ ProcessHandleTracing
Definition: ntddk.h:2570
@ ProcessForegroundInformation
Definition: ntddk.h:2563
@ ProcessTimes
Definition: ntddk.h:2542
@ ProcessDebugObjectHandle
Definition: ntddk.h:2568
@ ProcessExceptionPort
Definition: ntddk.h:2546
@ ProcessWorkingSetWatch
Definition: ntddk.h:2553
@ ProcessImageFileName
Definition: ntddk.h:2565
@ ProcessLdtInformation
Definition: ntddk.h:2548
@ ProcessHandleCount
Definition: ntddk.h:2558
@ ProcessUserModeIOPL
Definition: ntddk.h:2554
struct _FILE_COMPRESSION_INFORMATION * PFILE_COMPRESSION_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwQueryEvent(IN HANDLE EventHandle, IN EVENT_INFORMATION_CLASS EventInfoClass, OUT PVOID EventInfo, IN ULONG Length, OUT PULONG ResultLength OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtOpenProcessToken(IN HANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, OUT PHANDLE TokenHandle)
struct _FILE_COMPLETION_INFORMATION * PFILE_COMPLETION_INFORMATION
struct _FILE_ALLOCATION_INFORMATION FILE_ALLOCATION_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtQueryDirectoryFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan)
struct _FILE_NAMES_INFORMATION * PFILE_NAMES_INFORMATION
struct _OBJECT_HANDLE_FLAG_INFORMATION * POBJECT_HANDLE_FLAG_INFORMATION
struct _SYSTEM_TIMEOFDAY_INFORMATION * PSYSTEM_TIMEOFDAY_INFORMATION
_FSINFOCLASS
Definition: ntddk.h:2135
@ FileFsControlInformation
Definition: ntddk.h:2141
@ FileFsDeviceInformation
Definition: ntddk.h:2139
@ FileFsLabelInformation
Definition: ntddk.h:2137
@ FileFsAttributeInformation
Definition: ntddk.h:2140
@ FileFsVolumeInformation
Definition: ntddk.h:2136
@ FileFsObjectIdInformation
Definition: ntddk.h:2143
@ FileFsSizeInformation
Definition: ntddk.h:2138
@ FileFsMaximumInformation
Definition: ntddk.h:2145
@ FileFsDriverPathInformation
Definition: ntddk.h:2144
@ FileFsFullSizeInformation
Definition: ntddk.h:2142
struct _KEY_VALUE_PARTIAL_INFORMATION KEY_VALUE_PARTIAL_INFORMATION
struct _FILE_VALID_DATA_LENGTH_INFORMATION * PFILE_VALID_DATA_LENGTH_INFORMATION
_SECTION_INHERIT
Definition: ntddk.h:3533
@ ViewUnmap
Definition: ntddk.h:3535
@ ViewShare
Definition: ntddk.h:3534
struct _UNICODE_STRING * PUNICODE_STRING
struct _FILE_MAILSLOT_QUERY_INFORMATION FILE_MAILSLOT_QUERY_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtQueryEvent(IN HANDLE EventHandle, IN EVENT_INFORMATION_CLASS EventInfoClass, OUT PVOID EventInfo, IN ULONG Length, OUT PULONG ResultLength OPTIONAL)
enum _KEY_VALUE_INFORMATION_CLASS KEY_VALUE_INFORMATION_CLASS
NTSYSAPI NTSTATUS NTAPI NtEnumerateKey(IN HANDLE KeyHandle, IN ULONG Index, IN KEY_INFORMATION_CLASS KeyInformationClass, IN PVOID KeyInformation, IN ULONG Length, IN PULONG ResultLength)
NTSYSAPI NTSTATUS NTAPI NtWriteFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL)
NTSYSAPI NTSTATUS NTAPI ZwQueryInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass)
struct _FILE_ATTRIBUTE_TAG_INFORMATION * PFILE_ATTRIBUTE_TAG_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlDeleteCriticalSection(IN PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI PVOID NTAPI RtlFreeSid(IN PSID Sid)
struct _SYSTEM_PROCESSOR_INFORMATION * PSYSTEM_PROCESSOR_INFORMATION
struct _PORT_MESSAGE * PPORT_MESSAGE
struct _FILE_MAILSLOT_SET_INFORMATION * PFILE_MAILSLOT_SET_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtOpenProcess(OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId OPTIONAL)
NTSYSAPI PVOID NTAPI RtlImageNtHeader(IN PVOID BaseAddress)
struct _FILE_INTERNAL_INFORMATION FILE_INTERNAL_INFORMATION
struct _FILE_LINK_ENTRY_INFORMATION * PFILE_LINK_ENTRY_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtAllocateVirtualMemory(IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG ZeroBits, IN OUT PULONG RegionSize, IN ULONG AllocationType, IN ULONG Protect)
struct _RTL_USER_PROCESS_PARAMETERS * PRTL_USER_PROCESS_PARAMETERS
NTSYSAPI NTSTATUS NTAPI RtlDestroyEnvironment(PVOID Environment)
_EVENT_INFORMATION_CLASS
Definition: ntddk.h:3810
@ EventBasicInformation
Definition: ntddk.h:3811
NTSYSAPI NTSTATUS NTAPI NtQuerySymbolicLinkObject(IN HANDLE SymbolicLinkHandle, OUT PUNICODE_STRING NameString, OUT PULONG ResultLength OPTIONAL)
PVOID(NTAPI * PRTL_GENERIC_ALLOCATE_ROUTINE)(struct _RTL_GENERIC_TABLE *Table, ULONG ByteSize)
Definition: ntddk.h:735
struct _FILE_OBJECTID_INFORMATION * PFILE_OBJECTID_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwResetEvent(IN HANDLE Handle, OUT PLONG PreviousState OPTIONAL)
enum _KEY_INFORMATION_CLASS KEY_INFORMATION_CLASS
struct _REMOTE_PORT_VIEW REMOTE_PORT_VIEW
NTSYSAPI NTSTATUS NTAPI RtlDowncaseUnicodeString(OUT PUNICODE_STRING DestinationString, IN PUNICODE_STRING SourceString, IN BOOLEAN AllocateDestinationString)
NTSYSAPI BOOLEAN NTAPI RtlValidateHeap(IN HANDLE HeapHandle, IN ULONG Flags, IN PVOID Address OPTIONAL)
NTSYSAPI NTSTATUS NTAPI ZwExtendSection(IN HANDLE SectionHandle, IN OUT PLARGE_INTEGER SectionSize)
NTSYSAPI NTSTATUS NTAPI ZwWaitForSingleObject(IN HANDLE Handle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
struct _FILE_ALIGNMENT_INFORMATION * PFILE_ALIGNMENT_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeString(OUT PUNICODE_STRING DestinationString, IN PUNICODE_STRING SourceString, IN BOOLEAN AllocateDestinationString)
PVOID PVOID SecondStruct
Definition: ntddk.h:731
NTSYSAPI NTSTATUS NTAPI ZwQuerySection(IN HANDLE SectionHandle, IN SECTION_INFORMATION_CLASS SectionInformationClass, OUT PVOID SectionInformation, IN ULONG Length, OUT PULONG ResultLength OPTIONAL)
struct _SYSTEM_MODULE_INFORMATION SYSTEM_MODULE_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtSetInformationObject(IN HANDLE ObjectHandle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, IN PVOID ObjectInformation, IN ULONG Length)
NTSYSAPI NTSTATUS NTAPI NtPulseEvent(IN HANDLE Handle, OUT PLONG PreviousState OPTIONAL)
NTSYSAPI NTSTATUS NTAPI RtlCreateEnvironment(BOOLEAN CloneCurrentEnvironment, PVOID *Environment)
NTSYSAPI BOOLEAN NTAPI RtlFreeHandle(IN PRTL_HANDLE_TABLE HandleTable, IN PRTL_HANDLE_TABLE_ENTRY Handle)
NTSYSAPI ULONG NTAPI RtlGetLastWin32Error()
struct _FILE_LINKS_INFORMATION FILE_LINKS_INFORMATION
struct _KEY_VALUE_PARTIAL_INFORMATION * PKEY_VALUE_PARTIAL_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeToString(PUNICODE_STRING Destination, PCWSTR Source)
NTSYSAPI NTSTATUS NTAPI NtQueryInformationToken(IN HANDLE TokenHandle, IN TOKEN_INFORMATION_CLASS TokenInformationClass, OUT PVOID TokenInformation, IN ULONG TokenInformationLength, OUT PULONG ReturnLength)
NTSYSAPI NTSTATUS NTAPI NtConnectPort(OUT PHANDLE PortHandle, IN PUNICODE_STRING PortName, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos, IN OUT PPORT_VIEW ClientView OPTIONAL, OUT PREMOTE_PORT_VIEW ServerView OPTIONAL, OUT PULONG MaxMessageLength OPTIONAL, IN OUT PVOID ConnectionInformation OPTIONAL, IN OUT PULONG ConnectionInformationLength OPTIONAL)
struct _KEY_NAME_INFORMATION KEY_NAME_INFORMATION
NTSYSAPI VOID NTAPI DbgBreakPoint(VOID)
struct _FILE_COMPLETION_INFORMATION FILE_COMPLETION_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtExtendSection(IN HANDLE SectionHandle, IN OUT PLARGE_INTEGER SectionSize)
NTSYSAPI NTSTATUS NTAPI NtQueryInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass)
struct _FILE_STANDARD_INFORMATION FILE_STANDARD_INFORMATION
struct _SYSTEM_FLAGS_INFORMATION SYSTEM_FLAGS_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtReadVirtualMemory(IN HANDLE ProcessHandle, IN PVOID BaseAddress, OUT PVOID Buffer, IN ULONG NumberOfBytesToRead, OUT PULONG NumberOfBytesRead OPTIONAL)
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInformationClass, OUT PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength)
NTSYSAPI HANDLE NTAPI RtlCreateHeap(IN ULONG Flags, IN PVOID BaseAddress OPTIONAL, IN ULONG SizeToReserve, IN ULONG SizeToCommit, IN BOOLEAN Lock OPTIONAL, IN PRTL_HEAP_PARAMETERS Definition OPTIONAL)
struct _TEB TEB
NTSYSAPI NTSTATUS NTAPI NtClearEvent(IN HANDLE Handle)
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(IN OUT PUNICODE_STRING Destination, IN PUNICODE_STRING Source)
struct _FILE_EA_INFORMATION FILE_EA_INFORMATION
PSTRING POEM_STRING
Definition: ntddk.h:92
struct _RTL_SPLAY_LINKS RTL_SPLAY_LINKS
struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION * PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
struct _SYSTEM_PROCESS_INFORMATION * PSYSTEM_PROCESS_INFORMATION
NTSYSAPI BOOL NTAPI RtlTryEnterCriticalSection(IN PRTL_CRITICAL_SECTION CriticalSection)
struct _UNICODE_STRING UNICODE_STRING
struct _FILE_MAILSLOT_QUERY_INFORMATION * PFILE_MAILSLOT_QUERY_INFORMATION
struct _RTL_HANDLE_TABLE_ENTRY RTL_HANDLE_TABLE_ENTRY
struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
PVOID FirstStruct
Definition: ntddk.h:729
struct _SYSTEM_PERFORMANCE_INFORMATION SYSTEM_PERFORMANCE_INFORMATION
NTSYSAPI NTSTATUS NTAPI LdrLoadDll(IN PWSTR DllPath OPTIONAL, IN PULONG DllCharacteristics OPTIONAL, IN PUNICODE_STRING DllName, OUT PVOID *DllHandle)
struct _STRING STRING
NTSYSAPI BOOLEAN NTAPI RtlPrefixUnicodeString(IN PUNICODE_STRING String1, IN PUNICODE_STRING String2, IN BOOLEAN CaseInSensitive)
NTSYSAPI NTSTATUS NTAPI NtCompareTokens(IN HANDLE FirstTokenHandle, IN HANDLE SecondTokenHandle, OUT PBOOLEAN IdenticalTokens)
NTSYSAPI NTSTATUS NTAPI NtSetInformationProcess(IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, IN PVOID ProcessInformation, IN ULONG ProcessInformationLength)
enum _FSINFOCLASS FS_INFORMATION_CLASS
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(IN PRTL_CRITICAL_SECTION CriticalSection)
struct _FILE_DIRECTORY_INFORMATION * PFILE_DIRECTORY_INFORMATION
struct _FILE_PIPE_INFORMATION * PFILE_PIPE_INFORMATION
struct _FILE_BOTH_DIR_INFORMATION FILE_BOTH_DIR_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwCreateEvent(OUT PHANDLE EventHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN EVENT_TYPE EventType, IN BOOLEAN InitialState)
struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE
struct _FILE_DISPOSITION_INFORMATION * PFILE_DISPOSITION_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtOpenDirectoryObject(OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
struct _FILE_MODE_INFORMATION * PFILE_MODE_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwOpenFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions)
STRING ANSI_STRING
Definition: ntddk.h:88
struct _KEY_FULL_INFORMATION * PKEY_FULL_INFORMATION
struct _FILE_STREAM_INFORMATION FILE_STREAM_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwClose(IN HANDLE Handle)
struct _OBJECT_TYPE_INFORMATION OBJECT_TYPE_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtOpenSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI RtlQueryEnvironmentVariable_U(PVOID Environment, PUNICODE_STRING Name, PUNICODE_STRING Value)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(OUT PUNICODE_STRING DestinationString, IN PANSI_STRING SourceString, IN BOOLEAN AllocateDestinationString)
struct _FILE_POSITION_INFORMATION * PFILE_POSITION_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtCreateKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(IN PUNICODE_STRING String1, IN PUNICODE_STRING String2, IN BOOLEAN CaseInSensitive)
NTSYSAPI NTSTATUS NTAPI ZwQueryVolumeInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FsInformation, IN ULONG Length, IN FS_INFORMATION_CLASS FsInformationClass)
NTSYSAPI NTSTATUS NTAPI NtReadFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL)
NTSYSAPI BOOLEAN NTAPI RtlEqualSid(IN PSID Sid1, IN PSID Sid2)
struct _PEB_FREE_BLOCK PEB_FREE_BLOCK
struct _FILE_ID_FULL_DIR_INFORMATION * PFILE_ID_FULL_DIR_INFORMATION
_SYSTEM_INFORMATION_CLASS
Definition: ntddk.h:1243
@ SystemKernelDebuggerInformation
Definition: ntddk.h:1279
@ SystemTimeOfDayInformation
Definition: ntddk.h:1247
@ SystemProcessorInformation
Definition: ntddk.h:1245
@ SystemModuleInformation
Definition: ntddk.h:1255
@ SystemExceptionInformation
Definition: ntddk.h:1277
@ SystemBasicInformation
Definition: ntddk.h:1244
@ SystemDpcBehaviorInformation
Definition: ntddk.h:1268
@ SystemPathInformation
Definition: ntddk.h:1248
@ SystemVdmInstemulInformation
Definition: ntddk.h:1263
@ SystemRegistryQuotaInformation
Definition: ntddk.h:1281
@ SystemExtendServiceTableInformation
Definition: ntddk.h:1282
@ SystemNonPagedPoolInformation
Definition: ntddk.h:1259
@ SystemCrashDumpInformation
Definition: ntddk.h:1276
@ SystemInterruptInformation
Definition: ntddk.h:1267
@ SystemNextEventIdInformation
Definition: ntddk.h:1274
@ SystemUnloadGdiDriverInformation
Definition: ntddk.h:1271
@ SystemFileCacheInformation
Definition: ntddk.h:1265
@ SystemLocksInformation
Definition: ntddk.h:1256
@ SystemHandleInformation
Definition: ntddk.h:1260
@ SystemProcessInformation
Definition: ntddk.h:1249
@ SystemVdmBopInformation
Definition: ntddk.h:1264
@ SystemEventIdsInformation
Definition: ntddk.h:1275
@ SystemCallTimeInformation
Definition: ntddk.h:1254
@ SystemContextSwitchInformation
Definition: ntddk.h:1280
@ SystemTimeAdjustmentInformation
Definition: ntddk.h:1272
@ SystemFullMemoryInformation
Definition: ntddk.h:1269
@ SystemPrioritySeperation
Definition: ntddk.h:1283
@ SystemPageFileInformation
Definition: ntddk.h:1262
@ SystemPerformanceInformation
Definition: ntddk.h:1246
@ SystemStackTraceInformation
Definition: ntddk.h:1257
@ SystemPlugPlayBusInformation
Definition: ntddk.h:1284
@ SystemObjectInformation
Definition: ntddk.h:1261
@ SystemFlagsInformation
Definition: ntddk.h:1253
@ SystemLoadGdiDriverInformation
Definition: ntddk.h:1270
@ SystemDeviceInformation
Definition: ntddk.h:1251
@ SystemSummaryMemoryInformation
Definition: ntddk.h:1273
@ SystemPagedPoolInformation
Definition: ntddk.h:1258
@ SystemCrashDumpStateInformation
Definition: ntddk.h:1278
@ SystemProcessorPerformanceInformation
Definition: ntddk.h:1252
@ SystemCallCountInformation
Definition: ntddk.h:1250
@ SystemPoolTagInformation
Definition: ntddk.h:1266
@ SystemDockInformation
Definition: ntddk.h:1285
NTSYSAPI NTSTATUS NTAPI ZwWriteFile(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL)
struct _PEB_FREE_BLOCK * PPEB_FREE_BLOCK
_RTL_GENERIC_COMPARE_RESULTS
Definition: ntddk.h:708
@ GenericLessThan
Definition: ntddk.h:709
@ GenericEqual
Definition: ntddk.h:711
@ GenericGreaterThan
Definition: ntddk.h:710
NTSYSAPI ULONG _cdecl DbgPrint(PCH Format,...)
struct _FILE_ALL_INFORMATION FILE_ALL_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwOpenEvent(OUT PHANDLE EventHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI NtWaitForSingleObject(IN HANDLE Handle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
struct _FILE_FULL_EA_INFORMATION FILE_FULL_EA_INFORMATION
_SECTION_INFORMATION_CLASS
Definition: ntddk.h:3541
@ SectionBasicInformation
Definition: ntddk.h:3542
@ SectionImageInformation
Definition: ntddk.h:3543
NTSYSAPI VOID NTAPI RtlGetCallersAddress(OUT PVOID *CallersAddress, OUT PVOID *CallersCaller)
struct _FILE_INTERNAL_INFORMATION * PFILE_INTERNAL_INFORMATION
struct _FILE_FULL_DIR_INFORMATION * PFILE_FULL_DIR_INFORMATION
struct _FILE_PIPE_LOCAL_INFORMATION * PFILE_PIPE_LOCAL_INFORMATION
LONG KPRIORITY
Definition: ntddk.h:1297
struct _CURDIR CURDIR
NTSYSAPI PVOID NTAPI RtlInsertElementGenericTable(IN PRTL_GENERIC_TABLE Table, IN PVOID Buffer, IN LONG BufferSize, OUT PBOOLEAN NewElement OPTIONAL)
struct _KEY_FLAGS_INFORMATION * PKEY_FLAGS_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwUnmapViewOfSection(IN HANDLE ProcessHandle, IN PVOID BaseAddress)
struct _FILE_TRACKING_INFORMATION * PFILE_TRACKING_INFORMATION
NTSYSAPI PVOID NTAPI RtlImageDirectoryEntryToData(IN PVOID Base, IN BOOLEAN MappedAsImage, IN USHORT DirectoryEntry, OUT PULONG Size)
NTSYSAPI NTSTATUS NTAPI NtShutdownSystem(IN SHUTDOWN_ACTION Action)
NTSYSAPI NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
struct _OBJECT_BASIC_INFORMATION * POBJECT_BASIC_INFORMATION
struct _EVENT_BASIC_INFORMATION * PEVENT_BASIC_INFORMATION
NTSYSAPI PVOID NTAPI RtlReAllocateHeap(IN HANDLE HeapHandle, IN ULONG Flags, IN PVOID Address, IN ULONG Size)
enum _SYSTEM_INFORMATION_CLASS SYSTEM_INFORMATION_CLASS
NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength)
NTSYSAPI NTSTATUS NTAPI NtCompleteConnectPort(IN HANDLE PortHandle)
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN ULONG Revision)
struct _SYSTEM_FLAGS_INFORMATION * PSYSTEM_FLAGS_INFORMATION
struct _SYSTEM_PROCESS_INFORMATION SYSTEM_PROCESS_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlIntegerToUnicodeString(IN ULONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String)
NTSYSAPI NTSTATUS NTAPI NtQueryDirectoryObject(IN HANDLE DirectoryHandle, OUT PVOID Buffer, IN ULONG Length, IN BOOLEAN ReturnSingleEntry, IN BOOLEAN RestartScan, IN OUT PULONG Context, OUT PULONG ReturnLength OPTIONAL)
NTSYSAPI NTSTATUS NTAPI ZwDeleteFile(IN POBJECT_ATTRIBUTES ObjectAttributes)
struct _PEB PEB
struct _RTL_DRIVE_LETTER_CURDIR * PRTL_DRIVE_LETTER_CURDIR
NTSYSAPI NTSTATUS NTAPI LdrFindEntryForAddress(IN PVOID Address, OUT PLDR_DATA_TABLE_ENTRY *Module)
NTSYSAPI NTSTATUS NTAPI ZwSetInformationFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass)
struct _SYSTEM_PROCESSOR_INFORMATION SYSTEM_PROCESSOR_INFORMATION
struct _OBJECT_DIRECTORY_INFORMATION * POBJECT_DIRECTORY_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwConnectPort(OUT PHANDLE PortHandle, IN PUNICODE_STRING PortName, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos, IN OUT PPORT_VIEW ClientView OPTIONAL, OUT PREMOTE_PORT_VIEW ServerView OPTIONAL, OUT PULONG MaxMessageLength OPTIONAL, IN OUT PVOID ConnectionInformation OPTIONAL, IN OUT PULONG ConnectionInformationLength OPTIONAL)
struct _FILE_NAMES_INFORMATION FILE_NAMES_INFORMATION
struct _KEY_VALUE_FULL_INFORMATION * PKEY_VALUE_FULL_INFORMATION
struct _PROCESS_BASIC_INFORMATION PROCESS_BASIC_INFORMATION
struct _FILE_MAILSLOT_SET_INFORMATION FILE_MAILSLOT_SET_INFORMATION
struct _PEB_LDR_DATA PEB_LDR_DATA
struct _SYSTEM_DEVICE_INFORMATION SYSTEM_DEVICE_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtWaitForMultipleObjects(IN ULONG Count, IN HANDLE Handle[], IN WAIT_TYPE WaitType, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
struct _CLIENT_ID * PCLIENT_ID
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger(IN PUNICODE_STRING String, IN ULONG Base OPTIONAL, OUT PULONG Value)
struct _FILE_DIRECTORY_INFORMATION FILE_DIRECTORY_INFORMATION
NTSYSAPI NTSTATUS NTAPI RtlStringFromGUID(IN REFGUID Guid, OUT PUNICODE_STRING GuidString)
struct _FILE_END_OF_FILE_INFORMATION FILE_END_OF_FILE_INFORMATION
enum _WAIT_TYPE WAIT_TYPE
NTSYSAPI NTSTATUS NTAPI NtSetEaFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID Buffer, IN ULONG Length)
_LPC_TYPE
Definition: ntddk.h:2904
@ LPC_LOST_REPLY
Definition: ntddk.h:2909
@ LPC_EXCEPTION
Definition: ntddk.h:2912
@ LPC_ERROR_EVENT
Definition: ntddk.h:2914
@ LPC_DEBUG_EVENT
Definition: ntddk.h:2913
@ LPC_CLIENT_DIED
Definition: ntddk.h:2911
@ LPC_REQUEST
Definition: ntddk.h:2906
@ LPC_DATAGRAM
Definition: ntddk.h:2908
@ LPC_REPLY
Definition: ntddk.h:2907
@ LPC_PORT_CLOSED
Definition: ntddk.h:2910
@ LPC_CONNECTION_REQUEST
Definition: ntddk.h:2915
@ LPC_NEW_MESSAGE
Definition: ntddk.h:2905
NTSYSAPI NTSTATUS NTAPI NtReplyWaitReceivePort(IN HANDLE PortHandle, OUT PVOID *PortContext OPTIONAL, IN PPORT_MESSAGE ReplyMessage OPTIONAL, OUT PPORT_MESSAGE ReceiveMessage)
enum _RTL_GENERIC_COMPARE_RESULTS RTL_GENERIC_COMPARE_RESULTS
struct _FILE_PIPE_REMOTE_INFORMATION FILE_PIPE_REMOTE_INFORMATION
PSTRING PANSI_STRING
Definition: ntddk.h:89
enum _LPC_TYPE LPC_TYPE
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(OUT PUNICODE_STRING Destination, IN PCSTR Source)
NTSYSAPI VOID NTAPI RtlFreeAnsiString(IN PANSI_STRING AnsiString)
NTSYSAPI NTSTATUS NTAPI NtOpenSymbolicLinkObject(OUT PHANDLE SymbolicLinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
const UNICODE_STRING * PCUNICODE_STRING
Definition: ntddk.h:95
HANDLE UniqueThread
Definition: ntddk.h:153
HANDLE UniqueProcess
Definition: ntddk.h:152
Definition: ntddk.h:163
HANDLE Handle
Definition: ntddk.h:165
UNICODE_STRING DosPath
Definition: ntddk.h:164
EVENT_TYPE EventType
Definition: ntddk.h:3815
ACCESS_MASK AccessFlags
Definition: ntddk.h:1866
FILE_MODE_INFORMATION ModeInformation
Definition: ntddk.h:1928
FILE_STANDARD_INFORMATION StandardInformation
Definition: ntddk.h:1923
FILE_EA_INFORMATION EaInformation
Definition: ntddk.h:1925
FILE_INTERNAL_INFORMATION InternalInformation
Definition: ntddk.h:1924
FILE_ALIGNMENT_INFORMATION AlignmentInformation
Definition: ntddk.h:1929
FILE_NAME_INFORMATION NameInformation
Definition: ntddk.h:1930
FILE_ACCESS_INFORMATION AccessInformation
Definition: ntddk.h:1926
FILE_POSITION_INFORMATION PositionInformation
Definition: ntddk.h:1927
FILE_BASIC_INFORMATION BasicInformation
Definition: ntddk.h:1922
LARGE_INTEGER AllocationSize
Definition: ntddk.h:1935
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:1840
LARGE_INTEGER CreationTime
Definition: ntddk.h:1838
LARGE_INTEGER ChangeTime
Definition: ntddk.h:1841
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:1839
LARGE_INTEGER CreationTime
Definition: ntddk.h:1822
LARGE_INTEGER AllocationSize
Definition: ntddk.h:1827
LARGE_INTEGER ChangeTime
Definition: ntddk.h:1825
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:1823
LARGE_INTEGER EndOfFile
Definition: ntddk.h:1826
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:1824
LARGE_INTEGER CompressedFileSize
Definition: ntddk.h:1993
LARGE_INTEGER ChangeTime
Definition: ntddk.h:1794
LARGE_INTEGER EndOfFile
Definition: ntddk.h:1795
LARGE_INTEGER CreationTime
Definition: ntddk.h:1791
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:1793
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:1792
LARGE_INTEGER AllocationSize
Definition: ntddk.h:1796
LARGE_INTEGER EndOfFile
Definition: ntddk.h:1940
LARGE_INTEGER ChangeTime
Definition: ntddk.h:1809
LARGE_INTEGER EndOfFile
Definition: ntddk.h:1810
LARGE_INTEGER CreationTime
Definition: ntddk.h:1806
LARGE_INTEGER AllocationSize
Definition: ntddk.h:1811
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:1807
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:1808
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:2085
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:2084
LARGE_INTEGER ChangeTime
Definition: ntddk.h:2086
LARGE_INTEGER AllocationSize
Definition: ntddk.h:2088
LARGE_INTEGER EndOfFile
Definition: ntddk.h:2087
LARGE_INTEGER CreationTime
Definition: ntddk.h:2083
LARGE_INTEGER EndOfFile
Definition: ntddk.h:2106
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:2103
LARGE_INTEGER ChangeTime
Definition: ntddk.h:2105
LARGE_INTEGER AllocationSize
Definition: ntddk.h:2107
LARGE_INTEGER CreationTime
Definition: ntddk.h:2102
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:2104
LARGE_INTEGER IndexNumber
Definition: ntddk.h:1856
BOOLEAN ReplaceIfExists
Definition: ntddk.h:2003
FILE_LINK_ENTRY_INFORMATION Entry
Definition: ntddk.h:2130
PLARGE_INTEGER ReadTimeout
Definition: ntddk.h:1988
LARGE_INTEGER AllocationSize
Definition: ntddk.h:2044
LARGE_INTEGER CreationTime
Definition: ntddk.h:2040
LARGE_INTEGER LastAccessTime
Definition: ntddk.h:2041
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:2042
LARGE_INTEGER ChangeTime
Definition: ntddk.h:2043
LARGE_INTEGER CollectDataTime
Definition: ntddk.h:1973
LARGE_INTEGER CurrentByteOffset
Definition: ntddk.h:1898
LARGE_INTEGER QuotaLimit
Definition: ntddk.h:2075
LARGE_INTEGER QuotaUsed
Definition: ntddk.h:2073
LARGE_INTEGER QuotaThreshold
Definition: ntddk.h:2074
LARGE_INTEGER ChangeTime
Definition: ntddk.h:2072
LARGE_INTEGER EndOfFile
Definition: ntddk.h:1848
LARGE_INTEGER AllocationSize
Definition: ntddk.h:1847
LARGE_INTEGER StreamSize
Definition: ntddk.h:1947
LARGE_INTEGER StreamAllocationSize
Definition: ntddk.h:1948
PVOID Pointer
Definition: ntddk.h:139
NTSTATUS Status
Definition: ntddk.h:138
ULONG_PTR Information
Definition: ntddk.h:142
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:962
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:1009
WCHAR Class[1]
Definition: ntddk.h:994
ULONG MaxValueNameLen
Definition: ntddk.h:992
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:984
ULONG MaxValueDataLen
Definition: ntddk.h:993
LARGE_INTEGER LastWriteTime
Definition: ntddk.h:972
UNICODE_STRING FullDllName
Definition: ntddk.h:2678
LIST_ENTRY InLoadOrderLinks
Definition: ntddk.h:2672
LIST_ENTRY InInitializationOrderLinks
Definition: ntddk.h:2674
LIST_ENTRY InMemoryOrderLinks
Definition: ntddk.h:2673
PVOID EntryPointActivationContext
Definition: ntddk.h:2688
LIST_ENTRY HashLinks
Definition: ntddk.h:2683
UNICODE_STRING BaseDllName
Definition: ntddk.h:2679
PVOID PatchInformation
Definition: ntddk.h:2689
ULONG Attributes
Definition: ntddk.h:123
HANDLE RootDirectory
Definition: ntddk.h:121
PVOID SecurityQualityOfService
Definition: ntddk.h:125
PUNICODE_STRING ObjectName
Definition: ntddk.h:122
PVOID SecurityDescriptor
Definition: ntddk.h:124
LARGE_INTEGER CreationTime
Definition: ntddk.h:559
ACCESS_MASK GrantedAccess
Definition: ntddk.h:550
ULONG SecurityDescriptorSize
Definition: ntddk.h:558
UNICODE_STRING TypeName
Definition: ntddk.h:614
UNICODE_STRING Name
Definition: ntddk.h:613
UNICODE_STRING Name
Definition: ntddk.h:567
ULONG DefaultPagedPoolCharge
Definition: ntddk.h:594
ULONG DefaultNonPagedPoolCharge
Definition: ntddk.h:595
POOL_TYPE PoolType
Definition: ntddk.h:593
BOOLEAN SecurityRequired
Definition: ntddk.h:591
ULONG TotalNumberOfObjects
Definition: ntddk.h:576
ULONG HighWaterNumberOfHandles
Definition: ntddk.h:583
ULONG TotalHandleTableUsage
Definition: ntddk.h:581
ULONG HighWaterNonPagedPoolUsage
Definition: ntddk.h:585
ULONG HighWaterNumberOfObjects
Definition: ntddk.h:582
ULONG HighWaterHandleTableUsage
Definition: ntddk.h:587
ULONG TotalNumberOfHandles
Definition: ntddk.h:577
BOOLEAN MaintainHandleCount
Definition: ntddk.h:592
ULONG HighWaterPagedPoolUsage
Definition: ntddk.h:584
UNICODE_STRING TypeName
Definition: ntddk.h:575
ULONG TotalNonPagedPoolUsage
Definition: ntddk.h:579
ULONG HighWaterNamePoolUsage
Definition: ntddk.h:586
GENERIC_MAPPING GenericMapping
Definition: ntddk.h:589
struct _PEB_FREE_BLOCK * Next
Definition: ntddk.h:2651
ULONG Size
Definition: ntddk.h:2652
PVOID EntryInProgress
Definition: ntddk.h:2665
HANDLE SsHandle
Definition: ntddk.h:2661
LIST_ENTRY InInitializationOrderModuleList
Definition: ntddk.h:2664
LIST_ENTRY InMemoryOrderModuleList
Definition: ntddk.h:2663
ULONG Length
Definition: ntddk.h:2659
LIST_ENTRY InLoadOrderModuleList
Definition: ntddk.h:2662
BOOLEAN Initialized
Definition: ntddk.h:2660
Definition: ntddk.h:2698
PVOID * ProcessHeaps
Definition: ntddk.h:2762
USHORT OSBuildNumber
Definition: ntddk.h:2779
ULONG CrossProcessFlags
Definition: ntddk.h:2715
PSLIST_HEADER AtlThunkSListPtr
Definition: ntddk.h:2713
DWORD TlsBitmapBits[2]
Definition: ntddk.h:2727
PVOID GdiHandleBuffer[GDI_HANDLE_BUFFER_SIZE]
Definition: ntddk.h:2787
PRTL_CRITICAL_SECTION LoaderLock
Definition: ntddk.h:2769
PVOID SubSystemData
Definition: ntddk.h:2709
BOOLEAN ReadImageFileExecOptions
Definition: ntddk.h:2700
PPEB_LDR_DATA Ldr
Definition: ntddk.h:2707
PVOID ProcessStarterHelper
Definition: ntddk.h:2767
PVOID SharedData
Definition: ntddk.h:2730
DWORD OSMinorVersion
Definition: ntddk.h:2778
ULONG NumberOfProcessors
Definition: ntddk.h:2739
PVOID * ReadOnlyStaticServerData
Definition: ntddk.h:2731
USHORT OSCSDVersion
Definition: ntddk.h:2780
PVOID ImageSubsystemMinorVersion
Definition: ntddk.h:2785
PVOID ImageBaseAddress
Definition: ntddk.h:2706
PVOID KernelCallbackTable
Definition: ntddk.h:2717
PVOID TlsBitmap
Definition: ntddk.h:2726
DWORD SystemReserved
Definition: ntddk.h:2721
DWORD OSPlatformId
Definition: ntddk.h:2781
DWORD ImageSubsystemMajorVersion
Definition: ntddk.h:2783
PVOID ApiSetMap
Definition: ntddk.h:2723
PVOID ImageProcessAffinityMask
Definition: ntddk.h:2786
LARGE_INTEGER CriticalSectionTimeout
Definition: ntddk.h:2746
PVOID HeapSegmentCommit
Definition: ntddk.h:2748
PVOID HeapDeCommitTotalFreeThreshold
Definition: ntddk.h:2749
DWORD NumberOfHeaps
Definition: ntddk.h:2760
PVOID GdiSharedHandleTable
Definition: ntddk.h:2766
BOOLEAN BitField
Definition: ntddk.h:2702
PVOID ReadOnlySharedMemoryBase
Definition: ntddk.h:2729
DWORD ImageSubsystem
Definition: ntddk.h:2782
PVOID ProcessHeap
Definition: ntddk.h:2710
PRTL_USER_PROCESS_PARAMETERS ProcessParameters
Definition: ntddk.h:2708
PVOID TlsExpansionCounter
Definition: ntddk.h:2725
PVOID HeapDeCommitFreeBlockThreshold
Definition: ntddk.h:2750
PVOID GdiDCAttributeList
Definition: ntddk.h:2768
PVOID AnsiCodePageData
Definition: ntddk.h:2732
BOOLEAN BeingDebugged
Definition: ntddk.h:2701
PRTL_CRITICAL_SECTION FastPebLock
Definition: ntddk.h:2711
HANDLE Mutant
Definition: ntddk.h:2704
DWORD AtlThunkSListPtr32
Definition: ntddk.h:2722
DWORD OSMajorVersion
Definition: ntddk.h:2777
PVOID IFEOKey
Definition: ntddk.h:2714
PVOID HeapSegmentReserve
Definition: ntddk.h:2747
PVOID OemCodePageData
Definition: ntddk.h:2733
ULONG NtGlobalFlag
Definition: ntddk.h:2740
DWORD MaximumNumberOfHeaps
Definition: ntddk.h:2761
BOOLEAN InheritedAddressSpace
Definition: ntddk.h:2699
PVOID UserSharedInfoPtr
Definition: ntddk.h:2718
PVOID UnicodeCaseTableData
Definition: ntddk.h:2734
USHORT VirtualRangesOffset
Definition: ntddk.h:2928
USHORT TotalLength
Definition: ntddk.h:2926
USHORT Type
Definition: ntddk.h:2927
ULONG CallbackId
Definition: ntddk.h:2933
CLIENT_ID ClientId
Definition: ntddk.h:2929
ULONG MessageId
Definition: ntddk.h:2930
USHORT DataLength
Definition: ntddk.h:2925
ULONG ClientViewSize
Definition: ntddk.h:2934
ULONG ViewSize
Definition: ntddk.h:2951
PVOID ViewBase
Definition: ntddk.h:2952
PVOID ViewRemoteBase
Definition: ntddk.h:2954
ULONG Length
Definition: ntddk.h:2945
ULONG SectionOffset
Definition: ntddk.h:2948
HANDLE SectionHandle
Definition: ntddk.h:2946
ULONG_PTR InheritedFromUniqueProcessId
Definition: ntddk.h:2821
ULONG_PTR UniqueProcessId
Definition: ntddk.h:2820
ULONG ViewSize
Definition: ntddk.h:2965
PVOID ViewBase
Definition: ntddk.h:2966
ULONG WhichOrderedElement
Definition: ntddk.h:752
PLIST_ENTRY OrderedPointer
Definition: ntddk.h:751
PRTL_GENERIC_FREE_ROUTINE FreeRoutine
Definition: ntddk.h:756
LIST_ENTRY InsertOrderList
Definition: ntddk.h:750
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine
Definition: ntddk.h:755
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine
Definition: ntddk.h:754
PVOID TableContext
Definition: ntddk.h:757
PRTL_SPLAY_LINKS TableRoot
Definition: ntddk.h:749
ULONG NumberGenericTableElements
Definition: ntddk.h:753
struct _RTL_HANDLE_TABLE_ENTRY * Next
Definition: ntddk.h:763
PRTL_HANDLE_TABLE_ENTRY UnCommittedHandles
Definition: ntddk.h:777
PRTL_HANDLE_TABLE_ENTRY FreeHandles
Definition: ntddk.h:775
ULONG Unknown02
Definition: ntddk.h:774
ULONG Unknown01
Definition: ntddk.h:773
PRTL_HANDLE_TABLE_ENTRY CommittedHandles
Definition: ntddk.h:776
ULONG MaximumNumberOfHandles
Definition: ntddk.h:771
PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles
Definition: ntddk.h:778
ULONG SizeOfHandleTableEntry
Definition: ntddk.h:772
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine
Definition: ntddk.h:1216
struct _RTL_SPLAY_LINKS * LeftChild
Definition: ntddk.h:718
struct _RTL_SPLAY_LINKS * Parent
Definition: ntddk.h:717
struct _RTL_SPLAY_LINKS * RightChild
Definition: ntddk.h:719
UNICODE_STRING RuntimeData
Definition: ntddk.h:2640
UNICODE_STRING CommandLine
Definition: ntddk.h:2626
UNICODE_STRING DllPath
Definition: ntddk.h:2624
UNICODE_STRING ImagePathName
Definition: ntddk.h:2625
RTL_DRIVE_LETTER_CURDIR CurrentDirectores[0x20]
Definition: ntddk.h:2641
UNICODE_STRING WindowTitle
Definition: ntddk.h:2637
UNICODE_STRING ShellInfo
Definition: ntddk.h:2639
UNICODE_STRING DesktopInfo
Definition: ntddk.h:2638
Definition: ntddk.h:67
USHORT Length
Definition: ntddk.h:68
USHORT MaximumLength
Definition: ntddk.h:69
PCHAR Buffer
Definition: ntddk.h:70
ULONG LowestPhysicalPageNumber
Definition: ntddk.h:1309
ULONG HighestPhysicalPageNumber
Definition: ntddk.h:1310
KAFFINITY ActiveProcessorsAffinityMask
Definition: ntddk.h:1314
SYSTEM_MODULE Modules[1]
Definition: ntddk.h:1512
USHORT Index
Definition: ntddk.h:1500
PVOID Base
Definition: ntddk.h:1497
ULONG Size
Definition: ntddk.h:1498
USHORT LoadCount
Definition: ntddk.h:1502
ULONG Flags
Definition: ntddk.h:1499
CHAR ImageName[256]
Definition: ntddk.h:1504
USHORT ModuleNameOffset
Definition: ntddk.h:1503
ULONG Reserved1
Definition: ntddk.h:1495
USHORT Unknown
Definition: ntddk.h:1501
ULONG Reserved2
Definition: ntddk.h:1496
LARGE_INTEGER IoOtherTransferCount
Definition: ntddk.h:1340
LARGE_INTEGER IoWriteTransferCount
Definition: ntddk.h:1339
LARGE_INTEGER IdleProcessTime
Definition: ntddk.h:1337
LARGE_INTEGER IoReadTransferCount
Definition: ntddk.h:1338
LARGE_INTEGER UserTime
Definition: ntddk.h:1438
UNICODE_STRING ImageName
Definition: ntddk.h:1440
LARGE_INTEGER SpareLi1
Definition: ntddk.h:1434
ULONG_PTR InheritedFromUniqueProcessId
Definition: ntddk.h:1443
LARGE_INTEGER SpareLi2
Definition: ntddk.h:1435
LARGE_INTEGER CreateTime
Definition: ntddk.h:1437
LARGE_INTEGER KernelTime
Definition: ntddk.h:1439
LARGE_INTEGER SpareLi3
Definition: ntddk.h:1436
LARGE_INTEGER TimeZoneBias
Definition: ntddk.h:1421
LARGE_INTEGER BootTime
Definition: ntddk.h:1419
LARGE_INTEGER CurrentTime
Definition: ntddk.h:1420
Definition: ntddk.h:2798
PVOID EnvironmentPointer
Definition: ntddk.h:2800
PVOID Win32ThreadInfo
Definition: ntddk.h:2808
ULONG CountOfOwnedCriticalSections
Definition: ntddk.h:2806
NT_TIB NtTib
Definition: ntddk.h:2799
PVOID ActiveRpcHandle
Definition: ntddk.h:2802
PVOID ThreadLocalStoragePointer
Definition: ntddk.h:2803
CLIENT_ID ClientId
Definition: ntddk.h:2801
PPEB ProcessEnvironmentBlock
Definition: ntddk.h:2804
ULONG LastErrorValue
Definition: ntddk.h:2805
PVOID CsrClientThread
Definition: ntddk.h:2807
USHORT Length
Definition: ntddk.h:81
USHORT MaximumLength
Definition: ntddk.h:82
PWSTR Buffer
Definition: ntddk.h:83
ULONG SegmentCommit
Definition: ntddk.h:3342
ULONG VirtualMemoryThreshold
Definition: ntddk.h:3346
ULONG SegmentReserve
Definition: ntddk.h:3341
ULONG InitialReserve
Definition: ntddk.h:3348
ULONG InitialCommit
Definition: ntddk.h:3347
ULONG DeCommitFreeBlockThreshold
Definition: ntddk.h:3343
ULONG MaximumAllocationSize
Definition: ntddk.h:3345
PVOID CommitRoutine
Definition: ntddk.h:3349
ULONG DeCommitTotalFreeThreshold
Definition: ntddk.h:3344