StrPtr = (CHAR8 *) (&InquiryData.Reserved_5_95[VENDOR_IDENTIFICATION_OFFSET]);\r
Temp = StrPtr[VENDOR_IDENTIFICATION_LENGTH];\r
StrPtr[VENDOR_IDENTIFICATION_LENGTH] = '\0';\r
- AsciiStrToUnicodeStr (StrPtr, Description);\r
+ AsciiStrToUnicodeStrS (StrPtr, Description, VENDOR_IDENTIFICATION_LENGTH + 1);\r
StrPtr[VENDOR_IDENTIFICATION_LENGTH] = Temp;\r
\r
//\r
\r
StrPtr = (CHAR8 *) (&InquiryData.Reserved_5_95[PRODUCT_IDENTIFICATION_OFFSET]);\r
StrPtr[PRODUCT_IDENTIFICATION_LENGTH] = '\0';\r
- AsciiStrToUnicodeStr (StrPtr, Description + VENDOR_IDENTIFICATION_LENGTH + 1);\r
+ AsciiStrToUnicodeStrS (StrPtr, Description + VENDOR_IDENTIFICATION_LENGTH + 1, PRODUCT_IDENTIFICATION_LENGTH + 1);\r
\r
BmEliminateExtraSpaces (Description);\r
}\r
return Description;\r
}\r
\r
+/**\r
+ Return the boot description for LoadFile\r
+\r
+ @param Handle Controller handle.\r
+\r
+ @return The description string.\r
+**/\r
+CHAR16 *\r
+BmGetLoadFileDescription (\r
+ IN EFI_HANDLE Handle\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ EFI_DEVICE_PATH_PROTOCOL *FilePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePathNode;\r
+ CHAR16 *Description;\r
+ EFI_LOAD_FILE_PROTOCOL *LoadFile;\r
+\r
+ Status = gBS->HandleProtocol (Handle, &gEfiLoadFileProtocolGuid, (VOID **)&LoadFile);\r
+ if (EFI_ERROR (Status)) {\r
+ return NULL;\r
+ }\r
+\r
+ //\r
+ // Get the file name\r
+ //\r
+ Description = NULL;\r
+ Status = gBS->HandleProtocol (Handle, &gEfiDevicePathProtocolGuid, (VOID **)&FilePath);\r
+ if (!EFI_ERROR (Status)) {\r
+ DevicePathNode = FilePath;\r
+ while (!IsDevicePathEnd (DevicePathNode)) {\r
+ if (DevicePathNode->Type == MEDIA_DEVICE_PATH && DevicePathNode->SubType == MEDIA_FILEPATH_DP) {\r
+ Description = (CHAR16 *)(DevicePathNode + 1);\r
+ break;\r
+ }\r
+ DevicePathNode = NextDevicePathNode (DevicePathNode);\r
+ }\r
+ }\r
+\r
+ if (Description != NULL) {\r
+ return AllocateCopyPool (StrSize (Description), Description);\r
+ }\r
+\r
+ return NULL;\r
+}\r
+\r
/**\r
Return the boot description for the controller based on the type.\r
\r
BmGetUsbDescription,\r
BmGetDescriptionFromDiskInfo,\r
BmGetNetworkDescription,\r
+ BmGetLoadFileDescription,\r
BmGetMiscDescription\r
};\r
\r