MdePkg/UefiDebugLibDebugPortProtocol: Add destructor to CloseEvent

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2012

When driver is unloaded, the ExitBootSerivesEvent must be closed at
the same time. Otherwise exception will occur when ExitBootServices.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Xu, Wei6 2019-07-26 11:10:54 +08:00 committed by Liming Gao
parent e92bdcb3ec
commit 0f4b77f5b2
2 changed files with 24 additions and 0 deletions

View File

@ -75,3 +75,26 @@ DxeDebugLibConstructor(
return EFI_SUCCESS;
}
/**
The destructor closes Exit Boot Services Event.
@param ImageHandle The firmware allocated handle for the EFI image.
@param SystemTable A pointer to the EFI System Table.
@retval EFI_SUCCESS The destructor always returns EFI_SUCCESS.
**/
EFI_STATUS
EFIAPI
DxeDebugLibDestructor(
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
if (mExitBootServicesEvent != NULL) {
SystemTable->BootServices->CloseEvent (mExitBootServicesEvent);
}
return EFI_SUCCESS;
}

View File

@ -22,6 +22,7 @@
LIBRARY_CLASS = DebugLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER UEFI_APPLICATION UEFI_DRIVER
CONSTRUCTOR = DxeDebugLibConstructor
DESTRUCTOR = DxeDebugLibDestructor
#
# VALID_ARCHITECTURES = IA32 X64 EBC