ReactOS  0.4.12-dev-90-g2e2e63e
arc.h
Go to the documentation of this file.
1 #ifndef _ARC_
2 #define _ARC_
3 
4 typedef ULONG ARC_STATUS;
5 
6 /* Avoid conflicts with errno.h */
7 #undef E2BIG
8 #undef EACCES
9 #undef EAGAIN
10 #undef EBADF
11 #undef EBUSY
12 #undef EFAULT
13 #undef EINVAL
14 #undef EIO
15 #undef EISDIR
16 #undef EMFILE
17 #undef EMLINK
18 #undef ENAMETOOLONG
19 #undef ENODEV
20 #undef ENOENT
21 #undef ENOEXEC
22 #undef ENOMEM
23 #undef ENOSPC
24 #undef ENOTDIR
25 #undef ENOTTY
26 #undef ENXIO
27 #undef EROFS
28 #undef EMAXIMUM
29 
30 typedef enum _ARC_CODES
31 {
40  EIO,
55 } ARC_CODES;
56 
57 typedef enum _SEEKMODE
58 {
61 } SEEKMODE;
62 
63 typedef enum _OPENMODE
64 {
75 } OPENMODE;
76 
77 typedef enum _IDENTIFIER_FLAG
78 {
79  Failed = 0x01,
80  ReadOnly = 0x02,
81  Removable = 0x04,
82  ConsoleIn = 0x08,
83  ConsoleOut = 0x10,
84  Input = 0x20,
85  Output = 0x40
87 
89 {
99 
100 // enum CONFIGURATION_TYPE is defined in ntddk.h
101 
103 {
115 
117 {
124 
125 typedef enum _TYPE_OF_MEMORY
126 {
158 
159 typedef enum _MEMORY_TYPE
160 {
171 } MEMORY_TYPE;
172 
173 typedef struct _TIMEINFO
174 {
175  USHORT Year;
176  USHORT Month;
177  USHORT Day;
178  USHORT Hour;
179  USHORT Minute;
180  USHORT Second;
181 } TIMEINFO;
182 
183 typedef struct _MEMORY_DESCRIPTOR
184 {
189 
191 {
197 
199 {
205 
206 typedef struct _ARC_DISK_SIGNATURE
207 {
216  CHAR GptSignature[16];
218 
219 typedef struct _ARC_DISK_INFORMATION
220 {
223 
225 {
240 
242 {
245  CHAR Size[8];
249 
250 //
251 // SMBIOS Table Header (FIXME: maybe move to smbios.h?)
252 //
253 typedef struct _SMBIOS_TABLE_HEADER
254 {
263  CHAR Signature2[5];
270 
271 //
272 // NLS Data Block
273 //
274 typedef struct _NLS_DATA_BLOCK
275 {
280 
281 //
282 // ACPI Docking State
283 //
285 {
290 
291 //
292 // Subsystem Specific Loader Blocks
293 //
295 {
303 
305 {
323 
324 typedef struct _NETWORK_LOADER_BLOCK
325 {
331 
333 {
337 
338 //
339 // Extended Loader Parameter Block
340 //
341 // See http://www.geoffchappell.com/studies/windows/km/ntoskrnl/structs/loader_parameter_extension.htm
342 // for more details.
343 //
345 {
348  ULONG MajorVersion; /* Not anymore present starting NT 6.1 */
349  ULONG MinorVersion; /* Not anymore present starting NT 6.1 */
353  //
354  // NT 5.1
355  //
356  ULONG_PTR LoaderPagesSpanned; /* Not anymore present starting NT 6.2 */
357  PHEADLESS_LOADER_BLOCK HeadlessLoaderBlock;
358  PSMBIOS_TABLE_HEADER SMBiosEPSHeader;
361  PNETWORK_LOADER_BLOCK NetworkLoaderBlock;
362  //
363  // NT 5.2+
364  //
365 #ifdef _X86_
366  PUCHAR HalpIRQLToTPR;
367  PUCHAR HalpVectorToIRQL;
368 #endif
372  //
373  // NT 5.2 SP1+
374  //
379 /********************************/
380  PLOADER_PERFORMANCE_DATA LoaderPerformanceData;
384  //
385  // NT 6
386  //
390 
391 //
392 // Architecture specific Loader Parameter Blocks
393 //
394 typedef struct _IA64_LOADER_BLOCK
395 {
398 
399 typedef struct _ALPHA_LOADER_BLOCK
400 {
403 
404 typedef struct _I386_LOADER_BLOCK
405 {
410 
411 typedef struct _PPC_LOADER_BLOCK
412 {
416 
417 typedef struct _ARM_LOADER_BLOCK
418 {
419 #ifdef _ARM_
420  ULONG InterruptStack;
425  ULONG GpBase;
426  ULONG PanicStack;
427  ULONG PcrPage;
428  ULONG PdrPage;
433  ULONG PcrPage2;
434 #else
436 #endif
438 
439 //
440 // Firmware information block (NT6+)
441 //
442 
444 {
460 
462 {
464  PVIRTUAL_EFI_RUNTIME_SERVICES VirtualEfiRuntimeServices;
468 
470 {
473 
475 {
478  union
479  {
482  } u;
484 
485 //
486 // Loader Parameter Block
487 //
488 // See http://www.geoffchappell.com/studies/windows/km/ntoskrnl/structs/loader_parameter_block.htm
489 // for more details.
490 //
492 {
502  PCONFIGURATION_COMPONENT_DATA ConfigurationRoot;
508  PNLS_DATA_BLOCK NlsData;
509  PARC_DISK_INFORMATION ArcDiskInformation;
512  PLOADER_PARAMETER_EXTENSION Extension;
513  union
514  {
520  } u;
523 
524 typedef int CONFIGTYPE;
525 typedef struct tagFILEINFORMATION
526 {
535 
536 typedef
539  ULONG FileId
540 );
541 
542 typedef
545  ULONG FileId,
547 );
548 
549 typedef
552  CHAR* Path,
553  OPENMODE OpenMode,
554  ULONG* FileId
555 );
556 
557 typedef
560  ULONG FileId,
561  VOID* Buffer,
562  ULONG N, ULONG* Count
563 );
564 
565 typedef
568  ULONG FileId,
570  SEEKMODE SeekMode
571 );
572 
573 #endif
ULONG IdentifierLength
Definition: arc.h:112
IDENTIFIER_FLAG Flags
Definition: arc.h:106
struct _EFI_FIRMWARE_INFORMATION * PEFI_FIRMWARE_INFORMATION
signed char * PCHAR
Definition: retypes.h:7
LARGE_INTEGER StartingAddress
Definition: arc.h:527
struct _VIRTUAL_EFI_RUNTIME_SERVICES VIRTUAL_EFI_RUNTIME_SERVICES
struct _LOADER_PARAMETER_EXTENSION * PLOADER_PARAMETER_EXTENSION
MEMORY_TYPE MemoryType
Definition: arc.h:185
ULONG ConfigurationDataLength
Definition: arc.h:111
Definition: arc.h:33
struct tagFILEINFORMATION FILEINFORMATION
_OPENMODE
Definition: arc.h:63
PSTR ArcBootDeviceName
Definition: arc.h:503
struct _SMBIOS_TABLE_HEADER SMBIOS_TABLE_HEADER
Definition: arc.h:53
struct _VIRTUAL_EFI_RUNTIME_SERVICES * PVIRTUAL_EFI_RUNTIME_SERVICES
ULONG FirstLevelIcacheSize
Definition: macharm.c:25
struct _MEMORY_DESCRIPTOR MEMORY_DESCRIPTOR
UCHAR UsedBiosSettings
Definition: arc.h:306
USHORT StructureTableLength
Definition: arc.h:265
Definition: arc.h:32
struct _IA64_LOADER_BLOCK * PIA64_LOADER_BLOCK
Definition: arc.h:38
ARC_STATUS(* ARC_GET_FILE_INFORMATION)(ULONG FileId, FILEINFORMATION *Information)
Definition: arc.h:544
Definition: arc.h:164
PCHAR ArcName
Definition: arc.h:210
_SEEKMODE
Definition: arc.h:57
__wchar_t WCHAR
Definition: xmlstorage.h:180
USHORT MaximumStructureSize
Definition: arc.h:260
struct _PCAT_FIRMWARE_INFORMATION * PPCAT_FIRMWARE_INFORMATION
ULONGLONG EndTime
Definition: arc.h:335
WCHAR Second[]
Definition: FormatMessage.c:12
ULONG DHCPServerACKLength
Definition: arc.h:327
Definition: arc.h:80
USHORT HorizontalScreenSize
Definition: arc.h:237
Definition: arc.h:39
struct _EFI_FIRMWARE_INFORMATION EFI_FIRMWARE_INFORMATION
PLOADER_PARAMETER_EXTENSION Extension
Definition: arc.h:512
static COORD Position
Definition: mouse.c:34
unsigned char * PUCHAR
Definition: retypes.h:3
PCONFIGURATION_COMPONENT_DATA ConfigurationRoot
Definition: arc.h:502
Definition: arc.h:82
char CHAR
Definition: xmlstorage.h:175
UCHAR IntermediateChecksum
Definition: arc.h:264
Definition: arc.h:37
struct _PROFILE_ACPI_DOCKING_STATE PROFILE_ACPI_DOCKING_STATE
struct _PROFILE_PARAMETER_BLOCK * PPROFILE_PARAMETER_BLOCK
Definition: arc.h:52
LIST_ENTRY FirmwareDescriptorListHead
Definition: arc.h:369
Definition: arc.h:84
struct _LOADER_PARAMETER_BLOCK * PLOADER_PARAMETER_BLOCK
ULONG FirstLevelDcacheSize
Definition: macharm.c:23
ULONG_PTR QueryVariableInfo
Definition: arc.h:458
int CONFIGTYPE
Definition: arc.h:524
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
ULONG Signature
Definition: arc.h:209
ULONG ARC_STATUS
Definition: arc.h:4
struct _CONFIGURATION_COMPONENT_DATA * Parent
Definition: arc.h:118
struct _CONFIGURATION_COMPONENT * PCONFIGURATION_COMPONENT
GLenum GLclampf GLint GLenum GLuint GLenum GLenum GLsizei GLenum const GLvoid GLfloat GLfloat GLfloat GLfloat GLclampd GLint GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean GLboolean GLboolean GLboolean GLint GLenum GLsizei const GLvoid GLenum GLint GLenum GLint GLint GLsizei GLint GLenum GLint GLint GLint GLint GLsizei GLenum GLsizei const GLuint GLboolean GLenum GLenum GLint GLsizei GLenum GLsizei GLenum const GLvoid GLboolean const GLboolean GLenum const GLdouble * u
Definition: glfuncs.h:88
USHORT HorizontalBackPorch
Definition: arc.h:230
IA64_LOADER_BLOCK IA64
Definition: arc.h:517
ULONG SecondLevelDcacheSize
Definition: macharm.c:27
PSMBIOS_TABLE_HEADER SMBiosEPSHeader
Definition: arc.h:358
struct _ARC_DISK_INFORMATION * PARC_DISK_INFORMATION
UCHAR PciBusNumber
Definition: arc.h:315
struct _BOOT_DRIVER_LIST_ENTRY BOOT_DRIVER_LIST_ENTRY
Definition: arc.h:36
UNICODE_STRING FilePath
Definition: arc.h:201
ULONG_PTR Prcb
Definition: arc.h:497
USHORT NumberStructures
Definition: arc.h:267
PVOID AnsiCodePageData
Definition: arc.h:276
Definition: arc.h:48
Definition: arc.h:92
IN PVCB IN PBCB OUT PDIRENT IN USHORT IN POEM_STRING Filename
Definition: fatprocs.h:925
LIST_ENTRY BootApplicationPersistentData
Definition: arc.h:381
ALPHA_LOADER_BLOCK Alpha
Definition: arc.h:516
UCHAR EntryPointRevision
Definition: arc.h:261
struct _ARC_DISK_SIGNATURE * PARC_DISK_SIGNATURE
enum _TYPE_OF_MEMORY TYPE_OF_MEMORY
uint32_t ULONG_PTR
Definition: typedefs.h:63
Definition: arc.h:198
struct _FLOPPY_CONFIGURATION_DATA * PFLOPPY_CONFIGURATION_DATA
enum _ARC_CODES ARC_CODES
PVIRTUAL_EFI_RUNTIME_SERVICES VirtualEfiRuntimeServices
Definition: arc.h:464
ULONG_PTR Process
Definition: arc.h:498
ULONG PlaceHolder
Definition: arc.h:396
ULONG_PTR ConvertPointer
Definition: arc.h:450
TYPE_OF_MEMORY MemoryType
Definition: arc.h:193
ULONG_PTR Thread
Definition: arc.h:499
PUCHAR PortAddress
Definition: arc.h:312
struct _LOADER_PARAMETER_BLOCK LOADER_PARAMETER_BLOCK
USHORT PciVendorId
Definition: arc.h:314
struct _PROFILE_PARAMETER_BLOCK PROFILE_PARAMETER_BLOCK
struct _NETWORK_LOADER_BLOCK * PNETWORK_LOADER_BLOCK
ULONG PFN_NUMBER
Definition: ke.h:8
struct _SETUP_LOADER_BLOCK * SetupLdrBlock
Definition: arc.h:511
LARGE_INTEGER CurrentAddress
Definition: arc.h:529
Definition: fw.h:9
Definition: arc.h:130
Definition: bidi.c:97
ULONG_PTR GetNextHighMonotonicCount
Definition: arc.h:454
struct _CONFIGURATION_COMPONENT_DATA * Child
Definition: arc.h:119
ULONG PlaceHolder
Definition: arc.h:435
struct _MEMORY_ALLOCATION_DESCRIPTOR MEMORY_ALLOCATION_DESCRIPTOR
PLOADER_PERFORMANCE_DATA LoaderPerformanceData
Definition: arc.h:380
I386_LOADER_BLOCK I386
Definition: arc.h:515
CONFIGURATION_TYPE Type
Definition: arc.h:105
struct _NLS_DATA_BLOCK * PNLS_DATA_BLOCK
EFI_FIRMWARE_INFORMATION EfiInformation
Definition: arc.h:480
Definition: arc.h:49
unsigned char BOOLEAN
LARGE_INTEGER EndingAddress
Definition: arc.h:528
UCHAR Checksum
Definition: arc.h:256
USHORT HorizontalDisplayTime
Definition: arc.h:229
ULONG SecondLevelDcacheFillSize
Definition: macharm.c:28
Definition: arc.h:35
UCHAR TerminalType
Definition: arc.h:321
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
enum _SEEKMODE SEEKMODE
enum _IDENTIFIER_FLAG IDENTIFIER_FLAG
struct _PCAT_FIRMWARE_INFORMATION PCAT_FIRMWARE_INFORMATION
_IDENTIFIER_FLAG
Definition: arc.h:77
UCHAR Revision
Definition: arc.h:268
ULONG_PTR LoaderPagesSpanned
Definition: arc.h:356
USHORT HorizontalFrontPorch
Definition: arc.h:231
struct _HEADLESS_LOADER_BLOCK HEADLESS_LOADER_BLOCK
CONFIGTYPE Type
Definition: arc.h:530
struct _TIMEINFO TIMEINFO
ARC_STATUS(* ARC_OPEN)(CHAR *Path, OPENMODE OpenMode, ULONG *FileId)
Definition: arc.h:551
UCHAR MinorVersion
Definition: arc.h:259
PVOID OemCodePageData
Definition: arc.h:277
Definition: arc.h:79
struct _LOADER_PERFORMANCE_DATA * PLOADER_PERFORMANCE_DATA
ULONG FileNameLength
Definition: arc.h:531
Definition: arc.h:50
ULONG_PTR QueryCapsuleCapabilities
Definition: arc.h:457
struct _CONFIGURATION_COMPONENT CONFIGURATION_COMPONENT
USHORT HorizontalResolution
Definition: arc.h:228
struct _BOOT_DRIVER_LIST_ENTRY * PBOOT_DRIVER_LIST_ENTRY
ULONG MachineType
Definition: arc.h:407
struct _PROFILE_ACPI_DOCKING_STATE * PPROFILE_ACPI_DOCKING_STATE
LIST_ENTRY ListEntry
Definition: arc.h:208
struct _PPC_LOADER_BLOCK PPC_LOADER_BLOCK
PFN_NUMBER PageCount
Definition: arc.h:187
struct _LOADER_PERFORMANCE_DATA LOADER_PERFORMANCE_DATA
uint64_t ULONGLONG
Definition: typedefs.h:65
PHEADLESS_LOADER_BLOCK HeadlessLoaderBlock
Definition: arc.h:357
CONFIGURATION_CLASS Class
Definition: arc.h:104
ULONG MachineType
Definition: arc.h:414
Definition: arc.h:43
ULONG VirtualBias
Definition: arc.h:408
PARC_DISK_INFORMATION ArcDiskInformation
Definition: arc.h:509
LIST_ENTRY BootDriverListHead
Definition: arc.h:495
struct _I386_LOADER_BLOCK I386_LOADER_BLOCK
PPC_LOADER_BLOCK PowerPC
Definition: arc.h:518
PVOID BootInfo
Definition: arc.h:413
ARC_STATUS(* ARC_CLOSE)(ULONG FileId)
Definition: arc.h:538
UCHAR PciSlotNumber
Definition: arc.h:316
_ARC_CODES
Definition: arc.h:30
struct _ARM_LOADER_BLOCK * PARM_LOADER_BLOCK
USHORT PciDeviceId
Definition: arc.h:313
CONFIGURATION_COMPONENT ComponentEntry
Definition: arc.h:121
unsigned char UCHAR
Definition: xmlstorage.h:181
_TYPE_OF_MEMORY
Definition: arc.h:125
Definition: arc.h:34
enum _MEMORY_TYPE MEMORY_TYPE
Definition: arc.h:85
struct _MONITOR_CONFIGURATION_DATA * PMONITOR_CONFIGURATION_DATA
PCAT_FIRMWARE_INFORMATION PcatInformation
Definition: arc.h:481
PKPDR_PAGE PdrPage
Definition: winldr.c:78
PROFILE_PARAMETER_BLOCK Profile
Definition: arc.h:347
Definition: btrfs_drv.h:1801
CONFIGURATION_TYPE
Definition: iotypes.h:4036
ULONG SerialNumber
Definition: rxce.c:117
_MEMORY_TYPE
Definition: arc.h:159
struct _IA64_LOADER_BLOCK IA64_LOADER_BLOCK
Definition: typedefs.h:117
BOOLEAN ValidPartitionTable
Definition: arc.h:212
BOOLEAN IsGpt
Definition: arc.h:214
struct _NLS_DATA_BLOCK NLS_DATA_BLOCK
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
ULONG FirstLevelDcacheFillSize
Definition: macharm.c:24
BOOLEAN Reserved
Definition: arc.h:215
PVOID CommonDataArea
Definition: arc.h:406
LIST_ENTRY LoadOrderListHead
Definition: arc.h:493
struct _FIRMWARE_INFORMATION_LOADER_BLOCK * PFIRMWARE_INFORMATION_LOADER_BLOCK
Definition: arc.h:45
enum _CONFIGURATION_CLASS CONFIGURATION_CLASS
BOOLEAN xInt13
Definition: arc.h:213
struct _CONFIGURATION_COMPONENT_DATA * PCONFIGURATION_COMPONENT_DATA
ULONGLONG StartTime
Definition: arc.h:334
UNICODE_STRING RegistryPath
Definition: arc.h:202
PRTL_UNICODE_STRING_BUFFER Path
struct _CONFIGURATION_COMPONENT_DATA * Sibling
Definition: arc.h:120
ULONG PlaceHolder
Definition: arc.h:401
Definition: arc.h:83
unsigned short USHORT
Definition: pedump.c:61
struct _LDR_DATA_TABLE_ENTRY * LdrEntry
Definition: arc.h:203
LIST_ENTRY MemoryDescriptorListHead
Definition: arc.h:494
struct _FIRMWARE_INFORMATION_LOADER_BLOCK FIRMWARE_INFORMATION_LOADER_BLOCK
struct _MONITOR_CONFIGURATION_DATA MONITOR_CONFIGURATION_DATA
struct _PPC_LOADER_BLOCK * PPPC_LOADER_BLOCK
ULONG SecondLevelIcacheSize
Definition: macharm.c:29
signed char * PSTR
Definition: retypes.h:7
Definition: arc.h:42
FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation
Definition: arc.h:521
struct _FLOPPY_CONFIGURATION_DATA FLOPPY_CONFIGURATION_DATA
ULONG StructureTableAddress
Definition: arc.h:266
Definition: arc.h:46
ULONG MissedMappingsCount
Definition: arc.h:466
Definition: arc.h:40
Definition: arc.h:41
PNETWORK_LOADER_BLOCK NetworkLoaderBlock
Definition: arc.h:361
ULONG_PTR GetNextVariableName
Definition: arc.h:452
struct _ARC_DISK_INFORMATION ARC_DISK_INFORMATION
LIST_ENTRY Link
Definition: arc.h:200
PCHAR DHCPServerACK
Definition: arc.h:326
ARM_LOADER_BLOCK Arm
Definition: arc.h:519
LIST_ENTRY DiskSignatureListHead
Definition: arc.h:221
Definition: arc.h:51
unsigned int ULONG
Definition: retypes.h:1
Definition: arc.h:54
struct _ARC_DISK_SIGNATURE ARC_DISK_SIGNATURE
struct _ALPHA_LOADER_BLOCK ALPHA_LOADER_BLOCK
Definition: arc.h:47
ULONG BootServerReplyPacketLength
Definition: arc.h:329
_CONFIGURATION_CLASS
Definition: arc.h:88
ARC_STATUS(* ARC_READ)(ULONG FileId, VOID *Buffer, ULONG N, ULONG *Count)
Definition: arc.h:559
PNLS_DATA_BLOCK NlsData
Definition: arc.h:508
ULONG CheckSum
Definition: arc.h:211
ARC_STATUS(* ARC_SEEK)(ULONG FileId, LARGE_INTEGER *Position, SEEKMODE SeekMode)
Definition: arc.h:567
struct _ARM_LOADER_BLOCK ARM_LOADER_BLOCK
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
ULONG_PTR SetVirtualAddressMap
Definition: arc.h:449
struct _I386_LOADER_BLOCK * PI386_LOADER_BLOCK
UCHAR Attributes
Definition: arc.h:532
static const WCHAR Signature[]
Definition: parser.c:141
enum _OPENMODE OPENMODE
ULONG FirstLevelIcacheFillSize
Definition: macharm.c:26
struct _SMBIOS_TABLE_HEADER * PSMBIOS_TABLE_HEADER
PFN_NUMBER BasePage
Definition: arc.h:186
PVOID UnicodeCodePageData
Definition: arc.h:278
ULONG SetVirtualAddressMapStatus
Definition: arc.h:465
struct _NETWORK_LOADER_BLOCK NETWORK_LOADER_BLOCK
struct _ALPHA_LOADER_BLOCK * PALPHA_LOADER_BLOCK
struct _HEADLESS_LOADER_BLOCK * PHEADLESS_LOADER_BLOCK
PCHAR BootServerReplyPacket
Definition: arc.h:328
ULONG_PTR KernelStack
Definition: arc.h:496
struct _MEMORY_DESCRIPTOR * PMEMORY_DESCRIPTOR
Iosb Information
Definition: create.c:4377
struct _LOADER_PARAMETER_EXTENSION LOADER_PARAMETER_EXTENSION
Definition: arc.h:81
UCHAR MajorVersion
Definition: arc.h:258
ULONG SecondLevelIcacheFillSize
Definition: macharm.c:30
ULONG RegistryLength
Definition: arc.h:500
UCHAR PciFunctionNumber
Definition: arc.h:317
struct _CONFIGURATION_COMPONENT_DATA CONFIGURATION_COMPONENT_DATA
UCHAR IsMMIODevice
Definition: arc.h:320
struct _MEMORY_ALLOCATION_DESCRIPTOR * PMEMORY_ALLOCATION_DESCRIPTOR