バッファー要素の形式

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

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

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

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

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

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

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

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