/** @file\r
Entry point to a EFI/DXE driver.\r
\r
-Copyright (c) 2006, Intel Corporation<BR>\r
+Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
\r
**/\r
\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+\r
/**\r
Unload function that is registered in the LoadImage protocol. It un-installs\r
protocols produced and deallocates pool used by the driver. Called by the core\r
@retval EFI_SUCCESS\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
_DriverUnloadHandler (\r
// unloaded, and the library destructors should not be called\r
//\r
if (!EFI_ERROR (Status)) {\r
+\r
ProcessLibraryDestructorList (ImageHandle, gST);\r
}\r
\r
return Status;\r
}\r
\r
+\r
+/**\r
+ Notification Entry of ExitBootService event. In the entry, all notifications in _gDriverExitBootServicesEvent[]\r
+ would be invoked.\r
+\r
+ @param Event The Event that is being processed.\r
+ @param Context Event Context.\r
+\r
+**/\r
+STATIC\r
+VOID\r
+EFIAPI\r
+_DriverExitBootServices (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ )\r
+{\r
+ EFI_EVENT_NOTIFY ChildNotifyEventHandler;\r
+ UINTN Index;\r
+\r
+ for (Index = 0; _gDriverExitBootServicesEvent[Index] != NULL; Index++) {\r
+ ChildNotifyEventHandler = _gDriverExitBootServicesEvent[Index];\r
+ ChildNotifyEventHandler (Event, NULL);\r
+ }\r
+}\r
+\r
/**\r
Enrty point to DXE Driver.\r
\r
}\r
}\r
\r
- //\r
- // Call constructor for all libraries\r
- //\r
- ProcessLibraryConstructorList (ImageHandle, SystemTable);\r
-\r
//\r
// Install unload handler...\r
//\r
LoadedImage->Unload = _DriverUnloadHandler;\r
}\r
\r
+ //\r
+ // Call constructor for all libraries\r
+ //\r
+ ProcessLibraryConstructorList (ImageHandle, SystemTable);\r
+\r
//\r
// Call the driver entry point\r
//\r