機能拡張

デバイスに依存しない方法とデバイス固有の (ベンダー固有の) 方法の両方で定数と構造体を拡張するためのプロビジョニングが行います。 スカラー列挙型の定数では、値の範囲が将来の一般的な拡張用に予約されます。 残りの値は、デバイス固有として識別されます。 ベンダーは、任意の方法でこれらの値の意味を定義できます。 それらの解釈は 、LINEDEVCAPSデータ構造 で提供される 拡張識別子にキーが付いています。 ビット フラグとして定義されている定数の場合、低い順序のビットの範囲が予約されます。この場合、高次ビットを拡張固有にできます。 拡張値とビット配列では、最も高い値または高いビット ダウンのビットを使用する必要があります。 これにより、後で行う必要がある場合は、共通部分と拡張部分の間で境界線を移動するオプションが残ります。 データ構造の拡張には、サイズ/オフセットが固定部分の一部である可変サイズフィールドが割り当てられます。 TAPI では、許可されるデバイス固有の拡張機能について、各データ構造について説明します。

アプリケーションは、特定の拡張識別子を認識するだけでなく、アプリケーションとサービス プロバイダーが動作する拡張バージョン番号をネゴシエートする必要があります。 これは 、lineGetDevCaps 関数の 2 番目のバージョン ネゴシエーション フェーズで行われます。

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