ReactOS  r74244
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 //
342 {
350  //
351  // NT 5.1
352  //
354  PHEADLESS_LOADER_BLOCK HeadlessLoaderBlock;
355  PSMBIOS_TABLE_HEADER SMBiosEPSHeader;
358  PNETWORK_LOADER_BLOCK NetworkLoaderBlock;
359  //
360  // NT 5.2+
361  //
367  //
368  // NT 5.2 SP1+
369  //
377  //
378  // NT 6
379  //
383 
384 //
385 // Architecture specific Loader Parameter Blocks
386 //
387 typedef struct _IA64_LOADER_BLOCK
388 {
391 
392 typedef struct _ALPHA_LOADER_BLOCK
393 {
396 
397 typedef struct _I386_LOADER_BLOCK
398 {
403 
404 typedef struct _PPC_LOADER_BLOCK
405 {
409 
410 typedef struct _ARM_LOADER_BLOCK
411 {
412 #ifdef _ARM_
413  ULONG InterruptStack;
418  ULONG GpBase;
419  ULONG PanicStack;
420  ULONG PcrPage;
421  ULONG PdrPage;
426  ULONG PcrPage2;
427 #else
429 #endif
431 
432 //
433 // Firmware information block (NT6+)
434 //
435 
437 {
453 
455 {
457  PVIRTUAL_EFI_RUNTIME_SERVICES VirtualEfiRuntimeServices;
461 
463 {
466 
468 {
471  union
472  {
475  } u;
477 
478 //
479 // Loader Parameter Block
480 //
482 {
492  PCONFIGURATION_COMPONENT_DATA ConfigurationRoot;
498  PNLS_DATA_BLOCK NlsData;
499  PARC_DISK_INFORMATION ArcDiskInformation;
502  PLOADER_PARAMETER_EXTENSION Extension;
503  union
504  {
510  } u;
513 
514 typedef int CONFIGTYPE;
515 typedef struct tagFILEINFORMATION
516 {
525 
526 typedef
529  ULONG FileId
530 );
531 
532 typedef
535  ULONG FileId,
537 );
538 
539 typedef
542  CHAR* Path,
544  ULONG* FileId
545 );
546 
547 typedef
550  ULONG FileId,
551  VOID* Buffer,
552  ULONG N, ULONG* Count
553 );
554 
555 typedef
558  ULONG FileId,
560  SEEKMODE SeekMode
561 );
562 
563 #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
LARGE_INTEGER StartingAddress
Definition: arc.h:517
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
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:502
unsigned char * PUCHAR
Definition: retypes.h:3
PCONFIGURATION_COMPONENT_DATA ConfigurationRoot
Definition: arc.h:492
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:364
Definition: arc.h:84
struct _LOADER_PARAMETER_BLOCK * PLOADER_PARAMETER_BLOCK
ULONG FirstLevelDcacheSize
Definition: macharm.c:23
ULONG_PTR QueryVariableInfo
Definition: arc.h:451
int CONFIGTYPE
Definition: arc.h:514
_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:528
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:507
ULONG SecondLevelDcacheSize
Definition: macharm.c:27
PSMBIOS_TABLE_HEADER SMBiosEPSHeader
Definition: arc.h:355
struct _ARC_DISK_INFORMATION * PARC_DISK_INFORMATION
UCHAR PciBusNumber
Definition: arc.h:315
char * LPSTR
Definition: xmlstorage.h:182
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:487
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:374
ALPHA_LOADER_BLOCK Alpha
Definition: arc.h:506
LPSTR NtBootPathName
Definition: arc.h:495
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:557
enum _TYPE_OF_MEMORY TYPE_OF_MEMORY
uint32_t ULONG_PTR
Definition: typedefs.h:64
Definition: arc.h:198
struct _FLOPPY_CONFIGURATION_DATA * PFLOPPY_CONFIGURATION_DATA
enum _ARC_CODES ARC_CODES
PVIRTUAL_EFI_RUNTIME_SERVICES VirtualEfiRuntimeServices
Definition: arc.h:457
ULONG_PTR Process
Definition: arc.h:488
CHAR Signature2[5]
Definition: arc.h:263
ULONG PlaceHolder
Definition: arc.h:389
ULONG_PTR ConvertPointer
Definition: arc.h:443
TYPE_OF_MEMORY MemoryType
Definition: arc.h:193
ULONG_PTR Thread
Definition: arc.h:489
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:501
LARGE_INTEGER CurrentAddress
Definition: arc.h:519
LPSTR ArcHalDeviceName
Definition: arc.h:494
Definition: fw.h:9
Definition: arc.h:130
ULONG_PTR GetNextHighMonotonicCount
Definition: arc.h:447
struct _CONFIGURATION_COMPONENT_DATA * Child
Definition: arc.h:119
ULONG PlaceHolder
Definition: arc.h:428
struct _MEMORY_ALLOCATION_DESCRIPTOR MEMORY_ALLOCATION_DESCRIPTOR
I386_LOADER_BLOCK I386
Definition: arc.h:505
CONFIGURATION_TYPE Type
Definition: arc.h:105
struct _NLS_DATA_BLOCK * PNLS_DATA_BLOCK
EFI_FIRMWARE_INFORMATION EfiInformation
Definition: arc.h:473
ARC_STATUS(* ARC_OPEN)(CHAR *Path, OPENMODE OpenMode, ULONG *FileId)
Definition: arc.h:541
Definition: arc.h:49
Irp IoStatus Information
LARGE_INTEGER EndingAddress
Definition: arc.h:518
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
USHORT HorizontalFrontPorch
Definition: arc.h:231
struct _HEADLESS_LOADER_BLOCK HEADLESS_LOADER_BLOCK
CONFIGTYPE Type
Definition: arc.h:520
struct _TIMEINFO TIMEINFO
UINTN Size
Definition: acefiex.h:550
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:521
Definition: arc.h:50
ULONG_PTR QueryCapsuleCapabilities
Definition: arc.h:450
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:400
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:66
PHEADLESS_LOADER_BLOCK HeadlessLoaderBlock
Definition: arc.h:354
CONFIGURATION_CLASS Class
Definition: arc.h:104
ULONG MachineType
Definition: arc.h:407
Definition: arc.h:43
ULONG VirtualBias
Definition: arc.h:401
PARC_DISK_INFORMATION ArcDiskInformation
Definition: arc.h:499
LIST_ENTRY BootDriverListHead
Definition: arc.h:485
struct _I386_LOADER_BLOCK I386_LOADER_BLOCK
PPC_LOADER_BLOCK PowerPC
Definition: arc.h:508
PVOID BootInfo
Definition: arc.h:406
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
LPSTR ArcBootDeviceName
Definition: arc.h:493
_TYPE_OF_MEMORY
Definition: arc.h:125
Definition: arc.h:34
union _LOADER_PARAMETER_BLOCK::@2862 u
enum _MEMORY_TYPE MEMORY_TYPE
Definition: arc.h:85
struct _MONITOR_CONFIGURATION_DATA * PMONITOR_CONFIGURATION_DATA
PCAT_FIRMWARE_INFORMATION PcatInformation
Definition: arc.h:474
PKPDR_PAGE PdrPage
Definition: winldr.c:78
PROFILE_PARAMETER_BLOCK Profile
Definition: arc.h:344
Definition: ntddk_ex.h:202
LOADER_PERFORMANCE_DATA LoaderPerformanceData
Definition: arc.h:373
CONFIGURATION_TYPE
Definition: iotypes.h:4003
_MEMORY_TYPE
Definition: arc.h:159
struct _IA64_LOADER_BLOCK IA64_LOADER_BLOCK
Definition: typedefs.h:118
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:523
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:399
USHORT Hour
Definition: fw.h:14
LIST_ENTRY LoadOrderListHead
Definition: arc.h:483
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:394
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:484
union _FIRMWARE_INFORMATION_LOADER_BLOCK::@2861 u
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
Definition: arc.h:42
FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation
Definition: arc.h:511
ARC_STATUS(* ARC_GET_FILE_INFORMATION)(ULONG FileId, FILEINFORMATION *Information)
Definition: arc.h:534
struct _FLOPPY_CONFIGURATION_DATA FLOPPY_CONFIGURATION_DATA
ULONG StructureTableAddress
Definition: arc.h:266
Definition: arc.h:46
ULONG MissedMappingsCount
Definition: arc.h:459
Definition: arc.h:40
Definition: arc.h:41
PNETWORK_LOADER_BLOCK NetworkLoaderBlock
Definition: arc.h:358
ULONG_PTR GetNextVariableName
Definition: arc.h:445
struct _ARC_DISK_INFORMATION ARC_DISK_INFORMATION
LIST_ENTRY Link
Definition: arc.h:200
signed char * PCHAR
Definition: retypes.h:7
PCHAR DHCPServerACK
Definition: arc.h:326
ARM_LOADER_BLOCK Arm
Definition: arc.h:509
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:498
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:442
struct _I386_LOADER_BLOCK * PI386_LOADER_BLOCK
UCHAR Attributes
Definition: arc.h:522
enum _OPENMODE OPENMODE
ULONG FirstLevelIcacheFillSize
Definition: macharm.c:26
ARC_STATUS(* ARC_READ)(ULONG FileId, VOID *Buffer, ULONG N, ULONG *Count)
Definition: arc.h:549
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:458
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:486
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:490
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