動的なオーディオ サブデバイスのジャックに関する説明

Windows Vista 以降では、KSPROPERTY_JACK_DESCRIPTION プロパティは、オーディオ アダプターのサブデバイス上のジャックまたはジャック コレクションに関する情報を提供します。 (このコンテキストでは、サブデバイスという用語は KS フィルターと同義です)。プロパティ値は、1 つ以上の KSJACK_DESCRIPTION 構造の配列です。 各構造は、ジャックの色、コネクタの種類、物理的な位置を記述します。 さらに、構造には、マイクやヘッドフォンなどのオーディオ エンドポイント デバイスがジャックに接続されている場合は TRUE、ジャックが空の場合は FALSE となる IsConnected メンバーが含まれています。 IsConnected の最新の値を提供するため、動的サブデバイスのアダプター ドライバーは、オーディオ ハードウェアのジャック プレゼンス検出機能に依存します。 静的サブデバイス (ジャック プレゼンス検出なし) の場合、IsConnected メンバーは常に TRUE でなければなりません。 詳細については、「Jack Description プロパティ」を参照してください。

ユーザーが動的サブデバイスのジャックにプラグを挿入すると、アダプター ドライバーは PcRegisterSubdevice 関数を呼び出してサブデバイスを登録する必要があります。 サブデバイスが登録されたままの状態で、アダプター ドライバーがサブデバイスの KSPROPERTY_JACK_DESCRIPTION 要求を含む IOCTL を受信した場合、ドライバーはプロパティ値の IsConnected メンバーを TRUE に設定する必要があります。

ユーザーが動的サブデバイスのジャックからプラグを削除すると、アダプター ドライバーは IUnregisterSubdevice::UnregisterSubdevice メソッドを呼び出してサブデバイスの登録を削除する必要があります。 サブデバイスが登録されていない状態で、アダプター ドライバーがサブデバイスの KSPROPERTY_JACK_DESCRIPTION 要求を含む IOCTL を受信した場合、ドライバーはプロパティ値の IsConnected メンバーを FALSE に設定する必要があります。