バッファー要素の形式

次の表は、バッファー要素の開始時に常に発生する共通フィールドの一覧です。 dataru フィールドには、特定のメッセージに固有の情報が含まれています。 個々のメッセージ形式の詳細については、「 FMI メッセージ形式」を参照してください。

フィールド Type 説明
hdreptr-elteptr> PTRBFELT チェーン内の次のバッファー要素へのポインター。 この要素がチェーン内の最後の要素または唯一の要素である場合は NULL。
hdreptr-startd> INTEGER この要素内の有効なデータの開始。 有効なデータの最初のバイトの dataru へのインデックス。
hdreptr-endd> INTEGER この要素の有効なデータの末尾。 有効なデータの最後のバイトの dataru へのインデックス。
hdreptr-trpad> CHAR 埋め込みバイト (予約済み)。
hdreptr-dataru> CHAR[268] この要素のデータを含む文字の配列。 有効なデータが要素全体を占めるわけではないことに注意してください。 開始フィールド終了フィールドは、有効なデータの開始と終了のこの配列にインデックスを与えます。

メッセージ形式を解釈するには、次の情報を使用します。

  • 特定のメッセージは、メッセージ形式に 2 つの要素が含まれていると表示されます。 たとえば、 Open(PLU) 要求 の最初の要素には CICB フィールドがあり、2 番目の要素には BIND RU があります。 これは、メッセージが 2 つの個別のリンクされた要素チェーンで構成されていることを示します。 最初の要素の elteptr フィールドは、2 番目の要素を指します。

  • 2 バイトを占有するフィールドは、ソフトウェアが実行されるプロセッサによって使用される通常の向きに関係なく、最も小さいバイト アドレスの算術的に最も重要なバイトで表されます。 つまり、0x1234の 2 バイト値は、最も小さいバイト アドレスにバイト 0x12を持っています。 これに対する例外は、要素の 開始 フィールドと 終了 フィールドです。これは常に、低バイト、高バイトの向き (Intel プロセッサの通常の向き) に格納されます。

  • 開始フィールドと終了フィールドで示されるオフセットは、dataru の最初のバイトがオフセット 1 である点で表されます。 有効なデータの最初のバイトは dataru[startd-1] にあります。 たとえば、 startd が 11 で endd が 18 の場合、 dataru は有効なデータではない 10 バイトで始まり、その後に 8 バイトの有効なデータが続きます。

  • 要素が endd より大きい startd で到着する可能性があります。 これは、 dataru に有効なデータがないことを示します。

    メッセージ形式の概要」に示されているサンプル メッセージ形式では、各要素の 先頭 が 13 で、有効なデータの開始前に 12 バイトのパディングが示されます。 これにより、256 バイトのデータが格納されるので、要素データ (この例では 300 バイト) には 2 つの要素が必要です。