拡張ヘッダー(D8CAIRX)のレベル フィールド'd8xiLvl'を1に設定し、eyecatcherを"IRX8"に設定する必要があります。 これにより、古いエレメント構造が完全に排除され、拡張部分にあるすべてのエレメントが新しい形式になります(レベル フィールドがゼロに設定されている場合は、32ビット モードと64ビット モードで動作するように定義されたエレメントが有効になります)。 2つの新しいエレメント構造を使用すると、APHパーセルと非APHパーセルの両方をCLIに提供できます。 これらは、32ビット モードと64ビット モードの両方に対して互換性があります。
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;
新しいエレメントでは、パーセル本体をインラインにするか、ポインタで指すことができます。