Browse Source

* some PE headers Delphi also has.

git-svn-id: trunk@7853 -
marco 18 years ago
parent
commit
a50f07618c
1 changed files with 255 additions and 0 deletions
  1. 255 0
      rtl/win/wininc/struct.inc

+ 255 - 0
rtl/win/wininc/struct.inc

@@ -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}