// TODO: EFI_SUCCESS - add return value to function comment\r
{\r
EFI_STATUS Status;\r
+ EFI_IMAGE_DOS_HEADER *DosHdr;\r
+ EFI_IMAGE_NT_HEADERS *PeHdr;\r
EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;\r
PCI_DRIVER_OVERRIDE_LIST *Node;\r
+#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
EFI_DRIVER_OS_HANDOFF_HEADER *DriverOsHandoffHeader;\r
EFI_DRIVER_OS_HANDOFF_HEADER *NewDriverOsHandoffHeader;\r
EFI_DRIVER_OS_HANDOFF *DriverOsHandoff;\r
UINTN NumberOfEntries;\r
UINTN Size;\r
UINTN Index;\r
+#endif\r
\r
Status = gBS->HandleProtocol (DriverImageHandle, &gEfiLoadedImageProtocolGuid, (VOID **) &LoadedImage);\r
if (EFI_ERROR (Status)) {\r
\r
PciIoDevice->BusOverride = TRUE;\r
\r
- if (PeCoffLoaderGetMachineType ((VOID *)(UINTN)LoadedImage->ImageBase) != EFI_IMAGE_MACHINE_EBC) {\r
+ DosHdr = (EFI_IMAGE_DOS_HEADER *) LoadedImage->ImageBase;\r
+ if (DosHdr->e_magic != EFI_IMAGE_DOS_SIGNATURE) {\r
return EFI_SUCCESS;\r
}\r
\r
+ PeHdr = (EFI_IMAGE_NT_HEADERS *) ((UINTN) LoadedImage->ImageBase + DosHdr->e_lfanew);\r
+\r
+ if (PeHdr->FileHeader.Machine != EFI_IMAGE_MACHINE_EBC) {\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
DriverOsHandoffHeader = NULL;\r
Status = EfiGetSystemConfigurationTable (&gEfiUgaIoProtocolGuid, (VOID **) &DriverOsHandoffHeader);\r
if (!EFI_ERROR (Status) && DriverOsHandoffHeader != NULL) {\r
if (DriverOsHandoffHeader != NULL) {\r
gBS->FreePool (DriverOsHandoffHeader);\r
}\r
+#endif\r
\r
return EFI_SUCCESS;\r
}\r