/* The destructor function frees memory allocated by constructor, and closes related events. It will ASSERT() if that related operation fails and it will always return EFI_SUCCESS. */
EFI_STATUS EFIAPI ReportStatusCodeLibDestructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
/* The destructor function frees memory allocated by constructor, and closes related events. It will ASSERT() if that related operation fails and it will always return EFI_SUCCESS. */
EFI_STATUS EFIAPI ReportStatusCodeLibDestructor(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
{
  EFI_STATUS  Status;
  ASSERT (gBS != NULL);
  Status = gBS->CloseEvent (mReportStatusCodeLibVirtualAddressChangeEvent);
  ASSERT_EFI_ERROR (Status);
  Status = gBS->CloseEvent (mReportStatusCodeLibExitBootServicesEvent);
  ASSERT_EFI_ERROR (Status);
  return EFI_SUCCESS;
}