Changeset 92


Ignore:
Timestamp:
Sep 8, 2016, 5:31:37 PM (9 years ago)
Author:
bird
Message:

bigobj header.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/k/kLdrFmts/pe.h

    r82 r92  
    4848
    4949/* file header */
     50#define  IMAGE_FILE_MACHINE_UNKNOWN  0x0000
    5051#define  IMAGE_FILE_MACHINE_I386  0x014c
    5152#define  IMAGE_FILE_MACHINE_AMD64  0x8664
     53#define  IMAGE_FILE_MACHINE_ARM  0x01c0
     54#define  IMAGE_FILE_MACHINE_ARMNT 0x01c4
     55#define  IMAGE_FILE_MACHINE_ARM64  0xaa64
     56#define  IMAGE_FILE_MACHINE_EBC  0x0ebc
    5257
    5358#define  IMAGE_FILE_RELOCS_STRIPPED  0x0001
     
    6873#define  IMAGE_FILE_BYTES_REVERSED_HI  0x8000
    6974
     75/** Raw UUID byte for the ANON_OBJECT_HEADER_BIGOBJ::ClassID value.
     76 * These make out {d1baa1c7-baee-4ba9-af20-faf66aa4dcb8}. */
     77#define  ANON_OBJECT_HEADER_BIGOBJ_CLS_ID_BYTES \
     78        0xc7, 0xa1, 0xba, 0xd1,/*-*/ 0xee, 0xba,/*-*/ 0xa9, 0x4b,/*-*/ 0xaf, 0x20,/*-*/ 0xfa, 0xf6, 0x6a, 0xa4, 0xdc, 0xb8
    7079
    7180/* optional header */
     
    214223} IMAGE_FILE_HEADER;
    215224typedef IMAGE_FILE_HEADER *PIMAGE_FILE_HEADER;
     225
     226
     227typedef struct _ANON_OBJECT_HEADER
     228{
     229    KU16        Sig1;
     230    KU16        Sig2;
     231    KU16        Version;                /**< >= 1 */
     232    KU16        Machine;
     233    KU32        TimeDataStamp;
     234    KU8         ClassID[16];
     235    KU32        SizeOfData;
     236} ANON_OBJECT_HEADER;
     237typedef ANON_OBJECT_HEADER *PANON_OBJECT_HEADER;
     238
     239
     240typedef struct _ANON_OBJECT_HEADER_V2
     241{
     242    KU16        Sig1;
     243    KU16        Sig2;
     244    KU16        Version;                /**< >= 2 */
     245    KU16        Machine;
     246    KU32        TimeDataStamp;
     247    KU8         ClassID[16];
     248    KU32        SizeOfData;
     249    /* New fields for Version >= 2: */
     250    KU32        Flags;
     251    KU32        MetaDataSize;           /**< CLR metadata  */
     252    KU32        MetaDataOffset;
     253} ANON_OBJECT_HEADER_V2;
     254typedef ANON_OBJECT_HEADER_V2 *PANON_OBJECT_HEADER_V2;
     255
     256
     257typedef struct _ANON_OBJECT_HEADER_BIGOBJ
     258{
     259    KU16        Sig1;
     260    KU16        Sig2;
     261    KU16        Version;                /**< >= 2 */
     262    KU16        Machine;
     263    KU32        TimeDataStamp;
     264    KU8         ClassID[16];            /**< ANON_OBJECT_HEADER_BIGOBJ_CLS_ID_BYTES */
     265    KU32        SizeOfData;
     266    /* New fields for Version >= 2: */
     267    KU32        Flags;
     268    KU32        MetaDataSize;           /**< CLR metadata  */
     269    KU32        MetaDataOffset;
     270    /* Specific for bigobj: */
     271    KU32        NumberOfSections;
     272    KU32        PointerToSymbolTable;
     273    KU32        NumberOfSymbols;
     274} ANON_OBJECT_HEADER_BIGOBJ;
     275typedef ANON_OBJECT_HEADER_BIGOBJ *PANON_OBJECT_HEADER_BIGOBJ;
    216276
    217277
     
    459519{
    460520    KU32      Characteristics;
    461         KU32  TimeDateStamp;
     521    KU32      TimeDateStamp;
    462522    KU16      MajorVersion;
    463523    KU16      MinorVersion;
Note: See TracChangeset for help on using the changeset viewer.