if (Languages == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
+ \r
+ if (StringId == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ *StringId = 0;\r
\r
LangStrings = Languages;\r
while (*LangStrings != 0) {\r
GetNextLanguage (&LangStrings, Lang);\r
\r
- Status = gIfrLibHiiString->NewString (\r
- gIfrLibHiiString,\r
- PackageList,\r
- StringId,\r
- Lang,\r
- NULL,\r
- String,\r
- NULL\r
- );\r
+ if (*StringId == 0) {\r
+ Status = gIfrLibHiiString->NewString (\r
+ gIfrLibHiiString,\r
+ PackageList,\r
+ StringId,\r
+ Lang,\r
+ NULL,\r
+ String,\r
+ NULL\r
+ );\r
+ } else {\r
+ Status = gIfrLibHiiString->SetString (\r
+ gIfrLibHiiString,\r
+ PackageList,\r
+ *StringId,\r
+ Lang,\r
+ String,\r
+ NULL\r
+ );\r
+ }\r
+\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r