19#ifndef __EFI_DEVICE_PATH_PROTOCOL_H__
20#define __EFI_DEVICE_PATH_PROTOCOL_H__
27#define EFI_DEVICE_PATH_PROTOCOL_GUID \
29 0x9576e91, 0x6d3f, 0x11d2, { 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
35#define DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL_GUID
73#define HARDWARE_DEVICE_PATH 0x01
98#define HW_PCCARD_DP 0x02
114#define HW_MEMMAP_DP 0x03
138#define HW_VENDOR_DP 0x04
159#define HW_CONTROLLER_DP 0x05
175#define ACPI_DEVICE_PATH 0x02
202#define ACPI_EXTENDED_DP 0x02
238#define PNP_EISA_ID_CONST 0x41d0
239#define EISA_ID(_Name, _Num) ((UINT32)((_Name) | (_Num) << 16))
240#define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
241#define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
243#define PNP_EISA_ID_MASK 0xffff
244#define EISA_ID_TO_NUM(_Id) ((_Id) >> 16)
249#define ACPI_ADR_DP 0x03
269#define ACPI_ADR_DISPLAY_TYPE_OTHER 0
270#define ACPI_ADR_DISPLAY_TYPE_VGA 1
271#define ACPI_ADR_DISPLAY_TYPE_TV 2
272#define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL 3
273#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4
275#define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \
276 ((UINT32) ((((_DeviceIdScheme) & 0x1) << 31) | \
277 (((_HeadId) & 0x7) << 18) | \
278 (((_NonVgaOutput) & 0x1) << 17) | \
279 (((_BiosCanDetect) & 0x1) << 16) | \
280 (((_VendorInfo) & 0xf) << 12) | \
281 (((_Type) & 0xf) << 8) | \
282 (((_Port) & 0xf) << 4) | \
291#define MESSAGING_DEVICE_PATH 0x03
296#define MSG_ATAPI_DP 0x01
316#define MSG_SCSI_DP 0x02
332#define MSG_FIBRECHANNEL_DP 0x03
352#define MSG_FIBRECHANNELEX_DP 0x15
372#define MSG_1394_DP 0x04
388#define MSG_USB_DP 0x05
404#define MSG_USB_CLASS_DP 0x0f
437#define MSG_USB_WWID_DP 0x10
468#define MSG_DEVICE_LOGICAL_UNIT_DP 0x11
480#define MSG_SATA_DP 0x12
503#define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000
508#define MSG_I2O_DP 0x06
520#define MSG_MAC_ADDR_DP 0x0b
536#define MSG_IPv4_DP 0x0c
577#define MSG_IPv6_DP 0x0d
621#define MSG_INFINIBAND_DP 0x09
653#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01
654#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02
655#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04
656#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08
657#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10
662#define MSG_UART_DP 0x0e
702#define MSG_VENDOR_DP 0x0a
705#define DEVICE_PATH_MESSAGING_PC_ANSI EFI_PC_ANSI_GUID
706#define DEVICE_PATH_MESSAGING_VT_100 EFI_VT_100_GUID
707#define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID
708#define DEVICE_PATH_MESSAGING_VT_UTF8 EFI_VT_UTF8_GUID
729#define UART_FLOW_CONTROL_HARDWARE 0x00000001
730#define UART_FLOW_CONTROL_XON_XOFF 0x00000010
732#define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID
767#define MSG_SASEX_DP 0x16
791#define MSG_ISCSI_DP 0x13
818#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST 0x0000
819#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C 0x0002
820#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST 0x0000
821#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C 0x0008
822#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP 0x0000
823#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON 0x1000
824#define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000
825#define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000
830#define MSG_VLAN_DP 0x14
842#define MEDIA_DEVICE_PATH 0x04
847#define MEDIA_HARDDRIVE_DP 0x01
892#define MBR_TYPE_PCAT 0x01
893#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
895#define NO_DISK_SIGNATURE 0x00
896#define SIGNATURE_TYPE_MBR 0x01
897#define SIGNATURE_TYPE_GUID 0x02
902#define MEDIA_CDROM_DP 0x02
926#define MEDIA_VENDOR_DP 0x03
931#define MEDIA_FILEPATH_DP 0x04
940#define SIZE_OF_FILEPATH_DEVICE_PATH OFFSET_OF(FILEPATH_DEVICE_PATH,PathName)
945#define MEDIA_PROTOCOL_DP 0x05
963#define MEDIA_PIWG_FW_FILE_DP 0x06
979#define MEDIA_PIWG_FW_VOL_DP 0x07
995#define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08
1010#define BBS_DEVICE_PATH 0x05
1015#define BBS_BBS_DP 0x01
1039#define BBS_TYPE_FLOPPY 0x01
1040#define BBS_TYPE_HARDDRIVE 0x02
1041#define BBS_TYPE_CDROM 0x03
1042#define BBS_TYPE_PCMCIA 0x04
1043#define BBS_TYPE_USB 0x05
1044#define BBS_TYPE_EMBEDDED_NETWORK 0x06
1045#define BBS_TYPE_BEV 0x80
1046#define BBS_TYPE_UNKNOWN 0xFF
1151#define END_DEVICE_PATH_TYPE 0x7f
1152#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF
1153#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
VENDOR_DEVICE_PATH VENDOR_DEFINED_DEVICE_PATH
#define END_ENTIRE_DEVICE_PATH_SUBTYPE
FORCEINLINE EFI_DEVICE_PATH_PROTOCOL * NextDevicePathNode(_In_ PVOID Node)
FORCEINLINE BOOLEAN IsDevicePathEnd(_In_ PVOID Node)
FORCEINLINE UINT8 DevicePathSubType(_In_ PVOID Node)
FORCEINLINE UINT8 DevicePathType(_In_ PVOID Node)
#define END_DEVICE_PATH_TYPE
FORCEINLINE UINTN DevicePathNodeLength(_In_ PVOID Node)
FORCEINLINE BOOLEAN IsDevicePathEndType(_In_ PVOID Node)
EFI_GUID gEfiDevicePathProtocolGuid
EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH
unsigned long long UINT64
UINT64 EFI_PHYSICAL_ADDRESS
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
static const WCHAR Signature[]
_In_ ULONG _In_ ULONG _In_ ULONG Length
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IPv4_ADDRESS GatewayIpAddress
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IPv4_ADDRESS SubnetMask
EFI_IPv4_ADDRESS LocalIpAddress
EFI_IPv4_ADDRESS RemoteIpAddress
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IPv6_ADDRESS LocalIpAddress
EFI_IPv6_ADDRESS RemoteIpAddress
EFI_IPv6_ADDRESS GatewayIpAddress
UINT16 TargetPortalGroupTag
EFI_DEVICE_PATH_PROTOCOL Header
EFI_MAC_ADDRESS MacAddress
EFI_DEVICE_PATH_PROTOCOL Header
EFI_PHYSICAL_ADDRESS StartingAddress
EFI_DEVICE_PATH_PROTOCOL Header
EFI_PHYSICAL_ADDRESS EndingAddress
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 RelativeTargetPort
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 RelativeTargetPort
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 PortMultiplierPortNumber
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
CONTROLLER_DEVICE_PATH * Controller
EFI_DEVICE_PATH_PROTOCOL * DevPath
DEVICE_LOGICAL_UNIT_DEVICE_PATH * LogicUnit
MEDIA_PROTOCOL_DEVICE_PATH * MediaProtocol
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH * Offset
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH * FirmwareFile
ISCSI_DEVICE_PATH * Iscsi
ACPI_EXTENDED_HID_DEVICE_PATH * ExtendedAcpi
USB_CLASS_DEVICE_PATH * UsbClass
VENDOR_DEVICE_PATH * Vendor
PCCARD_DEVICE_PATH * PcCard
ACPI_HID_DEVICE_PATH * Acpi
FIBRECHANNEL_DEVICE_PATH * FibreChannel
INFINIBAND_DEVICE_PATH * InfiniBand
USB_WWID_DEVICE_PATH * UsbWwid
MEDIA_FW_VOL_DEVICE_PATH * FirmwareVolume
ACPI_ADR_DEVICE_PATH * AcpiAdr
MAC_ADDR_DEVICE_PATH * MacAddr
BBS_BBS_DEVICE_PATH * Bbs
F1394_DEVICE_PATH * F1394
SASEX_DEVICE_PATH * SasEx
MEMMAP_DEVICE_PATH * MemMap
FIBRECHANNELEX_DEVICE_PATH * FibreChannelEx
FILEPATH_DEVICE_PATH * FilePath
HARDDRIVE_DEVICE_PATH * HardDrive
ATAPI_DEVICE_PATH * Atapi
UART_FLOW_CONTROL_DEVICE_PATH * UartFlowControl
USB_WWID_DEVICE_PATH UsbWwid
FIBRECHANNELEX_DEVICE_PATH FibreChannelEx
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset
FIBRECHANNEL_DEVICE_PATH FibreChannel
INFINIBAND_DEVICE_PATH InfiniBand
CONTROLLER_DEVICE_PATH Controller
DEVICE_LOGICAL_UNIT_DEVICE_PATH LogicUnit
USB_CLASS_DEVICE_PATH UsbClass
ACPI_EXTENDED_HID_DEVICE_PATH ExtendedAcpi
MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol
HARDDRIVE_DEVICE_PATH HardDrive
FILEPATH_DEVICE_PATH FilePath
ACPI_HID_DEVICE_PATH Acpi
UART_FLOW_CONTROL_DEVICE_PATH UartFlowControl
MEDIA_FW_VOL_DEVICE_PATH FirmwareVolume
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FirmwareFile
EFI_DEVICE_PATH_PROTOCOL DevPath
ACPI_ADR_DEVICE_PATH AcpiAdr
PCCARD_DEVICE_PATH PcCard
MEMMAP_DEVICE_PATH MemMap
VENDOR_DEVICE_PATH Vendor
MAC_ADDR_DEVICE_PATH MacAddr
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String