ReactOS  r76032
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 {
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 {
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,
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
DWORD *typedef PVOID
Definition: winlogon.h:52
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
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
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
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
ARC_STATUS(* ARC_CLOSE)(ULONG FileId)
Definition: arc.h:538
ULONG ARC_STATUS
Definition: arc.h:4
USHORT Second
Definition: fw.h:16
struct _CONFIGURATION_COMPONENT_DATA * Parent
Definition: arc.h:118
struct _CONFIGURATION_COMPONENT * PCONFIGURATION_COMPONENT
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 _ACPI_EFI_FILE_HANDLE CHAR16 UINT64 OpenMode
Definition: acefiex.h:335
struct _BOOT_DRIVER_LIST_ENTRY BOOT_DRIVER_LIST_ENTRY
CHAR GptSignature[16]
Definition: arc.h:216
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
USHORT Month
Definition: fw.h:12
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
ARC_STATUS(* ARC_SEEK)(ULONG FileId, LARGE_INTEGER *Position, SEEKMODE SeekMode)
Definition: arc.h:567
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
CHAR Signature2[5]
Definition: arc.h:263
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
USHORT Minute
Definition: fw.h:15
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
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
ARC_STATUS(* ARC_OPEN)(CHAR *Path, OPENMODE OpenMode, ULONG *FileId)
Definition: arc.h:551
Definition: arc.h:49
Irp IoStatus Information
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
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
union _LOADER_PARAMETER_BLOCK::@3065 u
CONFIGTYPE Type
Definition: arc.h:530
struct _TIMEINFO TIMEINFO
UINTN Size
Definition: acefiex.h:555
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
unsigned char BOOLEAN
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
USHORT Year
Definition: fw.h:11
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
UCHAR PciSlotNumber
Definition: arc.h:316
UINTN VOID * Buffer
Definition: acefiex.h:370
_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:1710
CONFIGURATION_TYPE
Definition: iotypes.h:4004
_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
CHAR Filename[32]
Definition: arc.h:533
ULONG FirstLevelDcacheFillSize
Definition: macharm.c:24
BOOLEAN Reserved
Definition: arc.h:215
ULONG PVOID Reserved
Definition: ntimage.h:533
UINT64 Position
Definition: acefiex.h:384
PVOID CommonDataArea
Definition: arc.h:406
USHORT Hour
Definition: fw.h:14
LIST_ENTRY LoadOrderListHead
Definition: arc.h:493
CHAR Signature[4]
Definition: arc.h:255
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
ARC_STATUS(* ARC_GET_FILE_INFORMATION)(ULONG FileId, FILEINFORMATION *Information)
Definition: arc.h:544
struct _FLOPPY_CONFIGURATION_DATA FLOPPY_CONFIGURATION_DATA
ULONG StructureTableAddress
Definition: arc.h:266
Definition: arc.h:46
ULONG MissedMappingsCount
Definition: arc.h:466
union _FIRMWARE_INFORMATION_LOADER_BLOCK::@3064 u
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
PNLS_DATA_BLOCK NlsData
Definition: arc.h:508
USHORT Day
Definition: fw.h:13
ULONG CheckSum
Definition: arc.h:211
struct _ARM_LOADER_BLOCK ARM_LOADER_BLOCK
ULONG_PTR SetVirtualAddressMap
Definition: arc.h:449
struct _I386_LOADER_BLOCK * PI386_LOADER_BLOCK
UCHAR Attributes
Definition: arc.h:532
enum _OPENMODE OPENMODE
ULONG FirstLevelIcacheFillSize
Definition: macharm.c:26
ARC_STATUS(* ARC_READ)(ULONG FileId, VOID *Buffer, ULONG N, ULONG *Count)
Definition: arc.h:559
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
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