);\r
}\r
\r
+/**\r
+ Converts a URI device path structure to its string representative.\r
+\r
+ @param Str The string representative of input device.\r
+ @param DevPath The input device path structure.\r
+ @param DisplayOnly If DisplayOnly is TRUE, then the shorter text representation\r
+ of the display node is used, where applicable. If DisplayOnly\r
+ is FALSE, then the longer text representation of the display node\r
+ is used.\r
+ @param AllowShortcuts If AllowShortcuts is TRUE, then the shortcut forms of text\r
+ representation for a device node can be used, where applicable.\r
+\r
+**/\r
+VOID\r
+DevPathToTextUri (\r
+ IN OUT POOL_PRINT *Str,\r
+ IN VOID *DevPath,\r
+ IN BOOLEAN DisplayOnly,\r
+ IN BOOLEAN AllowShortcuts\r
+ )\r
+{\r
+ URI_DEVICE_PATH *Uri;\r
+ UINTN UriLength;\r
+ CHAR8 *UriStr;\r
+\r
+ //\r
+ // Uri in the device path may not be null terminated.\r
+ //\r
+ Uri = DevPath;\r
+ UriLength = DevicePathNodeLength (Uri) - sizeof (URI_DEVICE_PATH);\r
+ UriStr = AllocatePool (UriLength + 1);\r
+ ASSERT (UriStr != NULL);\r
+\r
+ CopyMem (UriStr, Uri->Uri, UriLength);\r
+ UriStr[UriLength] = '\0';\r
+ UefiDevicePathLibCatPrint (Str, L"Uri(%a)", UriStr);\r
+ FreePool (UriStr);\r
+}\r
+\r
/**\r
Converts a Hard drive device path structure to its string representative.\r
\r
{MESSAGING_DEVICE_PATH, MSG_VENDOR_DP, DevPathToTextVendor },\r
{MESSAGING_DEVICE_PATH, MSG_ISCSI_DP, DevPathToTextiSCSI },\r
{MESSAGING_DEVICE_PATH, MSG_VLAN_DP, DevPathToTextVlan },\r
+ {MESSAGING_DEVICE_PATH, MSG_URI_DP, DevPathToTextUri },\r
{MESSAGING_DEVICE_PATH, MSG_BLUETOOTH_DP, DevPathToTextBluetooth },\r
{MEDIA_DEVICE_PATH, MEDIA_HARDDRIVE_DP, DevPathToTextHardDrive },\r
{MEDIA_DEVICE_PATH, MEDIA_CDROM_DP, DevPathToTextCDROM },\r