CopyGuid (&ThunkContext->TagGuid, Packages->GuidId);\r
}\r
\r
- //\r
- // UEFI HII database does not allow two package list with the same GUID.\r
- // In Framework HII implementation, Packages->GuidId is used as an identifier to associate \r
- // a PackageList with only IFR to a Package list the with String package.\r
- //\r
- GenerateRandomGuid (&GuidId);\r
-\r
//\r
// UEFI HII require EFI_HII_CONFIG_ACCESS_PROTOCOL to be installed on a EFI_HANDLE, so\r
// that Setup Utility can load the Buffer Storage using this protocol.\r
if (IfrPackageCount != 0) {\r
InstallDefaultConfigAccessProtocol (Packages, ThunkContext);\r
}\r
- PackageListHeader = PrepareUefiPackageListFromFrameworkHiiPackages (Packages, &GuidId);\r
+ PackageListHeader = PrepareUefiPackageListFromFrameworkHiiPackages (Packages, &ThunkContext->TagGuid);\r
Status = mHiiDatabase->NewPackageList (\r
mHiiDatabase,\r
PackageListHeader, \r
ThunkContext->UefiHiiDriverHandle,\r
&ThunkContext->UefiHiiHandle\r
);\r
+ if (Status == EFI_INVALID_PARAMETER) {\r
+ SafeFreePool (PackageListHeader);\r
+ \r
+ //\r
+ // UEFI HII database does not allow two package list with the same GUID.\r
+ // In Framework HII implementation, Packages->GuidId is used as an identifier to associate \r
+ // a PackageList with only IFR to a Package list the with String package.\r
+ //\r
+ GenerateRandomGuid (&GuidId);\r
+\r
+ PackageListHeader = PrepareUefiPackageListFromFrameworkHiiPackages (Packages, &GuidId);\r
+ Status = mHiiDatabase->NewPackageList (\r
+ mHiiDatabase,\r
+ PackageListHeader, \r
+ ThunkContext->UefiHiiDriverHandle,\r
+ &ThunkContext->UefiHiiHandle\r
+ );\r
+ }\r
\r
//\r
// BUGBUG: Remove when development is done\r