]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
Correct DriverSample ConfigAcess protocol ExtractConfig interface.
[mirror_edk2.git] / MdeModulePkg / Universal / DriverSampleDxe / DriverSample.c
index 74866be7a96fcf663e40e41b9fed4c47a9e5f4e5..38d36f8a287a26c292f8a5e0c9278c7293870fe1 100644 (file)
@@ -22,11 +22,6 @@ EFI_GUID   mFormSetGuid = FORMSET_GUID;
 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
@@ -347,17 +342,19 @@ ExtractConfig (
   DRIVER_SAMPLE_PRIVATE_DATA       *PrivateData;\r
   EFI_HII_CONFIG_ROUTING_PROTOCOL  *HiiConfigRouting;\r
   EFI_STRING                       ConfigRequest;\r
+  EFI_STRING                       ConfigRequestHdr;\r
   UINTN                            Size;\r
   \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
-  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
@@ -387,9 +384,11 @@ ExtractConfig (
     // 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
-    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
@@ -822,7 +821,7 @@ DriverSampleInit (
   DRIVER_SAMPLE_CONFIGURATION     *Configuration;\r
   BOOLEAN                         ActionFlag;\r
   EFI_STRING                      ConfigRequestHdr;  \r
-\r
+  \r
   //\r
   // Initialize the local variables.\r
   //\r