diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c b/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c index 0716830989..eb9bbd971f 100644 --- a/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c +++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c @@ -395,11 +395,9 @@ ErrorExit: gBS->CloseEvent (UsbKeyboardDevice->SimpleInputEx.WaitForKeyEx); } if (UsbKeyboardDevice->KeyboardLayoutEvent != NULL) { + ReleaseKeyboardLayoutResources (UsbKeyboardDevice); gBS->CloseEvent (UsbKeyboardDevice->KeyboardLayoutEvent); } - if (UsbKeyboardDevice->KeyConvertionTable != NULL) { - FreePool (UsbKeyboardDevice->KeyConvertionTable); - } FreePool (UsbKeyboardDevice); UsbKeyboardDevice = NULL; } diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf index e213cc7d85..9b38c9cf64 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf @@ -72,7 +72,12 @@ [Guids] gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable:"PlatformLang" - + ## + # Event registered to EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID group, + # which will be triggered by EFI_HII_DATABASE_PROTOCOL.SetKeyboardLayout(). + ## + gEfiHiiKeyBoardLayoutGuid ## SOMETIME_CONSUMES ## Event + [Depex] TRUE diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c index 85202b2b63..04801fc334 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c @@ -20,7 +20,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. // Global variables // EFI_EVENT gHiiKeyboardLayoutChanged; -EFI_GUID gHiiSetKbdLayoutEventGuid = EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID; HII_DATABASE_PRIVATE_DATA mPrivate = { HII_DATABASE_PRIVATE_DATA_SIGNATURE, @@ -168,7 +167,7 @@ InitializeHiiDatabase ( TPL_NOTIFY, KeyboardLayoutChangeNullEvent, NULL, - &gHiiSetKbdLayoutEventGuid, + &gEfiHiiKeyBoardLayoutGuid, &gHiiKeyboardLayoutChanged ); if (EFI_ERROR (Status)) {