ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pecoff.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x010b
00004 #define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x020b
00005 
00006 #define IMAGE_DOS_MAGIC 0x5a4d
00007 #define IMAGE_PE_MAGIC 0x00004550
00008 #define IMAGE_SIZEOF_SHORT_NAME 8
00009 
00010 #define IMAGE_FILE_LINE_NUMS_STRIPPED   0x0004
00011 #define IMAGE_FILE_LOCAL_SYMS_STRIPPED  0x0008
00012 #define IMAGE_FILE_DEBUG_STRIPPED   0x0200
00013 
00014 #define IMAGE_FILE_MACHINE_I386 0x14c
00015 #define IMAGE_FILE_MACHINE_AMD64 0x8664
00016 #define IMAGE_FILE_MACHINE_IA64 0x0200
00017 
00018 #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5
00019 
00020 #define IMAGE_SCN_TYPE_NOLOAD     0x00000002
00021 #define IMAGE_SCN_TYPE_NO_PAD     0x00000008
00022 #define IMAGE_SCN_CNT_CODE        0x00000020
00023 #define IMAGE_SCN_CNT_INITIALIZED_DATA    0x00000040
00024 #define IMAGE_SCN_CNT_UNINITIALIZED_DATA  0x00000080
00025 #define IMAGE_SCN_LNK_OTHER       0x00000100
00026 #define IMAGE_SCN_LNK_INFO        0x00000200
00027 #define IMAGE_SCN_LNK_REMOVE      0x00000800
00028 #define IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000
00029 #define IMAGE_SCN_GPREL           0x00008000
00030 #define IMAGE_SCN_MEM_PURGEABLE   0x00020000
00031 #define IMAGE_SCN_MEM_LOCKED      0x00040000
00032 #define IMAGE_SCN_MEM_PRELOAD     0x00080000
00033 #define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000
00034 #define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
00035 #define IMAGE_SCN_MEM_NOT_CACHED  0x04000000
00036 #define IMAGE_SCN_MEM_NOT_PAGED   0x08000000
00037 #define IMAGE_SCN_MEM_SHARED      0x10000000
00038 #define IMAGE_SCN_MEM_EXECUTE     0x20000000
00039 #define IMAGE_SCN_MEM_READ        0x40000000
00040 #define IMAGE_SCN_MEM_WRITE       0x80000000
00041 
00042 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
00043 
00044 #define IMAGE_REL_I386_ABSOLUTE 0x0001
00045 #define IMAGE_REL_I386_DIR32    0x0006
00046 
00047 typedef unsigned char BYTE;
00048 typedef unsigned char UCHAR;
00049 typedef unsigned short WORD;
00050 typedef short SHORT;
00051 typedef unsigned short USHORT;
00052 typedef unsigned long long ULONGLONG;
00053 
00054 #if defined(__x86_64__) && !defined(_WIN64)
00055 typedef signed int LONG;
00056 typedef unsigned int ULONG;
00057 typedef unsigned int DWORD;
00058 #else
00059 typedef signed long LONG;
00060 typedef unsigned long ULONG;
00061 typedef unsigned long DWORD;
00062 #endif
00063 #if defined(_WIN64)
00064 typedef unsigned __int64 ULONG_PTR;
00065 #else
00066 #if defined(__x86_64__) && !defined(_WIN64)
00067 typedef  unsigned int  ULONG_PTR;
00068 #else
00069 typedef  unsigned long ULONG_PTR;
00070 #endif
00071 #endif
00072 
00073 #pragma pack(push,2)
00074 typedef struct _IMAGE_DOS_HEADER {
00075   WORD e_magic;
00076   WORD e_cblp;
00077   WORD e_cp;
00078   WORD e_crlc;
00079   WORD e_cparhdr;
00080   WORD e_minalloc;
00081   WORD e_maxalloc;
00082   WORD e_ss;
00083   WORD e_sp;
00084   WORD e_csum;
00085   WORD e_ip;
00086   WORD e_cs;
00087   WORD e_lfarlc;
00088   WORD e_ovno;
00089   WORD e_res[4];
00090   WORD e_oemid;
00091   WORD e_oeminfo;
00092   WORD e_res2[10];
00093   LONG e_lfanew;
00094 } IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER;
00095 #pragma pack(pop)
00096 
00097 #pragma pack(push,4)
00098 typedef struct _IMAGE_FILE_HEADER {
00099     WORD Machine;
00100     WORD NumberOfSections;
00101     DWORD TimeDateStamp;
00102     DWORD PointerToSymbolTable;
00103     DWORD NumberOfSymbols;
00104     WORD SizeOfOptionalHeader;
00105     WORD Characteristics;
00106 } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
00107 #pragma pack(pop)
00108 
00109 typedef struct _IMAGE_DATA_DIRECTORY {
00110   DWORD VirtualAddress;
00111   DWORD Size;
00112 } IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;
00113 
00114 typedef struct _IMAGE_OPTIONAL_HEADER32 {
00115     WORD Magic;
00116     BYTE MajorLinkerVersion;
00117     BYTE MinorLinkerVersion;
00118     DWORD SizeOfCode;
00119     DWORD SizeOfInitializedData;
00120     DWORD SizeOfUninitializedData;
00121     DWORD AddressOfEntryPoint;
00122     DWORD BaseOfCode;
00123     DWORD BaseOfData;
00124     DWORD ImageBase;
00125     DWORD SectionAlignment;
00126     DWORD FileAlignment;
00127     WORD MajorOperatingSystemVersion;
00128     WORD MinorOperatingSystemVersion;
00129     WORD MajorImageVersion;
00130     WORD MinorImageVersion;
00131     WORD MajorSubsystemVersion;
00132     WORD MinorSubsystemVersion;
00133     DWORD Win32VersionValue;
00134     DWORD SizeOfImage;
00135     DWORD SizeOfHeaders;
00136     DWORD CheckSum;
00137     WORD Subsystem;
00138     WORD DllCharacteristics;
00139     DWORD SizeOfStackReserve;
00140     DWORD SizeOfStackCommit;
00141     DWORD SizeOfHeapReserve;
00142     DWORD SizeOfHeapCommit;
00143     DWORD LoaderFlags;
00144     DWORD NumberOfRvaAndSizes;
00145     IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
00146 } IMAGE_OPTIONAL_HEADER32,*PIMAGE_OPTIONAL_HEADER32;
00147 
00148 typedef struct _IMAGE_OPTIONAL_HEADER64 {
00149     WORD Magic;
00150     BYTE MajorLinkerVersion;
00151     BYTE MinorLinkerVersion;
00152     DWORD SizeOfCode;
00153     DWORD SizeOfInitializedData;
00154     DWORD SizeOfUninitializedData;
00155     DWORD AddressOfEntryPoint;
00156     DWORD BaseOfCode;
00157     ULONGLONG ImageBase;
00158     DWORD SectionAlignment;
00159     DWORD FileAlignment;
00160     WORD MajorOperatingSystemVersion;
00161     WORD MinorOperatingSystemVersion;
00162     WORD MajorImageVersion;
00163     WORD MinorImageVersion;
00164     WORD MajorSubsystemVersion;
00165     WORD MinorSubsystemVersion;
00166     DWORD Win32VersionValue;
00167     DWORD SizeOfImage;
00168     DWORD SizeOfHeaders;
00169     DWORD CheckSum;
00170     WORD Subsystem;
00171     WORD DllCharacteristics;
00172     ULONGLONG SizeOfStackReserve;
00173     ULONGLONG SizeOfStackCommit;
00174     ULONGLONG SizeOfHeapReserve;
00175     ULONGLONG SizeOfHeapCommit;
00176     DWORD LoaderFlags;
00177     DWORD NumberOfRvaAndSizes;
00178     IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
00179 } IMAGE_OPTIONAL_HEADER64,*PIMAGE_OPTIONAL_HEADER64;
00180 
00181 #ifdef _TARGET_PE64
00182 typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER;
00183 typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER;
00184 #else
00185 typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
00186 typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER;
00187 #endif
00188 
00189 typedef struct _IMAGE_SECTION_HEADER {
00190   BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
00191   union {
00192     DWORD PhysicalAddress;
00193     DWORD VirtualSize;
00194   } Misc;
00195   DWORD VirtualAddress;
00196   DWORD SizeOfRawData;
00197   DWORD PointerToRawData;
00198   DWORD PointerToRelocations;
00199   DWORD PointerToLinenumbers;
00200   WORD NumberOfRelocations;
00201   WORD NumberOfLinenumbers;
00202   DWORD Characteristics;
00203 } IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER;
00204 
00205 #pragma pack(push,4)
00206 typedef struct _IMAGE_BASE_RELOCATION {
00207     DWORD VirtualAddress;
00208     DWORD SizeOfBlock;
00209     WORD  TypeOffset[1];
00210 } IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;
00211 #pragma pack(pop)
00212 
00213 #ifndef UNALIGNED
00214 #define UNALIGNED
00215 #endif
00216 
00217 #pragma pack(push,2)
00218 typedef struct _IMAGE_RELOCATION {
00219   union {
00220     DWORD VirtualAddress;
00221     DWORD RelocCount;
00222   };
00223   DWORD SymbolTableIndex;
00224   WORD Type;
00225 } IMAGE_RELOCATION;
00226 typedef struct _IMAGE_RELOCATION UNALIGNED *PIMAGE_RELOCATION;
00227 #pragma pack(pop)
00228 
00229 #pragma pack(push,2)
00230 typedef struct _IMAGE_SYMBOL {
00231   union {
00232     BYTE ShortName[8];
00233     struct {
00234       DWORD Short;
00235       DWORD Long;
00236     } Name;
00237     DWORD LongName[2];
00238   } N;
00239   DWORD Value;
00240   SHORT SectionNumber;
00241   WORD Type;
00242   BYTE StorageClass;
00243   BYTE NumberOfAuxSymbols;
00244 } IMAGE_SYMBOL;
00245 typedef struct _IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL;
00246 #pragma pack(pop)

Generated on Sun May 27 2012 04:37:46 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.