次の方法で共有


Audio プロパティ要求

Microsoft Windows Driver Model (WDM) オーディオ ドライバーのクライアントは、ドライバーがインスタンス化した KS フィルターとピンに KS プロパティの要求を送信できます。 たとえば、ユーザー モード クライアントは、IOCTL_KS_PROPERTYの I/O 制御コードを使用して DeviceIoControl 関数 (Microsoft Windows SDK のドキュメントを参照) を呼び出すことによって、KS プロパティ要求を送信できます。 この関数は、プロパティ要求を含む IRP を、指定されたフィルターまたは pin オブジェクトに送信します。

オーディオ ドライバーは、プロパティ (KSPROPERTY_TYPE_GET、KSPROPERTY_TYPE_SET、およびKSPROPERTY_TYPE_BASICSUPPORT) の取得、設定、および基本サポート要求をサポートします。 詳細については、「 オーディオ ドライバーのプロパティ セット」を参照してください。

クライアントは、フィルター プロパティ、ピン プロパティ、ノード プロパティの 3 種類のプロパティに対して要求を送信できます。 詳細については、「フィルター、ピン留め、およびノードのプロパティのを参照してください。

フィルター プロパティ要求をフィルター オブジェクトに送信する場合、クライアントはインスタンス ハンドルでターゲット フィルターを指定します ( フィルター ファクトリを参照)。 同様に、pin-property 要求を pin オブジェクトに送信する場合、ターゲット ピンはそのインスタンス ハンドルで指定されます(「ピンファクトリー」を参照)。 どちらの種類の要求にも、次を指定する KSPROPERTY 構造体が含まれています。

  • プロパティセットを識別するための GUID

  • 指定したプロパティ セット内のプロパティ項目を識別するインデックス

  • プロパティ要求の種類 (get、set、または basic-support) を示すフラグ

関連プロパティは、プロパティ セットを形成するためにまとめて収集されます。 特定のプロパティは、そのプロパティ セットと、そのセット内での位置を指定するインデックスによって識別されます。

ノード プロパティ要求には 、KSNODEPROPERTY 構造体とノード ID を組み合わせた KSNODEPROPERTY 構造体が含まれています。 ノード プロパティに応じて、プロパティ要求のターゲットはフィルター インスタンスまたはピン インスタンスです。

フィルターで特定のノード タイプのインスタンスを複数作成できる場合、要求のターゲットはピン ハンドルによって指定されます。 ハンドルは、ノード インスタンスが存在するデータ パスの先頭または末尾にあるピン インスタンスを識別します。 SUM ノードまたは MUX ノードを含むフィルターの場合 ( KSNODETYPE_SUMKSNODETYPE_MUXを参照)、次の規則が適用されます。

  • プロパティがシンク (入力) ピンから下流にあるノードに属し、SUM ノードまたは MUX ノードのアップストリームにある場合、プロパティ要求はシンク ピンに送信されます。

  • プロパティが SUM ノードまたは MUX ノードのダウンストリームにあるノードに属し、ソース (出力) ピンからのアップストリームである場合、プロパティ要求はソース ピンに送信されます。 (また、SUM ノードまたは MUX ノードのプロパティ要求がソース ピンに送信されます)。

これらの規則を使用すると、特定のデータ パス上の特定のノードを一意に識別できます。

ミキサー API を使用してデータ パス内のノードを走査する方法については、「 Audio Mixer API 変換へのカーネル ストリーミング トポロジ」を参照してください。