13#ifndef __EFI_DEVICE_PATH_PROTOCOL_H__
14#define __EFI_DEVICE_PATH_PROTOCOL_H__
26#define EFI_DEVICE_PATH_PROTOCOL_GUID \
28 0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
34#define DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL_GUID
71#define HARDWARE_DEVICE_PATH 0x01
96#define HW_PCCARD_DP 0x02
112#define HW_MEMMAP_DP 0x03
136#define HW_VENDOR_DP 0x04
157#define HW_CONTROLLER_DP 0x05
173#define HW_BMC_DP 0x06
193#define ACPI_DEVICE_PATH 0x02
220#define ACPI_EXTENDED_DP 0x02
256#define PNP_EISA_ID_CONST 0x41d0
257#define EISA_ID(_Name, _Num) ((UINT32)((_Name) | (_Num) << 16))
258#define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
259#define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
261#define PNP_EISA_ID_MASK 0xffff
262#define EISA_ID_TO_NUM(_Id) ((_Id) >> 16)
267#define ACPI_ADR_DP 0x03
290#define ACPI_NVDIMM_DP 0x04
302#define ACPI_ADR_DISPLAY_TYPE_OTHER 0
303#define ACPI_ADR_DISPLAY_TYPE_VGA 1
304#define ACPI_ADR_DISPLAY_TYPE_TV 2
305#define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL 3
306#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4
308#define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \
309 ((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \
310 (((_HeadId) & 0x7) << 18) | \
311 (((_NonVgaOutput) & 0x1) << 17) | \
312 (((_BiosCanDetect) & 0x1) << 16) | \
313 (((_VendorInfo) & 0xf) << 12) | \
314 (((_Type) & 0xf) << 8) | \
315 (((_Port) & 0xf) << 4) | \
324#define MESSAGING_DEVICE_PATH 0x03
329#define MSG_ATAPI_DP 0x01
349#define MSG_SCSI_DP 0x02
365#define MSG_FIBRECHANNEL_DP 0x03
385#define MSG_FIBRECHANNELEX_DP 0x15
405#define MSG_1394_DP 0x04
421#define MSG_USB_DP 0x05
437#define MSG_USB_CLASS_DP 0x0f
470#define MSG_USB_WWID_DP 0x10
501#define MSG_DEVICE_LOGICAL_UNIT_DP 0x11
513#define MSG_SATA_DP 0x12
536#define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000
541#define MSG_I2O_DP 0x06
553#define MSG_MAC_ADDR_DP 0x0b
569#define MSG_IPv4_DP 0x0c
610#define MSG_IPv6_DP 0x0d
654#define MSG_INFINIBAND_DP 0x09
686#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01
687#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02
688#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04
689#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08
690#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10
695#define MSG_UART_DP 0x0e
735#define NVDIMM_NAMESPACE_DP 0x20
747#define MSG_VENDOR_DP 0x0a
750#define DEVICE_PATH_MESSAGING_PC_ANSI EFI_PC_ANSI_GUID
751#define DEVICE_PATH_MESSAGING_VT_100 EFI_VT_100_GUID
752#define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID
753#define DEVICE_PATH_MESSAGING_VT_UTF8 EFI_VT_UTF8_GUID
774#define UART_FLOW_CONTROL_HARDWARE 0x00000001
775#define UART_FLOW_CONTROL_XON_XOFF 0x00000010
777#define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID
812#define MSG_SASEX_DP 0x16
836#define MSG_NVME_NAMESPACE_DP 0x17
846#define MSG_NVME_OF_NAMESPACE_DP 0x22
866#define MSG_DNS_DP 0x1F
882#define MSG_URI_DP 0x18
894#define MSG_UFS_DP 0x19
910#define MSG_SD_DP 0x1A
919#define MSG_EMMC_DP 0x1D
928#define MSG_ISCSI_DP 0x13
955#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST 0x0000
956#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C 0x0002
957#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST 0x0000
958#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C 0x0008
959#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP 0x0000
960#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON 0x1000
961#define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000
962#define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000
967#define MSG_VLAN_DP 0x14
979#define MSG_BLUETOOTH_DP 0x1b
991#define MSG_WIFI_DP 0x1C
1003#define MSG_BLUETOOTH_LE_DP 0x1E
1012#define MEDIA_DEVICE_PATH 0x04
1017#define MEDIA_HARDDRIVE_DP 0x01
1062#define MBR_TYPE_PCAT 0x01
1063#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
1065#define NO_DISK_SIGNATURE 0x00
1066#define SIGNATURE_TYPE_MBR 0x01
1067#define SIGNATURE_TYPE_GUID 0x02
1072#define MEDIA_CDROM_DP 0x02
1096#define MEDIA_VENDOR_DP 0x03
1101#define MEDIA_FILEPATH_DP 0x04
1110#define SIZE_OF_FILEPATH_DEVICE_PATH OFFSET_OF(FILEPATH_DEVICE_PATH,PathName)
1115#define MEDIA_PROTOCOL_DP 0x05
1133#define MEDIA_PIWG_FW_FILE_DP 0x06
1149#define MEDIA_PIWG_FW_VOL_DP 0x07
1165#define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08
1180#define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE
1187#define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE
1194#define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT
1201#define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT
1208#define MEDIA_RAM_DISK_DP 0x09
1236#define BBS_DEVICE_PATH 0x05
1241#define BBS_BBS_DP 0x01
1265#define BBS_TYPE_FLOPPY 0x01
1266#define BBS_TYPE_HARDDRIVE 0x02
1267#define BBS_TYPE_CDROM 0x03
1268#define BBS_TYPE_PCMCIA 0x04
1269#define BBS_TYPE_USB 0x05
1270#define BBS_TYPE_EMBEDDED_NETWORK 0x06
1271#define BBS_TYPE_BEV 0x80
1272#define BBS_TYPE_UNKNOWN 0xFF
1394#define END_DEVICE_PATH_TYPE 0x7f
1395#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF
1396#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
unsigned long long UINT64
8-byte unsigned value.
unsigned short CHAR16
2-byte Character.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.
This file contains the Bluetooth definitions that are consumed by drivers.
VENDOR_DEVICE_PATH VENDOR_DEFINED_DEVICE_PATH
EFI_GUID gEfiPersistentVirtualCdGuid
EFI_GUID gEfiVirtualCdGuid
EFI_GUID gEfiVirtualDiskGuid
EFI_GUID gEfiPersistentVirtualDiskGuid
EFI_GUID gEfiDevicePathProtocolGuid
EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH
Device Path protocol definition for backward-compatible with EFI1.1.
Terminal Device Path Vendor Guid.
UINT64 EFI_PHYSICAL_ADDRESS
64-bit physical memory address.
IPv6_ADDRESS EFI_IPv6_ADDRESS
16-byte buffer.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
IPv4_ADDRESS EFI_IPv4_ADDRESS
4-byte buffer.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
The _ADR device path is used to contain video output device attributes to support the Graphics Output...
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 CID
Device's compatible PnP hardware ID stored in a numeric 32-bit compressed EISA-type ID.
UINT32 UID
Unique ID that is required by ACPI if two devices have the same _HID.
UINT32 HID
Device's PnP hardware ID stored in a numeric 32-bit compressed EISA-type ID.
UINT32 HID
Device's PnP hardware ID stored in a numeric 32-bit compressed EISA-type ID.
UINT32 UID
Unique ID that is required by ACPI if two devices have the same _HID.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 NFITDeviceHandle
NFIT Device Handle, the _ADR of the NVDIMM device.
UINT16 Lun
Logical Unit Number.
UINT8 PrimarySecondary
Set to zero for primary, or one for secondary.
UINT8 SlaveMaster
Set to zero for master, or one for slave mode.
EFI_DEVICE_PATH_PROTOCOL Header
This Device Path is used to describe the booting of non-EFI-aware operating systems.
EFI_DEVICE_PATH_PROTOCOL Header
CHAR8 String[1]
Null-terminated ASCII string that describes the boot device to a user.
UINT16 DeviceType
Device Type as defined by the BIOS Boot Specification.
UINT16 StatusFlag
Status Flags as defined by the BIOS Boot Specification.
EFI_DEVICE_PATH_PROTOCOL Header
BLUETOOTH_ADDRESS BD_ADDR
48bit Bluetooth device address.
EFI_DEVICE_PATH_PROTOCOL Header
BLUETOOTH_LE_ADDRESS Address
UINT8 BaseAddress[8]
Base Address.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 InterfaceType
Interface Type.
The CD-ROM Media Device Path is used to define a system partition that exists on a CD-ROM.
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 BootEntry
Boot Entry number from the Boot Catalog.
UINT64 PartitionStart
Starting RBA of the partition on the medium.
UINT64 PartitionSize
Size of the partition in units of Blocks, also called Sectors.
UINT32 ControllerNumber
Controller number.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Lun
Logical Unit Number for the interface.
UINT8 IsIPv6
Indicates the DNS server address is IPv4 or IPv6 address.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IP_ADDRESS DnsServerIp[]
Instance of the DNS server address.
This protocol can be used on any device handle to obtain generic path/location information concerning...
UINT8 Type
0x01 Hardware Device Path.
UINT8 Length[2]
Specific Device Path data.
UINT8 SubType
Varies by Type 0xFF End Entire Device Path, or 0x01 End This Instance of a Device Path and start a ne...
32-byte buffer containing a network Media Access Control address.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 Reserved
Reserved for the future.
UINT64 Guid
1394 Global Unique ID (GUID).
UINT8 WWN[8]
8 byte array containing Fibre Channel End Device Port Name.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Lun[8]
8 byte array containing Fibre Channel Logical Unit Number.
UINT32 Reserved
Reserved for the future.
EFI_DEVICE_PATH_PROTOCOL Header
UINT64 Lun
Fibre Channel Logical Unit Number.
UINT32 Reserved
Reserved for the future.
UINT64 WWN
Fibre Channel World Wide Number.
CHAR16 PathName[1]
A NULL-terminated Path string including directory and file names.
EFI_DEVICE_PATH_PROTOCOL Header
The Hard Drive Media Device Path is used to represent a partition on a hard drive.
UINT64 PartitionSize
Size of the partition in units of Logical Blocks.
UINT8 Signature[16]
Signature unique to this partition: If SignatureType is 0, this field has to be initialized with 16 z...
UINT8 SignatureType
Type of Disk Signature: (Unused values reserved).
UINT64 PartitionStart
Starting LBA of the partition on the hard drive.
UINT8 MBRType
Partition Format: (Unused values reserved).
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 PartitionNumber
Describes the entry in a partition table, starting with entry 1.
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 Tid
Target ID (TID) for a device.
UINT64 TargetPortId
64-bit persistent ID of remote IOC port.
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 ResourceFlags
Flags to help identify/manage InfiniBand device path elements: Bit 0 - IOC/Service (0b = IOC,...
UINT64 DeviceId
64-bit persistent ID of remote device.
UINT8 PortGid[16]
128-bit Global Identifier for remote fabric port.
UINT64 ServiceId
64-bit unique identifier to remote IOC or server process.
UINT16 Protocol
The network protocol(i.e.
UINT16 LocalPort
The local port number.
EFI_IPv4_ADDRESS GatewayIpAddress
The gateway IP address.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IPv4_ADDRESS SubnetMask
The subnet mask.
BOOLEAN StaticIpAddress
0x00 - The Source IP Address was assigned though DHCP.
EFI_IPv4_ADDRESS LocalIpAddress
The local IPv4 address.
UINT16 RemotePort
The remote port number.
EFI_IPv4_ADDRESS RemoteIpAddress
The remote IPv4 address.
UINT16 Protocol
The network protocol(i.e.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IPv6_ADDRESS LocalIpAddress
The local IPv6 address.
UINT8 IpAddressOrigin
0x00 - The Local IP Address was manually configured.
UINT16 RemotePort
The remote port number.
EFI_IPv6_ADDRESS RemoteIpAddress
The remote IPv6 address.
UINT16 LocalPort
The local port number.
UINT8 PrefixLength
The prefix length.
EFI_IPv6_ADDRESS GatewayIpAddress
The gateway IP address.
UINT64 Lun
iSCSI Logical Unit Number.
UINT16 TargetPortalGroupTag
iSCSI Target Portal group tag the initiator intends to establish a session with.
UINT16 LoginOption
iSCSI Login Options.
UINT16 NetworkProtocol
Network Protocol (0 = TCP, 1+ = reserved).
EFI_DEVICE_PATH_PROTOCOL Header
EFI_MAC_ADDRESS MacAddress
The MAC address for a network interface padded with 0s.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 IfType
Network interface type(i.e.
Memory Mapped Device Path.
EFI_PHYSICAL_ADDRESS StartingAddress
Starting Memory Address.
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 MemoryType
EFI_MEMORY_TYPE.
EFI_PHYSICAL_ADDRESS EndingAddress
Ending Memory Address.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_GUID Uuid
Namespace unique label identifier UUID.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 NamespaceIdType
Namespace Identifier Type (NIDT)
CHAR8 SubsystemNqn[]
Unique identifier of an NVM subsystem.
UINT8 NamespaceId[16]
Namespace Identifier (NID)
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 FunctionNumber
Function Number (0 = First Function).
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Device
PCI Device Number.
UINT8 Function
PCI Function Number.
UINT16 DeviceTopology
More Information about the device and its interconnect.
UINT8 Lun[8]
8-byte array of the SAS Logical Unit Number.
UINT8 SasAddress[8]
8-byte array of the SAS Address for Serial Attached SCSI Target Port.
UINT16 RelativeTargetPort
Relative Target Port (RTP).
EFI_DEVICE_PATH_PROTOCOL Header
Serial Attached SCSI (SAS) Device Path.
UINT64 Lun
SAS Logical Unit Number.
UINT16 RelativeTargetPort
Relative Target Port (RTP).
EFI_GUID Guid
DEVICE_PATH_MESSAGING_SAS GUID.
UINT64 SasAddress
SAS Address for Serial Attached SCSI Target.
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 Reserved
Reserved for future use.
UINT16 DeviceTopology
More Information about the device and its interconnect.
UINT16 PortMultiplierPortNumber
The Port multiplier port number that facilitates the connection to the device.
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 HBAPortNumber
The HBA port number that facilitates the connection to the device or a port multiplier.
UINT16 Lun
Logical Unit Number.
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 Lun
Logical Unit Number (LUN).
UINT16 Pun
Target ID on the SCSI bus (PUN).
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 StopBits
The number of stop bits for the UART style device.
UINT64 BaudRate
The baud rate setting for the UART style device.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Parity
The parity setting for the UART style device.
UINT8 DataBits
The number of data bits for the UART style device.
A new device path node is defined to declare flow control characteristics.
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 FlowControlMap
Bitmap of supported flow control types.
EFI_GUID Guid
DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL GUID.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Pun
Target ID on the UFS bus (PUN).
UINT8 Lun
Logical Unit Number (LUN).
EFI_DEVICE_PATH_PROTOCOL Header
CHAR8 Uri[]
Instance of the URI pursuant to RFC 3986.
UINT8 DeviceSubClass
The subclass code assigned by the USB-IF.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 DeviceClass
The class code assigned by the USB-IF.
UINT16 ProductId
Product ID assigned by USB-IF.
UINT8 DeviceProtocol
The protocol code assigned by the USB-IF.
UINT16 VendorId
Vendor ID assigned by USB-IF.
UINT8 InterfaceNumber
USB Interface Number.
UINT8 ParentPortNumber
USB Parent Port Number.
EFI_DEVICE_PATH_PROTOCOL Header
This device path describes a USB device using its serial number.
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 ProductId
USB product id of the device.
UINT16 VendorId
USB vendor id of the device.
UINT16 InterfaceNumber
USB interface number.
The Vendor Device Path allows the creation of vendor-defined Device Paths.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_GUID Guid
Vendor-assigned GUID that defines the data that follows.
UINT16 VlanId
VLAN identifier (0-4094).
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 SSId[32]
Service set identifier.
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
BLUETOOTH_DEVICE_PATH * Bluetooth
FIBRECHANNEL_DEVICE_PATH * FibreChannel
INFINIBAND_DEVICE_PATH * InfiniBand
USB_WWID_DEVICE_PATH * UsbWwid
NVME_NAMESPACE_DEVICE_PATH * NvmeNamespace
MEDIA_FW_VOL_DEVICE_PATH * FirmwareVolume
NVME_OF_NAMESPACE_DEVICE_PATH * NvmeOfNamespace
MEDIA_RAM_DISK_DEVICE_PATH * RamDisk
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
Union of all possible Device Paths and pointers to Device Paths.
USB_WWID_DEVICE_PATH UsbWwid
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace
FIBRECHANNELEX_DEVICE_PATH FibreChannelEx
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset
BLUETOOTH_DEVICE_PATH Bluetooth
FIBRECHANNEL_DEVICE_PATH FibreChannel
INFINIBAND_DEVICE_PATH InfiniBand
CONTROLLER_DEVICE_PATH Controller
DEVICE_LOGICAL_UNIT_DEVICE_PATH LogicUnit
MEDIA_RAM_DISK_DEVICE_PATH RamDisk
USB_CLASS_DEVICE_PATH UsbClass
NVME_OF_NAMESPACE_DEVICE_PATH NvmeOfNamespace
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
16-byte buffer aligned on a 4-byte boundary.