OUT EFI_HANDLE *NotifyHandle\r
)\r
{\r
- EFI_STATUS Status;\r
TERMINAL_DEV *TerminalDevice;\r
TERMINAL_CONSOLE_IN_EX_NOTIFY *NewNotify;\r
LIST_ENTRY *Link;\r
\r
NewNotify->Signature = TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE;\r
NewNotify->KeyNotificationFn = KeyNotificationFunction;\r
+ NewNotify->NotifyHandle = (EFI_HANDLE) NewNotify;\r
CopyMem (&NewNotify->KeyData, KeyData, sizeof (KeyData));\r
InsertTailList (&TerminalDevice->NotifyList, &NewNotify->NotifyEntry);\r
- //\r
- // Use gSimpleTextInExNotifyGuid to get a valid EFI_HANDLE\r
- //\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &NewNotify->NotifyHandle,\r
- &gSimpleTextInExNotifyGuid,\r
- NULL,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+\r
*NotifyHandle = NewNotify->NotifyHandle;\r
\r
return EFI_SUCCESS;\r
IN EFI_HANDLE NotificationHandle\r
)\r
{\r
- EFI_STATUS Status;\r
TERMINAL_DEV *TerminalDevice;\r
LIST_ENTRY *Link;\r
TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = gBS->OpenProtocol (\r
- NotificationHandle,\r
- &gSimpleTextInExNotifyGuid,\r
- NULL,\r
- NULL,\r
- NULL,\r
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL\r
- );\r
- if (EFI_ERROR (Status)) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
-\r
TerminalDevice = TERMINAL_CON_IN_EX_DEV_FROM_THIS (This);\r
\r
NotifyList = &TerminalDevice->NotifyList;\r
// Remove the notification function from NotifyList and free resources\r
//\r
RemoveEntryList (&CurrentNotify->NotifyEntry);\r
- Status = gBS->UninstallMultipleProtocolInterfaces (\r
- CurrentNotify->NotifyHandle,\r
- &gSimpleTextInExNotifyGuid,\r
- NULL,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+\r
gBS->FreePool (CurrentNotify);\r
return EFI_SUCCESS;\r
}\r