+ } else {\r
+ TargetNameLength = MIN(DevicePathNodeLength (DevicePathNode) - sizeof (VENDOR_DEVICE_PATH), PcdGet32(PcdShellVendorExtendedDecode));\r
+ if (TargetNameLength != 0) {\r
+ //\r
+ // String is 2 chars per data byte, plus NULL terminator\r
+ //\r
+ Buffer = AllocateZeroPool (((TargetNameLength * 2) + 1) * sizeof(CHAR16));\r
+ ASSERT(Buffer != NULL);\r
+ if (Buffer == NULL) {\r
+ return;\r
+ }\r
+\r
+ //\r
+ // Build the string data\r
+ //\r
+ for (Index = 0; Index < TargetNameLength; Index++) {\r
+ Buffer = CatSPrint (Buffer, L"%02x", *((UINT8*)Vendor + sizeof (VENDOR_DEVICE_PATH) + Index));\r
+ }\r
+\r
+ //\r
+ // Append the new data block\r
+ //\r
+ AppendCSDStr (MappingItem, Buffer);\r
+\r
+ FreePool(Buffer);\r
+ }\r