goto ErrorExit;\r
}\r
\r
+ Status = gBS->CreateEvent (\r
+ EVT_NOTIFY_SIGNAL,\r
+ TPL_CALLBACK,\r
+ KeyNotifyProcessHandler,\r
+ ConsoleIn,\r
+ &ConsoleIn->KeyNotifyProcessEvent\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ StatusCode = EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_CONTROLLER_ERROR;\r
+ goto ErrorExit;\r
+ }\r
+\r
REPORT_STATUS_CODE_WITH_DEVICE_PATH (\r
EFI_PROGRESS_CODE,\r
EFI_PERIPHERAL_KEYBOARD | EFI_P_PC_PRESENCE_DETECT,\r
if ((ConsoleIn != NULL) && (ConsoleIn->ConInEx.WaitForKeyEx != NULL)) {\r
gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);\r
}\r
+ if ((ConsoleIn != NULL) && (ConsoleIn->KeyNotifyProcessEvent != NULL)) {\r
+ gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);\r
+ }\r
KbdFreeNotifyList (&ConsoleIn->NotifyList);\r
if ((ConsoleIn != NULL) && (ConsoleIn->ControllerNameTable != NULL)) {\r
FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);\r
gBS->CloseEvent (ConsoleIn->ConInEx.WaitForKeyEx);\r
ConsoleIn->ConInEx.WaitForKeyEx = NULL;\r
}\r
+ if (ConsoleIn->KeyNotifyProcessEvent != NULL) {\r
+ gBS->CloseEvent (ConsoleIn->KeyNotifyProcessEvent);\r
+ ConsoleIn->KeyNotifyProcessEvent = NULL;\r
+ }\r
KbdFreeNotifyList (&ConsoleIn->NotifyList);\r
FreeUnicodeStringTable (ConsoleIn->ControllerNameTable);\r
gBS->FreePool (ConsoleIn);\r