// Try to get the current setting from variable.\r
//\r
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);\r
- gRT->GetVariable (\r
- VariableName,\r
- &mFormSetGuid,\r
- NULL,\r
- &BufferSize,\r
- &PrivateData->Configuration\r
- );\r
+ Status = gRT->GetVariable (\r
+ VariableName,\r
+ &mFormSetGuid,\r
+ NULL,\r
+ &BufferSize,\r
+ &PrivateData->Configuration\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
\r
if (Request == NULL) {\r
//\r
// Get Buffer Storage data from EFI variable\r
//\r
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);\r
- gRT->GetVariable (\r
- VariableName,\r
- &mFormSetGuid,\r
- NULL,\r
- &BufferSize,\r
- &PrivateData->Configuration\r
- );\r
+ Status = gRT->GetVariable (\r
+ VariableName,\r
+ &mFormSetGuid,\r
+ NULL,\r
+ &BufferSize,\r
+ &PrivateData->Configuration\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
\r
//\r
// Convert <ConfigResp> to buffer data by helper function ConfigToBlock()\r
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);\r
Status = gRT->GetVariable (VariableName, &mFormSetGuid, NULL, &BufferSize, Configuration);\r
if (EFI_ERROR (Status)) {\r
+ //\r
+ // Store zero data Buffer Storage to EFI variable\r
+ //\r
+ Status = gRT->SetVariable(\r
+ VariableName,\r
+ &mFormSetGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+ sizeof (DRIVER_SAMPLE_CONFIGURATION),\r
+ Configuration\r
+ );\r
+ ASSERT (Status == EFI_SUCCESS);\r
//\r
// EFI variable for NV config doesn't exit, we should build this variable\r
// based on default values stored in IFR\r