- DEBUG_CODE (\r
- EFI_IMAGE_DATA_DIRECTORY * DirectoryEntry;\r
- EFI_IMAGE_DEBUG_DIRECTORY_ENTRY * DebugEntry;\r
- UINTN DirCount;\r
- UINTN Index;\r
- UINTN Index1;\r
- BOOLEAN FileNameFound;\r
- CHAR8 *AsciiString;\r
- CHAR8 AsciiBuffer[512];\r
- VOID *CodeViewEntryPointer;\r
- INTN TEImageAdjust;\r
- EFI_IMAGE_DOS_HEADER *DosHeader;\r
- EFI_IMAGE_NT_HEADERS *PeHeader;\r
-\r
- DosHeader = (EFI_IMAGE_DOS_HEADER *)Pe32Data;\r
- if (DosHeader->e_magic == EFI_IMAGE_DOS_SIGNATURE) {\r
- //\r
- // DOS image header is present, so read the PE header after the DOS image header\r
- //\r
- PeHeader = (EFI_IMAGE_NT_HEADERS *) ((UINTN) Pe32Data + (UINTN) ((DosHeader->e_lfanew) & 0x0ffff));\r
- } else {\r
- //\r
- // DOS image header is not present, so PE header is at the image base\r
- //\r
- PeHeader = (EFI_IMAGE_NT_HEADERS *) Pe32Data;\r
+ DEBUG_CODE_BEGIN ();\r
+ EFI_IMAGE_DATA_DIRECTORY *DirectoryEntry;\r
+ EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *DebugEntry;\r
+ UINTN DirCount;\r
+ UINTN Index;\r
+ UINTN Index1;\r
+ BOOLEAN FileNameFound;\r
+ CHAR8 *AsciiString;\r
+ CHAR8 AsciiBuffer[512];\r
+ VOID *CodeViewEntryPointer;\r
+ INTN TEImageAdjust;\r
+ EFI_IMAGE_DOS_HEADER *DosHeader;\r
+ EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION Hdr;\r
+ UINT32 NumberOfRvaAndSizes;\r
+\r
+ Hdr.Pe32 = NULL;\r
+ if (TEImageHeader == NULL) {\r
+ DosHeader = (EFI_IMAGE_DOS_HEADER *)Pe32Data;\r
+ if (DosHeader->e_magic == EFI_IMAGE_DOS_SIGNATURE) {\r
+ //\r
+ // DOS image header is present, so read the PE header after the DOS image header\r
+ //\r
+ Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN)Pe32Data + (UINTN)((DosHeader->e_lfanew) & 0x0ffff));\r
+ } else {\r
+ //\r
+ // DOS image header is not present, so PE header is at the image base\r
+ //\r
+ Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)Pe32Data;\r
+ }\r