+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// 8-byte array of the SAS Address for Serial Attached SCSI Target Port.\r
+ ///\r
+ UINT8 SasAddress[8];\r
+ ///\r
+ /// 8-byte array of the SAS Logical Unit Number.\r
+ ///\r
+ UINT8 Lun[8];\r
+ ///\r
+ /// More Information about the device and its interconnect.\r
+ ///\r
+ UINT16 DeviceTopology;\r
+ ///\r
+ /// Relative Target Port (RTP).\r
+ ///\r
+ UINT16 RelativeTargetPort;\r
+} SASEX_DEVICE_PATH;\r
+\r
+///\r
+/// NvmExpress Namespace Device Path SubType.\r
+///\r
+#define MSG_NVME_NAMESPACE_DP 0x17\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ UINT32 NamespaceId;\r
+ UINT64 NamespaceUuid;\r
+} NVME_NAMESPACE_DEVICE_PATH;\r
+\r
+///\r
+/// DNS Device Path SubType\r
+///\r
+#define MSG_DNS_DP 0x1F\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Indicates the DNS server address is IPv4 or IPv6 address.\r
+ ///\r
+ UINT8 IsIPv6;\r
+ ///\r
+ /// Instance of the DNS server address.\r
+ ///\r
+ EFI_IP_ADDRESS DnsServerIp[];\r
+} DNS_DEVICE_PATH;\r
+\r
+///\r
+/// Uniform Resource Identifiers (URI) Device Path SubType\r
+///\r
+#define MSG_URI_DP 0x18\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Instance of the URI pursuant to RFC 3986.\r
+ ///\r
+ CHAR8 Uri[];\r
+} URI_DEVICE_PATH;\r
+\r
+///\r
+/// Universal Flash Storage (UFS) Device Path SubType.\r
+///\r
+#define MSG_UFS_DP 0x19\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Target ID on the UFS bus (PUN).\r
+ ///\r
+ UINT8 Pun;\r
+ ///\r
+ /// Logical Unit Number (LUN).\r
+ ///\r
+ UINT8 Lun;\r
+} UFS_DEVICE_PATH;\r
+\r
+///\r
+/// SD (Secure Digital) Device Path SubType.\r
+///\r
+#define MSG_SD_DP 0x1A\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ UINT8 SlotNumber;\r
+} SD_DEVICE_PATH;\r
+\r
+///\r
+/// EMMC (Embedded MMC) Device Path SubType.\r
+///\r
+#define MSG_EMMC_DP 0x1D\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ UINT8 SlotNumber;\r
+} EMMC_DEVICE_PATH;\r
+\r
+///\r
+/// iSCSI Device Path SubType\r
+///\r
+#define MSG_ISCSI_DP 0x13\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ ///\r
+ /// Network Protocol (0 = TCP, 1+ = reserved).\r
+ ///\r
+ UINT16 NetworkProtocol;\r
+ ///\r
+ /// iSCSI Login Options.\r
+ ///\r
+ UINT16 LoginOption;\r
+ ///\r
+ /// iSCSI Logical Unit Number.\r
+ ///\r
+ UINT64 Lun;\r
+ ///\r
+ /// iSCSI Target Portal group tag the initiator intends\r
+ /// to establish a session with.\r
+ ///\r
+ UINT16 TargetPortalGroupTag;\r
+ ///\r
+ /// iSCSI NodeTarget Name. The length of the name\r
+ /// is determined by subtracting the offset of this field from Length.\r
+ ///\r
+ /// CHAR8 iSCSI Target Name.\r