次の方法で共有


Buffer 要素の形式

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

フィールド タイプ 説明
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 プロセッサの通常の向き) に格納されます。

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

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

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