| 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 |
|