19#ifndef __UEFI_SPEC_H__
20#define __UEFI_SPEC_H__
55#define EFI_TIME_ADJUST_DAYLIGHT 0x01
56#define EFI_TIME_IN_DAYLIGHT 0x02
61#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
66#define EFI_MEMORY_UC 0x0000000000000001ULL
67#define EFI_MEMORY_WC 0x0000000000000002ULL
68#define EFI_MEMORY_WT 0x0000000000000004ULL
69#define EFI_MEMORY_WB 0x0000000000000008ULL
70#define EFI_MEMORY_UCE 0x0000000000000010ULL
74#define EFI_MEMORY_WP 0x0000000000001000ULL
75#define EFI_MEMORY_RP 0x0000000000002000ULL
76#define EFI_MEMORY_XP 0x0000000000004000ULL
80#define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
85#define EFI_MEMORY_DESCRIPTOR_VERSION 1
332#define EFI_OPTIONAL_PTR 0x00000001
362#define EVT_TIMER 0x80000000
363#define EVT_RUNTIME 0x40000000
364#define EVT_NOTIFY_WAIT 0x00000100
365#define EVT_NOTIFY_SIGNAL 0x00000200
367#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
368#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
375#define EVT_RUNTIME_CONTEXT 0x20000000
561#define TPL_APPLICATION 4
562#define TPL_CALLBACK 8
564#define TPL_HIGH_LEVEL 31
1250#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1251#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1252#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1253#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1254#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1255#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1626#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1627#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1628#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1719OUT UINT64 *RemainingVariableStorageSize,
1727#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1728#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1729#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1730#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1731#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1732#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1733#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1734#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1735#define EFI_SYSTEM_TABLE_REVISION EFI_2_31_SYSTEM_TABLE_REVISION
1737#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1738#define EFI_RUNTIME_SERVICES_REVISION EFI_2_31_SYSTEM_TABLE_REVISION
1789#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1790#define EFI_BOOT_SERVICES_REVISION EFI_2_31_SYSTEM_TABLE_REVISION
1992#define LOAD_OPTION_ACTIVE 0x00000001
1993#define LOAD_OPTION_FORCE_RECONNECT 0x00000002
1994#define LOAD_OPTION_HIDDEN 0x00000008
1995#define LOAD_OPTION_CATEGORY 0x00001F00
1997#define LOAD_OPTION_CATEGORY_BOOT 0x00000000
1998#define LOAD_OPTION_CATEGORY_APP 0x00000100
2000#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2001#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2002#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2078#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2079#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2080#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2081#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2083#if defined (MDE_CPU_IA32)
2084#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2085#elif defined (MDE_CPU_IPF)
2086#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA64
2087#elif defined (MDE_CPU_X64)
2088#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2089#elif defined (MDE_CPU_EBC)
2090#elif defined (MDE_CPU_ARM)
2091#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2093#error Unknown Processor Type
unsigned long long UINT64
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_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_CREATE_EVENT)(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, IN VOID *NotifyContext, OUT EFI_EVENT *Event)
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
EFI_STATUS(EFIAPI * EFI_LOCATE_HANDLE_BUFFER)(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol, OPTIONAL IN VOID *SearchKey, OPTIONAL IN OUT UINTN *NoHandles, OUT EFI_HANDLE **Buffer)
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
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_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle, OPTIONAL IN EFI_HANDLE ChildHandle OPTIONAL)
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_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_SET_TIME)(IN EFI_TIME *Time)
EFI_STATUS(EFIAPI * EFI_GET_MEMORY_MAP)(IN OUT UINTN *MemoryMapSize, IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, OUT UINTN *MapKey, OUT UINTN *DescriptorSize, OUT UINT32 *DescriptorVersion)
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_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_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)
EFI_STATUS(EFIAPI * EFI_IMAGE_LOAD)(IN BOOLEAN BootPolicy, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN VOID *SourceBuffer OPTIONAL, IN UINTN SourceSize, OUT EFI_HANDLE *ImageHandle)
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_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_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_GET_VARIABLE)(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, OPTIONAL IN OUT UINTN *DataSize, OUT VOID *Data)
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_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration, OPTIONAL OUT VOID **Interface)
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_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_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)
BIOS_MEMORY_MAP MemoryMap[32]
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION * Registration
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
static PLARGE_INTEGER Time
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
_In_ ULONG _In_ ULONG _In_ ULONG Length
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
PULONG MinorVersion OPTIONAL
EFI_ALLOCATE_PAGES AllocatePages
EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable
EFI_RESTORE_TPL RestoreTPL
EFI_IMAGE_START StartImage
EFI_LOCATE_HANDLE LocateHandle
EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation
EFI_CREATE_EVENT CreateEvent
EFI_IMAGE_UNLOAD UnloadImage
EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface
EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle
EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface
EFI_DISCONNECT_CONTROLLER DisconnectController
EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces
EFI_LOCATE_PROTOCOL LocateProtocol
EFI_CLOSE_EVENT CloseEvent
EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces
EFI_CLOSE_PROTOCOL CloseProtocol
EFI_SET_WATCHDOG_TIMER SetWatchdogTimer
EFI_HANDLE_PROTOCOL HandleProtocol
EFI_EXIT_BOOT_SERVICES ExitBootServices
EFI_ALLOCATE_POOL AllocatePool
EFI_LOCATE_DEVICE_PATH LocateDevicePath
EFI_CREATE_EVENT_EX CreateEventEx
EFI_CALCULATE_CRC32 CalculateCrc32
EFI_GET_MEMORY_MAP GetMemoryMap
EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify
EFI_OPEN_PROTOCOL OpenProtocol
EFI_SIGNAL_EVENT SignalEvent
EFI_WAIT_FOR_EVENT WaitForEvent
EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer
EFI_CHECK_EVENT CheckEvent
EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount
EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface
EFI_CONNECT_CONTROLLER ConnectController
EFI_PHYSICAL_ADDRESS DataBlock
EFI_PHYSICAL_ADDRESS ContinuationPointer
UINT32 CapsuleArrayNumber
EFI_BOOT_KEY_DATA KeyData
EFI_VIRTUAL_ADDRESS VirtualStart
EFI_PHYSICAL_ADDRESS PhysicalStart
EFI_HANDLE ControllerHandle
EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities
EFI_CONVERT_POINTER ConvertPointer
EFI_UPDATE_CAPSULE UpdateCapsule
EFI_SET_VARIABLE SetVariable
EFI_SET_WAKEUP_TIME SetWakeupTime
EFI_GET_WAKEUP_TIME GetWakeupTime
EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName
EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount
EFI_QUERY_VARIABLE_INFO QueryVariableInfo
EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap
EFI_GET_VARIABLE GetVariable
EFI_RESET_SYSTEM ResetSystem
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
_In_ SIZE_T DescriptorSize
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value