diff options
-rw-r--r-- | MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c index a205da09a3..a11333ccf5 100644 --- a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c +++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c @@ -299,6 +299,10 @@ UINT8 ModifierValueToEfiScanCodeConvertionTable[] = { SCAN_F10, // EFI_FUNCTION_KEY_TEN_MODIFIER
SCAN_F11, // EFI_FUNCTION_KEY_ELEVEN_MODIFIER
SCAN_F12, // EFI_FUNCTION_KEY_TWELVE_MODIFIER
+ SCAN_NULL, // EFI_PRINT_MODIFIER
+ SCAN_NULL, // EFI_SYS_REQUEST_MODIFIER
+ SCAN_NULL, // EFI_SCROLL_LOCK_MODIFIER
+ SCAN_PAUSE // EFI_PAUSE_MODIFIER
};
/**
@@ -1476,17 +1480,6 @@ USBParseKey ( continue;
break;
- //
- // PrintScreen, Pause/Break could not be retrieved via SimpleTextInEx protocol
- //
- case EFI_PAUSE_MODIFIER:
- case EFI_BREAK_MODIFIER:
- //
- // Fall through
- //
- continue;
- break;
-
default:
break;
}
@@ -1569,7 +1562,7 @@ UsbKeyCodeToEfiInputKey ( //
// Make sure modifier of Key Descriptor is in the valid range according to UEFI spec.
//
- if (KeyDescriptor->Modifier > EFI_FUNCTION_KEY_TWELVE_MODIFIER) {
+ if (KeyDescriptor->Modifier > (sizeof (ModifierValueToEfiScanCodeConvertionTable) / sizeof (UINT8))) {
return EFI_DEVICE_ERROR;
}
|