KSJACK_DESCRIPTION3 構造体
バージョン 22H2 以降の Windows オペレーティング システムでは、KSJACK_DESCRIPTION3
構造体を使用して、ジャックの現在の構成を指定および変更できます。
構文
typedef struct _tagKSJACK_DESCRIPTION3
{
ULONG ConfigId;
} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;
メンバー
ConfigId
現在の構成を記述するドライバー定義のビットマスクまたは列挙型。この値を変更すると、audioendpointbuilder がキャッシュを更新して、発行されたエンドポイントが現在の構成と一致することを確認します。
解説
KSJACK_DESCRIPTION3 を使用してオーディオ デバイスの変更を伝達する
Windows オーディオ システムは、オーディオ エンドポイントの作成中にオーディオ デバイスの機能をキャッシュします。 これらのキャッシュされた値は、HW オーディオ エンジンの存在、形式のサポート、コンテナー ID、バッファー サイズの特性などの機能を対象とします。これらのキャッシュされた値は、Windows インストールの有効期間中保持されます。 これらは、オーディオ ドライバーが更新されたとき、または OS のアップグレード中にのみ更新されます。
KSJACK_DESCRIPTION3 を使用すると、Windows オーディオ システムは、オーディオ ドライバーのメカニズムを提供します。このメカニズムは、破棄予定のキャッシュ値と更新予定のキャッシュ値のすべてを要求します。 要求は、リソース制約などのオーディオ デバイス機能の変更によってトリガーできます。
ドライバーが実行時に KSJACK_DESCRIPTION3 の内容を変更するたびに、ドライバーは既存の KSEVENT_PINCAPS_JACKINFOCHANGE イベントをトリガーします。
Windows オーディオ システムは、オーディオ エンドポイントでキャッシュされ、最後に報告された ConfigId 値を保持します。 ConfigId 値は、KSEVENT_PINCAPS_JACKINFOCHANGE イベントへの応答で取得され、システム再起動時のオーディオ エンドポイントの通常処理中は、Audio Endpoint Builder サービスの再起動、オーディオ ドライバーの更新、またはエンドポイントのインターフェイス状態変更が実行されます。
取得した ConfigId 値が以前に格納された値と異なる場合、Windows オーディオ システムは以前にキャッシュされたすべてのエンドポイント機能を破棄して更新します。
推奨される使用方法は、ConfigId (ビットマスクまたは列挙型) 値によって制御されるドライバー内で複数のオーディオ エンドポイント構成を定義することです。 たとえば、ConfigId が 1 の場合、オーディオ エンジン ノードが存在することを示しているのに対し、ConfigId 2 はオーディオ エンジン ノードを報告しません。 ドライバーで使用されている ConfigId は、KSPROPERTY_JACK_DESCRIPTION3 を介して Windows オーディオ システムと共有され、Windows オーディオ システムによってキャッシュされた機能とエンドポイントを同期するように動作します。
ConfigId の値は Windows に対して不透明です。 オーディオ ドライバーは、前述されているように、ビットマスクまたは列挙型の代わりに実行時に選択されたタイムスタンプまたはインクリメント値を使用できます。 この方法は、エンドポイントの機能が変更されていない場合でも、起動時またはインターフェイスの変更時に不要なエンドポイントの更新が発生し、最後に格納された ConfigId 値を新しく報告された値に同期する可能性があるため、推奨されません。 この方法では、ドライバーと Windows の同期が切れる可能性が高くなり、オーディオ再生エラーが発生する可能性もあります。
ConfigId の変更時にエンドポイントのキャッシュされた値を更新するために使用されるメカニズムは、オペレーティング システムのアップグレードとドライバーの更新に使用されるメカニズムと同じです。 別の ID を持つ新しいエンドポイントが作成されます。このエンドポイントには、エンドポイントの新しい ConfigId 設定に一致する更新されたキャッシュ値が含まれ、ユーザー設定が古いエンドポイントから新しいエンドポイントにコピーされ、最後に古いエンドポイントが削除されます。 OS アップグレードのオーディオ エンドポイント移行プロセスの詳細については、「オペレーティング システムのアップグレード」を参照してください。
要件
バージョン |
バージョン 22H2 以降の Windows オペレーティング システムで使用できます。 |
ヘッダー |
ksmedia.h (Ksmedia.h をインクルード) |