// Driver Lib Module Globals\r
//\r
\r
-STATIC EFI_EVENT mRuntimeNotifyEvent;\r
STATIC EFI_EVENT mEfiVirtualNotifyEvent;\r
STATIC BOOLEAN mEfiGoneVirtual = FALSE;\r
STATIC BOOLEAN mEfiAtRuntime = FALSE;\r
-\r
EFI_RUNTIME_SERVICES *mRT;\r
\r
-STATIC\r
VOID\r
EFIAPI\r
RuntimeDriverExitBootServices (\r
\r
--*/\r
{\r
- EFI_EVENT_NOTIFY ChildNotifyEventHandler;\r
- UINTN Index;\r
-\r
- for (Index = 0; \r
- _gDriverExitBootServicesEvent[Index] != NULL;\r
- Index++) {\r
- ChildNotifyEventHandler = _gDriverExitBootServicesEvent[Index];\r
- ChildNotifyEventHandler (Event, NULL);\r
- }\r
-\r
//\r
// Clear out BootService globals\r
//\r
\r
mRT = SystemTable->RuntimeServices;\r
\r
- //\r
- // Register our ExitBootServices () notify function\r
- //\r
- Status = gBS->CreateEvent (\r
- EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES,\r
- EFI_TPL_NOTIFY,\r
- RuntimeDriverExitBootServices,\r
- NULL,\r
- &mRuntimeNotifyEvent\r
- );\r
-\r
- ASSERT_EFI_ERROR (Status);\r
-\r
//\r
// Register SetVirtualAddressMap () notify function\r
// \r
+ if (_gDriverSetVirtualAddressMapEvent[0] != NULL) {\r
Status = gBS->CreateEvent (\r
EFI_EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE,\r
EFI_TPL_NOTIFY,\r
);\r
\r
ASSERT_EFI_ERROR (Status);\r
+ }\r
\r
return EFI_SUCCESS;\r
}\r
{\r
EFI_STATUS Status;\r
\r
- //\r
- // Close our ExitBootServices () notify function\r
- //\r
- Status = gBS->CloseEvent (mRuntimeNotifyEvent);\r
- ASSERT_EFI_ERROR (Status);\r
-\r
//\r
// Close SetVirtualAddressMap () notify function\r
//\r
+ if (_gDriverSetVirtualAddressMapEvent[0] != NULL) {\r
Status = gBS->CloseEvent (mEfiVirtualNotifyEvent);\r
ASSERT_EFI_ERROR (Status);\r
+ }\r
\r
return EFI_SUCCESS;\r
}\r