**/\r
\r
#include "HiiDatabase.h"\r
+#include "HiiHandle.h"\r
\r
HII_THUNK_PRIVATE_DATA *mHiiThunkPrivateData;\r
\r
HiiGetKeyboardLayout\r
},\r
\r
- //\r
- //StaticHiiHandle\r
- //The FRAMEWORK_EFI_HII_HANDLE starts from 1 \r
- // and increase upwords untill reach the value of StaticPureUefiHiiHandle. \r
- // The code will assert to prevent overflow.\r
- (FRAMEWORK_EFI_HII_HANDLE) 1,\r
-\r
- //\r
- //StaticPureUefiHiiHandle\r
- //The Static FRAMEWORK_EFI_HII_HANDLE starts from 0xFFFF \r
- // and decrease downwords untill reach the value of StaticHiiHandle. \r
- // The code will assert to prevent overflow.\r
- //\r
- (FRAMEWORK_EFI_HII_HANDLE) 0xFFFF,\r
{\r
NULL, NULL //HiiHandleLinkList\r
},\r
CONST EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;\r
CONST EFI_HII_IMAGE_PROTOCOL *mHiiImageProtocol;\r
CONST EFI_HII_STRING_PROTOCOL *mHiiStringProtocol;\r
+CONST EFI_HII_FONT_PROTOCOL *mHiiFontProtocol;\r
CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRoutingProtocol;\r
CONST EFI_FORM_BROWSER2_PROTOCOL *mFormBrowser2Protocol;\r
\r
UINTN BufferLength;\r
EFI_HII_HANDLE *Buffer;\r
UINTN Index;\r
+ HII_THUNK_CONTEXT *ThunkContext;\r
\r
\r
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiHiiProtocolGuid);\r
ASSERT (Private != NULL);\r
InitializeListHead (&Private->ThunkContextListHead);\r
\r
+ InitHiiHandleDatabase ();\r
+\r
mHiiThunkPrivateData = Private;\r
\r
Status = gBS->LocateProtocol (\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
+ Status = gBS->LocateProtocol (\r
+ &gEfiHiiFontProtocolGuid,\r
+ NULL,\r
+ (VOID **) &mHiiFontProtocol\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
Status = gBS->LocateProtocol (\r
&gEfiHiiConfigRoutingProtocolGuid,\r
NULL,\r
Status = HiiLibListPackageLists (EFI_HII_PACKAGE_STRINGS, NULL, &BufferLength, &Buffer);\r
if (Status == EFI_SUCCESS) {\r
for (Index = 0; Index < BufferLength / sizeof (EFI_HII_HANDLE); Index++) {\r
- CreateThunkContextForUefiHiiHandle (Private, Buffer[Index]);\r
- ASSERT_EFI_ERROR (Status);\r
+ ThunkContext = CreateThunkContextForUefiHiiHandle (Buffer[Index]);\r
+ ASSERT (ThunkContext!= NULL);\r
+ \r
+ InsertTailList (&Private->ThunkContextListHead, &ThunkContext->Link);\r
}\r
\r
FreePool (Buffer);\r