///\r
\r
STATIC EFI_EVENT mEfiVirtualNotifyEvent;\r
+STATIC EFI_EVENT mEfiExitBootServicesEvent;\r
STATIC BOOLEAN mEfiGoneVirtual = FALSE;\r
STATIC BOOLEAN mEfiAtRuntime = FALSE;\r
EFI_RUNTIME_SERVICES *mRT;\r
@param[in] Event The Event that is being processed\r
@param[in] Context Event Context\r
**/\r
+STATIC\r
VOID\r
EFIAPI\r
-RuntimeDriverExitBootServices (\r
+RuntimeLibExitBootServicesEvent (\r
IN EFI_EVENT Event,\r
IN VOID *Context\r
)\r
IN VOID *Context\r
)\r
{\r
- UINTN Index;\r
- EFI_EVENT_NOTIFY ChildNotifyEventHandler;\r
-\r
- for (Index = 0;\r
- _gDriverSetVirtualAddressMapEvent[Index] != NULL;\r
- Index++) {\r
- ChildNotifyEventHandler = _gDriverSetVirtualAddressMapEvent[Index];\r
- ChildNotifyEventHandler (Event, NULL);\r
- }\r
-\r
//\r
// Update global for Runtime Services Table and IO\r
//\r
\r
ASSERT_EFI_ERROR (Status);\r
\r
+ Status = gBS->CreateEvent (\r
+ EVT_SIGNAL_EXIT_BOOT_SERVICES,\r
+ TPL_NOTIFY,\r
+ RuntimeLibExitBootServicesEvent,\r
+ NULL,\r
+ &mEfiExitBootServicesEvent\r
+ );\r
+\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
return Status;\r
}\r
\r
Status = gBS->CloseEvent (mEfiVirtualNotifyEvent);\r
ASSERT_EFI_ERROR (Status);\r
\r
+ Status = gBS->CloseEvent (mEfiExitBootServicesEvent);\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
return Status;\r
}\r
\r