Level field 'd8xiLvl' in the extension header (D8CAIRX) should be set to 1 and eyecatcher should be set to "IRX8". This will completely eliminate the old element structure and all elements in the extension must be in the new format (if the level field set to zero, elements defined to work in 32-bit mode and 64-bit mode becomes effective). The two new element structures can be used to deliver both APH and Non APH parcels to CLI. These are compatible for both 32 and 64 bit modes.
typedef struct D8XIELEM { UInt16 d8xieLen; /* Length of element */ UInt16 d8xieTyp; /* Type of element */ /* 0 - Use of non APH */ /* 1 - Use APH */ } D8XIELEM; typedef struct D8XIEP { UInt16 d8xiepF; /* Parcel flavor */ UInt16 d8xiepR1; /* Reserved: must be zero */ UInt32 d8xiepLn; /* Length of body */ /* if d8xiepPt NULL */ /* set d8xiepLn to 0 */ /* else */ /* set d8xiepLn to body length */ Byte d8xiepA[4]; /* Reserved: must be zero */ #ifdef CLI_64BIT Byte d8xiepP4[4]; /* Reserved: must be zero */ #else char* d8xiepPt ; /* Pointer to body,if not inline */ #endif #ifdef CLI_64BIT char* d8xiepPt; /* Pointer to body,if not inline */ #else Byte d8xiepP8[8]; /* Reserved: must be zero */ #endif Byte d8xiepL8[8]; /* Reserved: must be zero */ } D8XIEP;
The new element allows the parcel body to either be inline or pointed to.