- DataSize = sizeof (Value);\r
- Status = gRT->GetVariable (\r
- L"BootState",\r
- &gEfiBootStateGuid,\r
- &Attributes,\r
- &DataSize,\r
- &Value\r
- );\r
-\r
- if (EFI_ERROR (Status)) {\r
- Value = 1;\r
- gRT->SetVariable (\r
- L"BootState",\r
- &gEfiBootStateGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- sizeof (Value),\r
- &Value\r
- );\r
+ //\r
+ // Use a DynamicHii type pcd to save the boot status, which is used to\r
+ // control configuration mode, such as FULL/MINIMAL/NO_CHANGES configuration.\r
+ //\r
+ IsFirstBoot = PcdGetBool(PcdBootState);\r
+ if (IsFirstBoot) {\r
+ PcdSetBool(PcdBootState, FALSE);\r