16#ifndef __UEFI_SPEC_H__
17#define __UEFI_SPEC_H__
52#define EFI_TIME_ADJUST_DAYLIGHT 0x01
53#define EFI_TIME_IN_DAYLIGHT 0x02
58#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
63#define EFI_MEMORY_UC 0x0000000000000001ULL
64#define EFI_MEMORY_WC 0x0000000000000002ULL
65#define EFI_MEMORY_WT 0x0000000000000004ULL
66#define EFI_MEMORY_WB 0x0000000000000008ULL
67#define EFI_MEMORY_UCE 0x0000000000000010ULL
74#define EFI_MEMORY_WP 0x0000000000001000ULL
75#define EFI_MEMORY_RP 0x0000000000002000ULL
76#define EFI_MEMORY_XP 0x0000000000004000ULL
77#define EFI_MEMORY_RO 0x0000000000020000ULL
82#define EFI_MEMORY_NV 0x0000000000008000ULL
87#define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL
97#define EFI_MEMORY_SP 0x0000000000040000ULL
106#define EFI_MEMORY_CPU_CRYPTO 0x0000000000080000ULL
111#define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
118#define EFI_MEMORY_ISA_VALID 0x4000000000000000ULL
126#define EFI_MEMORY_ISA_MASK 0x0FFFF00000000000ULL
131#define EFI_CACHE_ATTRIBUTE_MASK (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP)
132#define EFI_MEMORY_ACCESS_MASK (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO)
133#define EFI_MEMORY_ATTRIBUTE_MASK (EFI_MEMORY_ACCESS_MASK | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO)
138#define EFI_MEMORY_DESCRIPTOR_VERSION 1
261 OUT UINT32 *DescriptorVersion
333 IN UINT32 DescriptorVersion,
406#define EFI_OPTIONAL_PTR 0x00000001
430 IN OUT VOID **Address
438#define EVT_TIMER 0x80000000
439#define EVT_RUNTIME 0x40000000
440#define EVT_NOTIFY_WAIT 0x00000100
441#define EVT_NOTIFY_SIGNAL 0x00000200
443#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
444#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
451#define EVT_RUNTIME_CONTEXT 0x20000000
563 IN UINT64 TriggerTime
635#define TPL_APPLICATION 4
636#define TPL_CALLBACK 8
638#define TPL_HIGH_LEVEL 31
697 IN CHAR16 *VariableName,
738 IN OUT CHAR16 *VariableName,
782 IN CHAR16 *VariableName,
784 IN UINT32 Attributes,
880 OUT BOOLEAN *Enabled,
881 OUT BOOLEAN *Pending,
941 IN BOOLEAN BootPolicy,
1067 IN UINT64 WatchdogCode,
1128 OUT UINT32 *HighCount
1165 IN VOID *Destination,
1271 IN VOID *OldInterface,
1272 IN VOID *NewInterface
1338 OUT VOID **Interface
1341#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1342#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1343#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1344#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1345#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1346#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1383 IN UINT32 Attributes
1499 OUT VOID **Registration
1648 OUT VOID **Interface
1714 VOID *CapsulePtr[1];
1717#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1718#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1719#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1793 OUT UINT64 *MaximumCapsuleSize,
1822 IN UINT32 Attributes,
1823 OUT UINT64 *MaximumVariableStorageSize,
1824 OUT UINT64 *RemainingVariableStorageSize,
1825 OUT UINT64 *MaximumVariableSize
1831#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1832#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1833#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1834#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1835#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1836#define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1837#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
1842#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1843#define EFI_2_80_SYSTEM_TABLE_REVISION ((2 << 16) | (80))
1844#define EFI_2_70_SYSTEM_TABLE_REVISION ((2 << 16) | (70))
1845#define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1846#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1847#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1848#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1849#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1850#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1851#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1852#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1853#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1854#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1855#define EFI_SYSTEM_TABLE_REVISION EFI_2_70_SYSTEM_TABLE_REVISION
1856#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1858#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1859#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1909#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1910#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
2165#define LOAD_OPTION_ACTIVE 0x00000001
2166#define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2167#define LOAD_OPTION_HIDDEN 0x00000008
2168#define LOAD_OPTION_CATEGORY 0x00001F00
2170#define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2171#define LOAD_OPTION_CATEGORY_APP 0x00000100
2173#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2174#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2175#define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2176#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2211 UINT32 Reserved : 16;
2254#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2255#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2256#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2257#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2258#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2259#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI"
2260#define EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI"
2262#if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)
2263 #if defined (MDE_CPU_IA32)
2264#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2265 #elif defined (MDE_CPU_X64)
2266#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2267 #elif defined (MDE_CPU_EBC)
2268 #elif defined (MDE_CPU_ARM)
2269#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2270 #elif defined (MDE_CPU_AARCH64)
2271#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2272 #elif defined (MDE_CPU_RISCV64)
2273#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64
2274 #elif defined (MDE_CPU_LOONGARCH64)
2275#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64
2277 #error Unknown Processor Type
2284#define EFI_CAPSULE_FILE_DIRECTORY L"\\EFI\\UpdateCapsule\\"
VOID EFIAPI ResetSystem(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
UINT32 EFIAPI CalculateCrc32(IN VOID *Buffer, IN UINTN Length)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
VOID *EFIAPI SetMem(OUT VOID *Buffer, IN UINTN Length, IN UINT8 Value)
EFI_STATUS EFIAPI UpdateCapsule(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
VOID EFIAPI FreePages(IN VOID *Buffer, IN UINTN Pages)
VOID EFIAPI FreePool(IN VOID *Buffer)
EFI_STATUS EFIAPI GetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI SetTime(IN EFI_TIME *Time)
EFI_STATUS EFIAPI SetWakeupTime(IN BOOLEAN Enabled, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI GetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
VOID ConvertPointer(IN OUT VOID **Pointer, IN UINTN TempBottom, IN UINTN TempTop, IN UINTN Offset, IN BOOLEAN OffsetPositive)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
VOID *EFIAPI AllocatePages(IN UINTN Pages)
VOID EFIAPI NotifyFunction(IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI Exit(IN EFI_STATUS Status)
UINT64 EFI_PHYSICAL_ADDRESS
UINT64 EFI_VIRTUAL_ADDRESS
EFI_STATUS(EFIAPI * EFI_CLOSE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN EFI_HANDLE AgentHandle, IN EFI_HANDLE ControllerHandle)
EFI_STATUS(EFIAPI * EFI_OPEN_PROTOCOL_INFORMATION)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer, OUT UINTN *EntryCount)
EFI_STATUS(EFIAPI * EFI_CONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE *DriverImageHandle OPTIONAL, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL, IN BOOLEAN Recursive)
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
EFI_STATUS(EFIAPI * EFI_GET_VARIABLE)(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes OPTIONAL, IN OUT UINTN *DataSize, OUT VOID *Data OPTIONAL)
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
EFI_STATUS(EFIAPI * EFI_IMAGE_LOAD)(IN BOOLEAN BootPolicy, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL, IN VOID *SourceBuffer OPTIONAL, IN UINTN SourceSize, OUT EFI_HANDLE *ImageHandle)
EFI_STATUS(EFIAPI * EFI_LOCATE_DEVICE_PATH)(IN EFI_GUID *Protocol, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *Device)
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
VOID(EFIAPI * EFI_RESTORE_TPL)(IN EFI_TPL OldTpl)
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
EFI_STATUS(EFIAPI * EFI_PROTOCOLS_PER_HANDLE)(IN EFI_HANDLE Handle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
EFI_STATUS(EFIAPI * EFI_GET_MEMORY_MAP)(IN OUT UINTN *MemoryMapSize, OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, OUT UINTN *MapKey, OUT UINTN *DescriptorSize, OUT UINT32 *DescriptorVersion)
EFI_STATUS(EFIAPI * EFI_CREATE_EVENT)(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN VOID *NotifyContext OPTIONAL, OUT EFI_EVENT *Event)
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
EFI_STATUS(EFIAPI * EFI_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle OPTIONAL, IN EFI_HANDLE ChildHandle OPTIONAL)
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
EFI_STATUS(EFIAPI * EFI_CREATE_EVENT_EX)(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN CONST VOID *NotifyContext OPTIONAL, IN CONST EFI_GUID *EventGroup OPTIONAL, OUT EFI_EVENT *Event)
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
EFI_STATUS(EFIAPI * EFI_SET_VARIABLE)(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
EFI_STATUS(EFIAPI * EFI_INSTALL_PROTOCOL_INTERFACE)(IN OUT EFI_HANDLE *Handle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface)
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
EFI_STATUS(EFIAPI * EFI_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
EFI_STATUS(EFIAPI * EFI_LOCATE_HANDLE)(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, IN OUT UINTN *BufferSize, OUT EFI_HANDLE *Buffer)
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
EFI_STATUS(EFIAPI * EFI_GET_TIME)(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SET_VIRTUAL_ADDRESS_MAP)(IN UINTN MemoryMapSize, IN UINTN DescriptorSize, IN UINT32 DescriptorVersion, IN EFI_MEMORY_DESCRIPTOR *VirtualMap)
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
EFI_STATUS(EFIAPI * EFI_ALLOCATE_PAGES)(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN OUT EFI_PHYSICAL_ADDRESS *Memory)
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
EFI_STATUS(EFIAPI * EFI_QUERY_CAPSULE_CAPABILITIES)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, OUT UINT64 *MaximumCapsuleSize, OUT EFI_RESET_TYPE *ResetType)
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
EFI_STATUS(EFIAPI * EFI_LOCATE_HANDLE_BUFFER)(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, OUT UINTN *NoHandles, OUT EFI_HANDLE **Buffer)
EFI_STATUS(EFIAPI * EFI_GET_WAKEUP_TIME)(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
EFI_STATUS(EFIAPI * EFI_OPEN_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface OPTIONAL, IN EFI_HANDLE AgentHandle, IN EFI_HANDLE ControllerHandle, IN UINT32 Attributes)
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
UINT16 FilePathListLength
EFI_PHYSICAL_ADDRESS DataBlock
EFI_PHYSICAL_ADDRESS ContinuationPointer
UINT32 CapsuleArrayNumber
EFI_BOOT_KEY_DATA KeyData
EFI_VIRTUAL_ADDRESS VirtualStart
EFI_PHYSICAL_ADDRESS PhysicalStart
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
EFI_BOOT_SERVICES * BootServices
EFI_CONFIGURATION_TABLE * ConfigurationTable
EFI_HANDLE ConsoleInHandle
EFI_HANDLE ConsoleOutHandle
EFI_RUNTIME_SERVICES * RuntimeServices
EFI_HANDLE StandardErrorHandle
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
UINTN NumberOfTableEntries