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