diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c index 7dbbe85ce8..30be2b59b5 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c @@ -298,7 +298,7 @@ ExtractDisplayedHiiFormFromHiiHandle ( // // Find FormSet OpCode // - ClassGuidNum = ((EFI_IFR_FORM_SET *) OpCodeData)->Flags; + ClassGuidNum = ((EFI_IFR_FORM_SET *) OpCodeData)->Flags & 0x3; ClassGuid = (EFI_GUID *) (VOID *)(OpCodeData + sizeof (EFI_IFR_FORM_SET)); while (ClassGuidNum-- > 0) { if (CompareGuid (SetupClassGuid, ClassGuid)) { @@ -307,6 +307,7 @@ ExtractDisplayedHiiFormFromHiiHandle ( FreePool (HiiPackageList); return TRUE; } + ClassGuid ++; } } else { CopyMem (FormSetTitle, &((EFI_IFR_FORM_SET *) OpCodeData)->FormSetTitle, sizeof (EFI_STRING_ID));