定数拡張

定数と構造体を拡張するためのプロビジョニングは、デバイスに依存しない方法と、デバイス固有の (ベンダー固有の) 方法の両方で行われます。

スカラー列挙体である定数では、値の範囲は将来の一般的な拡張機能用に予約されています。 残りの値はデバイス固有として識別されます。 ベンダーは、必要に応じてこれらの値の意味を定義できます。 これらの値の解釈は、LINEDEVCAPS データ構造を通じて提供される拡張 ID にキーされます。 ビット フラグとして定義されている定数の場合、下位ビットの範囲が予約され、上位ビットは拡張固有にすることができます。 拡張値とビット配列では、最高値または上位ビットダウンのビットを使用することをお勧めします。 これにより、将来必要に応じて共通部分と延長部分の間で境界線を移動するオプションが残ります。 データ構造の拡張には、固定パーツの一部であるサイズ/オフセットを持つ可変サイズのフィールドが割り当てられます。 TSPI では、各データ構造に対して許可されるデバイス固有の拡張機能について説明します。 詳細については、メモリ割り当て トピックを参照してください。

特定の拡張機能識別子を認識するだけでなく、TAPI (アプリケーションに代わって動作) は、アプリケーションとサービス プロバイダーが動作する拡張機能のバージョン番号をネゴシエートする必要があります。 これは、TSPI_lineNegotiateExtVersion 関数と TSPI_phoneNegotiateExtVersion 関数を使用して行われます。

拡張識別子は、グローバル一意識別子です。 拡張機能識別子の中央レジストリはありません。 代わりに、ツールキットで使用できるユーティリティによって製造元によってローカルに生成されます。 グローバルな一意性を保証するために、この数は、(一意の) LAN アドレス、時刻、乱数などの部分で構成されます。 グローバル一意識別子は、HP/DEC の汎用一意識別子と区別できるように設計されているため、それらと完全に互換性があります。