\r
{\r
EFI_STATUS Status;\r
- EFI_IMAGE_DOS_HEADER *DosHdr;\r
- EFI_IMAGE_NT_HEADERS *PeHdr;\r
EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;\r
+ PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;\r
PCI_DRIVER_OVERRIDE_LIST *Node;\r
#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
EFI_DRIVER_OS_HANDOFF_HEADER *DriverOsHandoffHeader;\r
\r
PciIoDevice->BusOverride = TRUE;\r
\r
- DosHdr = (EFI_IMAGE_DOS_HEADER *) LoadedImage->ImageBase;\r
- if (DosHdr->e_magic != EFI_IMAGE_DOS_SIGNATURE) {\r
+\r
+ ImageContext.Handle = LoadedImage->ImageBase;\r
+ ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;\r
+\r
+ //\r
+ // Get information about the image \r
+ //\r
+ Status = PeCoffLoaderGetImageInfo (&ImageContext);\r
+ if (EFI_ERROR (Status)) {\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
+ if (ImageContext.Machine != EFI_IMAGE_MACHINE_EBC) {\r
return EFI_SUCCESS;\r
}\r
\r