If the storage of the question is EFI_HII_VARSTORE_BUFFER/EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER, in SetupBrowserDxe the configuration stings contain uppercase,but HiiDataBaseDxe generates the ConfigResp string in lowercase,they mismatch,so FindQuestionFromProgress function is broken. Now convert the configuration string in SetupBrowserDxe to lowercase to fix this issue.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan...@intel.com> --- MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c | 1 + MdeModulePkg/Universal/SetupBrowserDxe/Setup.h | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c index 953e3a5..8e8607d 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c @@ -713,10 +713,11 @@ InitializeRequestElement ( 30 * sizeof (CHAR16), L"&OFFSET=%04x&WIDTH=%04x", Question->VarStoreInfo.VarOffset, Question->StorageWidth ); + HiiToLower(RequestElement); Question->BlockName = AllocateCopyPool ((StrLen + 1) * sizeof (CHAR16), RequestElement); } else { StrLen = UnicodeSPrint (RequestElement, 30 * sizeof (CHAR16), L"&%s", Question->VariableName); } diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h index cfd8133..1238197 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h @@ -1847,6 +1847,19 @@ GetFstStgFromBrsStg ( BOOLEAN ReconnectController ( IN EFI_HANDLE DriverHandle ); +/** + Converts the unicode character of the string from uppercase to lowercase. + This is a internal function. + + @param ConfigString String to be converted + +**/ +VOID +EFIAPI +HiiToLower ( + IN EFI_STRING ConfigString + ); + #endif -- 1.9.5.msysgit.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel