\r
CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabaseProt;\r
CONST EFI_HII_STRING_PROTOCOL *mHiiStringProt;\r
\r
CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabaseProt;\r
CONST EFI_HII_STRING_PROTOCOL *mHiiStringProt;\r
- @param ImageHandle The firmware allocated handle for the EFI image.\r
- @param SystemTable A pointer to the EFI System Table.\r
- \r
- @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
+ This function locate Hii relative protocols for later usage.\r
+\r
+ @param VOID\r
+\r
+ @retval VOID\r
- EFI_STATUS Status;\r
- \r
- Status = gBS->LocateProtocol (\r
- &gEfiHiiDatabaseProtocolGuid,\r
- NULL,\r
- (VOID **) &mHiiDatabaseProt\r
- );\r
+ EFI_STATUS Status;\r
+\r
+ if (mHiiProtocolsInitialized) {\r
+ return;\r
+ }\r
+\r
+ Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &mHiiDatabaseProt);\r
- Status = gBS->LocateProtocol (\r
- &gEfiHiiStringProtocolGuid,\r
- NULL,\r
- (VOID **) &mHiiStringProt\r
- );\r
+ Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **) &mHiiStringProt);\r
VA_START (Args, HiiHandle);\r
PackageListHeader = InternalHiiLibPreparePackages (NumberOfPackages, GuidId, Args);\r
\r
VA_START (Args, HiiHandle);\r
PackageListHeader = InternalHiiLibPreparePackages (NumberOfPackages, GuidId, Args);\r
\r
Status = mHiiDatabaseProt->RemovePackageList (mHiiDatabaseProt, HiiHandle);\r
ASSERT_EFI_ERROR (Status);\r
}\r
Status = mHiiDatabaseProt->RemovePackageList (mHiiDatabaseProt, HiiHandle);\r
ASSERT_EFI_ERROR (Status);\r
}\r
Status = mHiiDatabaseProt->ExportPackageLists (mHiiDatabaseProt, Handle, &BufferSize, HiiPackageList);\r
ASSERT (Status != EFI_NOT_FOUND);\r
\r
Status = mHiiDatabaseProt->ExportPackageLists (mHiiDatabaseProt, Handle, &BufferSize, HiiPackageList);\r
ASSERT (Status != EFI_NOT_FOUND);\r
\r