typedef struct _IMAGE_OPTIONAL_HEADER                                           // 31 / -- elements; 0x00E0 / ------ Bytes
{
    UINT16                      Magic;                                          // 0x0000 / ------; 0x0002 / ------ Bytes
    UINT8                       MajorLinkerVersion;                             // 0x0002 / ------; 0x0001 / ------ Bytes
    UINT8                       MinorLinkerVersion;                             // 0x0003 / ------; 0x0001 / ------ Bytes
    ULONG32                     SizeOfCode;                                     // 0x0004 / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfInitializedData;                          // 0x0008 / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfUninitializedData;                        // 0x000C / ------; 0x0004 / ------ Bytes
    ULONG32                     AddressOfEntryPoint;                            // 0x0010 / ------; 0x0004 / ------ Bytes
    ULONG32                     BaseOfCode;                                     // 0x0014 / ------; 0x0004 / ------ Bytes
    ULONG32                     BaseOfData;                                     // 0x0018 / ------; 0x0004 / ------ Bytes
    ULONG32                     ImageBase;                                      // 0x001C / ------; 0x0004 / ------ Bytes
    ULONG32                     SectionAlignment;                               // 0x0020 / ------; 0x0004 / ------ Bytes
    ULONG32                     FileAlignment;                                  // 0x0024 / ------; 0x0004 / ------ Bytes
    UINT16                      MajorOperatingSystemVersion;                    // 0x0028 / ------; 0x0002 / ------ Bytes
    UINT16                      MinorOperatingSystemVersion;                    // 0x002A / ------; 0x0002 / ------ Bytes
    UINT16                      MajorImageVersion;                              // 0x002C / ------; 0x0002 / ------ Bytes
    UINT16                      MinorImageVersion;                              // 0x002E / ------; 0x0002 / ------ Bytes
    UINT16                      MajorSubsystemVersion;                          // 0x0030 / ------; 0x0002 / ------ Bytes
    UINT16                      MinorSubsystemVersion;                          // 0x0032 / ------; 0x0002 / ------ Bytes
    ULONG32                     Win32VersionValue;                              // 0x0034 / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfImage;                                    // 0x0038 / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfHeaders;                                  // 0x003C / ------; 0x0004 / ------ Bytes
    ULONG32                     CheckSum;                                       // 0x0040 / ------; 0x0004 / ------ Bytes
    UINT16                      Subsystem;                                      // 0x0044 / ------; 0x0002 / ------ Bytes
    UINT16                      DllCharacteristics;                             // 0x0046 / ------; 0x0002 / ------ Bytes
    ULONG32                     SizeOfStackReserve;                             // 0x0048 / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfStackCommit;                              // 0x004C / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfHeapReserve;                              // 0x0050 / ------; 0x0004 / ------ Bytes
    ULONG32                     SizeOfHeapCommit;                               // 0x0054 / ------; 0x0004 / ------ Bytes
    ULONG32                     LoaderFlags;                                    // 0x0058 / ------; 0x0004 / ------ Bytes
    ULONG32                     NumberOfRvaAndSizes;                            // 0x005C / ------; 0x0004 / ------ Bytes
    IMAGE_DATA_DIRECTORY        DataDirectory[16];                              // 0x0060 / ------; 0x0080 / ------ Bytes
} IMAGE_OPTIONAL_HEADER, * PIMAGE_OPTIONAL_HEADER;

Return to OS-specific structures/unions/enums list.
Return to OS version list.