|
@@ -6991,6 +6991,261 @@ type
|
|
|
end;
|
|
|
PTrackMouseEvent = ^TTrackMouseEvent;
|
|
|
|
|
|
+
|
|
|
+// File header format.
|
|
|
+//
|
|
|
+
|
|
|
+ PIMAGE_FILE_HEADER = ^IMAGE_FILE_HEADER;
|
|
|
+ {$EXTERNALSYM PIMAGE_FILE_HEADER}
|
|
|
+ _IMAGE_FILE_HEADER = record
|
|
|
+ Machine: WORD;
|
|
|
+ NumberOfSections: WORD;
|
|
|
+ TimeDateStamp: DWORD;
|
|
|
+ PointerToSymbolTable: DWORD;
|
|
|
+ NumberOfSymbols: DWORD;
|
|
|
+ SizeOfOptionalHeader: WORD;
|
|
|
+ Characteristics: WORD;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_FILE_HEADER}
|
|
|
+ IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER;
|
|
|
+ {$EXTERNALSYM IMAGE_FILE_HEADER}
|
|
|
+ TImageFileHeader = IMAGE_FILE_HEADER;
|
|
|
+ PImageFileHeader = PIMAGE_FILE_HEADER;
|
|
|
+
|
|
|
+
|
|
|
+//
|
|
|
+// Debug Format
|
|
|
+//
|
|
|
+
|
|
|
+type
|
|
|
+ PIMAGE_DEBUG_DIRECTORY = ^IMAGE_DEBUG_DIRECTORY;
|
|
|
+ {$EXTERNALSYM PIMAGE_DEBUG_DIRECTORY}
|
|
|
+ _IMAGE_DEBUG_DIRECTORY = record
|
|
|
+ Characteristics: DWORD;
|
|
|
+ TimeDateStamp: DWORD;
|
|
|
+ MajorVersion: Word;
|
|
|
+ MinorVersion: Word;
|
|
|
+ Type_: DWORD;
|
|
|
+ SizeOfData: DWORD;
|
|
|
+ AddressOfRawData: DWORD;
|
|
|
+ PointerToRawData: DWORD;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_DEBUG_DIRECTORY}
|
|
|
+ IMAGE_DEBUG_DIRECTORY = _IMAGE_DEBUG_DIRECTORY;
|
|
|
+ {$EXTERNALSYM IMAGE_DEBUG_DIRECTORY}
|
|
|
+ TImageDebugDirectory = IMAGE_DEBUG_DIRECTORY;
|
|
|
+ PImageDebugDirectory = PIMAGE_DEBUG_DIRECTORY;
|
|
|
+
|
|
|
+//
|
|
|
+// Optional header format.
|
|
|
+//
|
|
|
+
|
|
|
+type
|
|
|
+ PIMAGE_DATA_DIRECTORY = ^IMAGE_DATA_DIRECTORY;
|
|
|
+ {$EXTERNALSYM PIMAGE_DATA_DIRECTORY}
|
|
|
+ _IMAGE_DATA_DIRECTORY = record
|
|
|
+ VirtualAddress: DWORD;
|
|
|
+ Size: DWORD;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_DATA_DIRECTORY}
|
|
|
+ IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY;
|
|
|
+ {$EXTERNALSYM IMAGE_DATA_DIRECTORY}
|
|
|
+ TImageDataDirectory = IMAGE_DATA_DIRECTORY;
|
|
|
+ PImageDataDirectory = PIMAGE_DATA_DIRECTORY;
|
|
|
+
|
|
|
+const
|
|
|
+ IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16;
|
|
|
+ {$EXTERNALSYM IMAGE_NUMBEROF_DIRECTORY_ENTRIES}
|
|
|
+
|
|
|
+type
|
|
|
+ PIMAGE_OPTIONAL_HEADER32 = ^IMAGE_OPTIONAL_HEADER32;
|
|
|
+ {$EXTERNALSYM PIMAGE_OPTIONAL_HEADER32}
|
|
|
+ _IMAGE_OPTIONAL_HEADER = record
|
|
|
+ //
|
|
|
+ // Standard fields.
|
|
|
+ //
|
|
|
+ Magic: Word;
|
|
|
+ MajorLinkerVersion: Byte;
|
|
|
+ MinorLinkerVersion: Byte;
|
|
|
+ SizeOfCode: DWORD;
|
|
|
+ SizeOfInitializedData: DWORD;
|
|
|
+ SizeOfUninitializedData: DWORD;
|
|
|
+ AddressOfEntryPoint: DWORD;
|
|
|
+ BaseOfCode: DWORD;
|
|
|
+ BaseOfData: DWORD;
|
|
|
+ //
|
|
|
+ // NT additional fields.
|
|
|
+ //
|
|
|
+ ImageBase: DWORD;
|
|
|
+ SectionAlignment: DWORD;
|
|
|
+ FileAlignment: DWORD;
|
|
|
+ MajorOperatingSystemVersion: Word;
|
|
|
+ MinorOperatingSystemVersion: Word;
|
|
|
+ MajorImageVersion: Word;
|
|
|
+ MinorImageVersion: Word;
|
|
|
+ MajorSubsystemVersion: Word;
|
|
|
+ MinorSubsystemVersion: Word;
|
|
|
+ Win32VersionValue: DWORD;
|
|
|
+ SizeOfImage: DWORD;
|
|
|
+ SizeOfHeaders: DWORD;
|
|
|
+ CheckSum: DWORD;
|
|
|
+ Subsystem: Word;
|
|
|
+ DllCharacteristics: Word;
|
|
|
+ SizeOfStackReserve: DWORD;
|
|
|
+ SizeOfStackCommit: DWORD;
|
|
|
+ SizeOfHeapReserve: DWORD;
|
|
|
+ SizeOfHeapCommit: DWORD;
|
|
|
+ LoaderFlags: DWORD;
|
|
|
+ NumberOfRvaAndSizes: DWORD;
|
|
|
+ DataDirectory: array [0..IMAGE_NUMBEROF_DIRECTORY_ENTRIES - 1] of IMAGE_DATA_DIRECTORY;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_OPTIONAL_HEADER}
|
|
|
+ IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER;
|
|
|
+ {$EXTERNALSYM IMAGE_OPTIONAL_HEADER32}
|
|
|
+ TImageOptionalHeader32 = IMAGE_OPTIONAL_HEADER32;
|
|
|
+ PImageOptionalHeader32 = PIMAGE_OPTIONAL_HEADER32;
|
|
|
+
|
|
|
+ PIMAGE_ROM_OPTIONAL_HEADER = ^IMAGE_ROM_OPTIONAL_HEADER;
|
|
|
+ {$EXTERNALSYM PIMAGE_ROM_OPTIONAL_HEADER}
|
|
|
+ _IMAGE_ROM_OPTIONAL_HEADER = record
|
|
|
+ Magic: Word;
|
|
|
+ MajorLinkerVersion: Byte;
|
|
|
+ MinorLinkerVersion: Byte;
|
|
|
+ SizeOfCode: DWORD;
|
|
|
+ SizeOfInitializedData: DWORD;
|
|
|
+ SizeOfUninitializedData: DWORD;
|
|
|
+ AddressOfEntryPoint: DWORD;
|
|
|
+ BaseOfCode: DWORD;
|
|
|
+ BaseOfData: DWORD;
|
|
|
+ BaseOfBss: DWORD;
|
|
|
+ GprMask: DWORD;
|
|
|
+ CprMask: array [0..3] of DWORD;
|
|
|
+ GpValue: DWORD;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_ROM_OPTIONAL_HEADER}
|
|
|
+ IMAGE_ROM_OPTIONAL_HEADER = _IMAGE_ROM_OPTIONAL_HEADER;
|
|
|
+ {$EXTERNALSYM IMAGE_ROM_OPTIONAL_HEADER}
|
|
|
+ TImageRomOptionalHeader = IMAGE_ROM_OPTIONAL_HEADER;
|
|
|
+ PImageRomOptionalHeader = PIMAGE_ROM_OPTIONAL_HEADER;
|
|
|
+
|
|
|
+ PIMAGE_OPTIONAL_HEADER64 = ^IMAGE_OPTIONAL_HEADER64;
|
|
|
+ {$EXTERNALSYM PIMAGE_OPTIONAL_HEADER64}
|
|
|
+ _IMAGE_OPTIONAL_HEADER64 = record
|
|
|
+ Magic: Word;
|
|
|
+ MajorLinkerVersion: Byte;
|
|
|
+ MinorLinkerVersion: Byte;
|
|
|
+ SizeOfCode: DWORD;
|
|
|
+ SizeOfInitializedData: DWORD;
|
|
|
+ SizeOfUninitializedData: DWORD;
|
|
|
+ AddressOfEntryPoint: DWORD;
|
|
|
+ BaseOfCode: DWORD;
|
|
|
+ ImageBase: Int64;
|
|
|
+ SectionAlignment: DWORD;
|
|
|
+ FileAlignment: DWORD;
|
|
|
+ MajorOperatingSystemVersion: Word;
|
|
|
+ MinorOperatingSystemVersion: Word;
|
|
|
+ MajorImageVersion: Word;
|
|
|
+ MinorImageVersion: Word;
|
|
|
+ MajorSubsystemVersion: Word;
|
|
|
+ MinorSubsystemVersion: Word;
|
|
|
+ Win32VersionValue: DWORD;
|
|
|
+ SizeOfImage: DWORD;
|
|
|
+ SizeOfHeaders: DWORD;
|
|
|
+ CheckSum: DWORD;
|
|
|
+ Subsystem: Word;
|
|
|
+ DllCharacteristics: Word;
|
|
|
+ SizeOfStackReserve: Int64;
|
|
|
+ SizeOfStackCommit: Int64;
|
|
|
+ SizeOfHeapReserve: Int64;
|
|
|
+ SizeOfHeapCommit: Int64;
|
|
|
+ LoaderFlags: DWORD;
|
|
|
+ NumberOfRvaAndSizes: DWORD;
|
|
|
+ DataDirectory: array [0..IMAGE_NUMBEROF_DIRECTORY_ENTRIES - 1] of IMAGE_DATA_DIRECTORY;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_OPTIONAL_HEADER64}
|
|
|
+ IMAGE_OPTIONAL_HEADER64 = _IMAGE_OPTIONAL_HEADER64;
|
|
|
+ {$EXTERNALSYM IMAGE_OPTIONAL_HEADER64}
|
|
|
+ TImageOptionalHeader64 = IMAGE_OPTIONAL_HEADER64;
|
|
|
+ PImageOptionalHeader64 = PIMAGE_OPTIONAL_HEADER64;
|
|
|
+
|
|
|
+const
|
|
|
+ IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56;
|
|
|
+ {$EXTERNALSYM IMAGE_SIZEOF_ROM_OPTIONAL_HEADER}
|
|
|
+ IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28;
|
|
|
+ {$EXTERNALSYM IMAGE_SIZEOF_STD_OPTIONAL_HEADER}
|
|
|
+ IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224;
|
|
|
+ {$EXTERNALSYM IMAGE_SIZEOF_NT_OPTIONAL32_HEADER}
|
|
|
+ IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240;
|
|
|
+ {$EXTERNALSYM IMAGE_SIZEOF_NT_OPTIONAL64_HEADER}
|
|
|
+
|
|
|
+ IMAGE_NT_OPTIONAL_HDR32_MAGIC = $10b;
|
|
|
+ {$EXTERNALSYM IMAGE_NT_OPTIONAL_HDR32_MAGIC}
|
|
|
+ IMAGE_NT_OPTIONAL_HDR64_MAGIC = $20b;
|
|
|
+ {$EXTERNALSYM IMAGE_NT_OPTIONAL_HDR64_MAGIC}
|
|
|
+ IMAGE_ROM_OPTIONAL_HDR_MAGIC = $107;
|
|
|
+ {$EXTERNALSYM IMAGE_ROM_OPTIONAL_HDR_MAGIC}
|
|
|
+
|
|
|
+type
|
|
|
+ IMAGE_OPTIONAL_HEADER = IMAGE_OPTIONAL_HEADER32;
|
|
|
+ {$EXTERNALSYM IMAGE_OPTIONAL_HEADER}
|
|
|
+ PIMAGE_OPTIONAL_HEADER = PIMAGE_OPTIONAL_HEADER32;
|
|
|
+ {$EXTERNALSYM PIMAGE_OPTIONAL_HEADER}
|
|
|
+ TImageOptionalHeader = IMAGE_OPTIONAL_HEADER;
|
|
|
+ PImageOptionalHeader = PIMAGE_OPTIONAL_HEADER;
|
|
|
+
|
|
|
+const
|
|
|
+ IMAGE_SIZEOF_NT_OPTIONAL_HEADER = IMAGE_SIZEOF_NT_OPTIONAL32_HEADER;
|
|
|
+ {$EXTERNALSYM IMAGE_SIZEOF_NT_OPTIONAL_HEADER}
|
|
|
+ IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC;
|
|
|
+ {$EXTERNALSYM IMAGE_NT_OPTIONAL_HDR_MAGIC}
|
|
|
+
|
|
|
+type
|
|
|
+ PIMAGE_NT_HEADERS64 = ^IMAGE_NT_HEADERS64;
|
|
|
+ {$EXTERNALSYM PIMAGE_NT_HEADERS64}
|
|
|
+ _IMAGE_NT_HEADERS64 = record
|
|
|
+ Signature: DWORD;
|
|
|
+ FileHeader: IMAGE_FILE_HEADER;
|
|
|
+ OptionalHeader: IMAGE_OPTIONAL_HEADER64;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_NT_HEADERS64}
|
|
|
+ IMAGE_NT_HEADERS64 = _IMAGE_NT_HEADERS64;
|
|
|
+ {$EXTERNALSYM IMAGE_NT_HEADERS64}
|
|
|
+ TImageNtHeaders64 = IMAGE_NT_HEADERS64;
|
|
|
+ PImageNtHeaders64 = PIMAGE_NT_HEADERS64;
|
|
|
+
|
|
|
+ PIMAGE_NT_HEADERS32 = ^IMAGE_NT_HEADERS32;
|
|
|
+ {$EXTERNALSYM PIMAGE_NT_HEADERS32}
|
|
|
+ _IMAGE_NT_HEADERS = record
|
|
|
+ Signature: DWORD;
|
|
|
+ FileHeader: IMAGE_FILE_HEADER;
|
|
|
+ OptionalHeader: IMAGE_OPTIONAL_HEADER32;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_NT_HEADERS}
|
|
|
+ IMAGE_NT_HEADERS32 = _IMAGE_NT_HEADERS;
|
|
|
+ {$EXTERNALSYM IMAGE_NT_HEADERS32}
|
|
|
+ TImageNtHeaders32 = IMAGE_NT_HEADERS32;
|
|
|
+ PImageNtHeaders32 = PIMAGE_NT_HEADERS32;
|
|
|
+
|
|
|
+ PIMAGE_ROM_HEADERS = ^IMAGE_ROM_HEADERS;
|
|
|
+ {$EXTERNALSYM PIMAGE_ROM_HEADERS}
|
|
|
+ _IMAGE_ROM_HEADERS = record
|
|
|
+ FileHeader: IMAGE_FILE_HEADER;
|
|
|
+ OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER;
|
|
|
+ end;
|
|
|
+ {$EXTERNALSYM _IMAGE_ROM_HEADERS}
|
|
|
+ IMAGE_ROM_HEADERS = _IMAGE_ROM_HEADERS;
|
|
|
+ {$EXTERNALSYM IMAGE_ROM_HEADERS}
|
|
|
+ TImageRomHeaders = IMAGE_ROM_HEADERS;
|
|
|
+ PImageRomHeaders = PIMAGE_ROM_HEADERS;
|
|
|
+
|
|
|
+ IMAGE_NT_HEADERS = IMAGE_NT_HEADERS32;
|
|
|
+ {$EXTERNALSYM IMAGE_NT_HEADERS}
|
|
|
+ PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS32;
|
|
|
+ {$EXTERNALSYM PIMAGE_NT_HEADERS}
|
|
|
+
|
|
|
+ PImageNtHeaders = PIMAGE_NT_HEADERS;
|
|
|
+
|
|
|
+
|
|
|
{$endif read_interface}
|
|
|
|
|
|
|