Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpecoff.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
1.7.6.1
|