switch (UpdatePageId) { \r
\r
case FORM_BOOT_CHG_ID:\r
- GetBootOrder (CallbackData);\r
+ //\r
+ // If the BootOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,\r
+ // means all Boot Options has been save in BootOptionMenu, we can get the date from the menu.\r
+ // else means browser maintains some uncommitted date which are not saved in BootOptionMenu,\r
+ // so we should not get the data from BootOptionMenu to show it.\r
+ //\r
+ if (CompareMem (CallbackData->BmmFakeNvData.BootOptionOrder, CallbackData->BmmOldFakeNVData.BootOptionOrder, sizeof (CallbackData->BmmFakeNvData.BootOptionOrder)) == 0) {\r
+ GetBootOrder (CallbackData);\r
+ }\r
OptionOrder = CallbackData->BmmFakeNvData.BootOptionOrder;\r
QuestionId = BOOT_OPTION_ORDER_QUESTION_ID;\r
VarOffset = BOOT_OPTION_ORDER_VAR_OFFSET;\r
break;\r
\r
case FORM_DRV_CHG_ID:\r
- GetDriverOrder (CallbackData);\r
+ //\r
+ // If the DriverOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,\r
+ // means all Driver Options has been save in DriverOptionMenu, we can get the DriverOptionOrder from the menu.\r
+ // else means browser maintains some uncommitted date which are not saved in DriverOptionMenu,\r
+ // so we should not get the data from DriverOptionMenu to show it.\r
+ //\r
+ if (CompareMem (CallbackData->BmmFakeNvData.DriverOptionOrder, CallbackData->BmmOldFakeNVData.DriverOptionOrder, sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder)) == 0) {\r
+ GetDriverOrder (CallbackData);\r
+ }\r
OptionOrder = CallbackData->BmmFakeNvData.DriverOptionOrder;\r
QuestionId = DRIVER_OPTION_ORDER_QUESTION_ID;\r
VarOffset = DRIVER_OPTION_ORDER_VAR_OFFSET;\r