Correct SetupBrowser to set default value for default sting ID.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8660
6f19259b-4bc3-4df7-8a09-
765794883524
EFI_GUID mInventoryGuid = INVENTORY_GUID;\r
\r
CHAR16 VariableName[] = L"MyIfrNVData";\r
EFI_GUID mInventoryGuid = INVENTORY_GUID;\r
\r
CHAR16 VariableName[] = L"MyIfrNVData";\r
-//\r
-// <ConfigHdr> Template\r
-//\r
-CONST CHAR16 mDriverSampleConfigHdr[] = L"GUID=00000000000000000000000000000000&NAME=0000&PATH=00";\r
-\r
EFI_HANDLE DriverHandle[2] = {NULL, NULL};\r
DRIVER_SAMPLE_PRIVATE_DATA *PrivateData = NULL;\r
\r
EFI_HANDLE DriverHandle[2] = {NULL, NULL};\r
DRIVER_SAMPLE_PRIVATE_DATA *PrivateData = NULL;\r
\r
DRIVER_SAMPLE_PRIVATE_DATA *PrivateData;\r
EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;\r
EFI_STRING ConfigRequest;\r
DRIVER_SAMPLE_PRIVATE_DATA *PrivateData;\r
EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;\r
EFI_STRING ConfigRequest;\r
+ EFI_STRING ConfigRequestHdr;\r
- if (Progress == NULL || Results == NULL) {\r
+ if (Progress == NULL || Results == NULL || Request == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
// Initialize the local variables.\r
//\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
// Initialize the local variables.\r
//\r
- ConfigRequest = NULL;\r
- Size = 0;\r
- *Progress = Request;\r
+ ConfigRequestHdr = NULL;\r
+ ConfigRequest = NULL;\r
+ Size = 0;\r
+ *Progress = Request;\r
\r
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);\r
HiiConfigRouting = PrivateData->HiiConfigRouting;\r
\r
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);\r
HiiConfigRouting = PrivateData->HiiConfigRouting;\r
// Allocate and fill a buffer large enough to hold the <ConfigHdr> template \r
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
//\r
// Allocate and fill a buffer large enough to hold the <ConfigHdr> template \r
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
//\r
- Size = (StrLen (mDriverSampleConfigHdr) + 32 + 1) * sizeof (CHAR16);\r
+ ConfigRequestHdr = HiiConstructConfigHdr (&mFormSetGuid, VariableName, PrivateData->DriverHandle[0]);\r
+ Size = (StrLen (ConfigRequest) + 32 + 1) * sizeof (CHAR16);\r
ConfigRequest = AllocateZeroPool (Size);\r
ConfigRequest = AllocateZeroPool (Size);\r
- UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", mDriverSampleConfigHdr, (UINT64)BufferSize);\r
+ UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);\r
+ FreePool (ConfigRequestHdr);\r
} else {\r
//\r
// Check routing data in <ConfigHdr>.\r
} else {\r
//\r
// Check routing data in <ConfigHdr>.\r
DRIVER_SAMPLE_CONFIGURATION *Configuration;\r
BOOLEAN ActionFlag;\r
EFI_STRING ConfigRequestHdr; \r
DRIVER_SAMPLE_CONFIGURATION *Configuration;\r
BOOLEAN ActionFlag;\r
EFI_STRING ConfigRequestHdr; \r
//\r
// Initialize the local variables.\r
//\r
//\r
// Initialize the local variables.\r
//\r
QUESTION_OPTION *Option;\r
EFI_HII_VALUE *HiiValue;\r
UINT8 Index;\r
QUESTION_OPTION *Option;\r
EFI_HII_VALUE *HiiValue;\r
UINT8 Index;\r
- Status = EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
+ StrValue = NULL;\r
\r
//\r
// Statement don't have storage, skip them\r
\r
//\r
// Statement don't have storage, skip them\r
CopyMem (HiiValue, &Default->Value, sizeof (EFI_HII_VALUE));\r
}\r
\r
CopyMem (HiiValue, &Default->Value, sizeof (EFI_HII_VALUE));\r
}\r
\r
+ if (HiiValue->Type == EFI_IFR_TYPE_STRING) {\r
+ StrValue = HiiGetString (FormSet->HiiHandle, HiiValue->Value.string, NULL);\r
+ if (StrValue == NULL) {\r
+ return EFI_NOT_FOUND;\r
+ }\r
+ Question->BufferValue = AllocateCopyPool (StrSize (StrValue), StrValue);\r
+ }\r
+\r
return EFI_SUCCESS;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r