次の方法で共有


PCPROPERTY_REQUEST構造体 (portcls.h)

PCPROPERTY_REQUEST 構造体は、プロパティ要求を指定します。

構文

typedef struct _PCPROPERTY_REQUEST {
  PUNKNOWN              MajorTarget;
  PUNKNOWN              MinorTarget;
  ULONG                 Node;
  const PCPROPERTY_ITEM *PropertyItem;
  ULONG                 Verb;
  ULONG                 InstanceSize;
  PVOID                 Instance;
  ULONG                 ValueSize;
  PVOID                 Value;
  PIRP                  Irp;
} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;

メンバーズ

MajorTarget

IUnknown メイン ミニポート オブジェクトへのポインターを します。 このメンバーには、アダプター ドライバーが以前に IPort::Init メソッドに渡した UnknownMiniport パラメーター値が含まれています。

MinorTarget

IUnknown MajorTarget ミニポート オブジェクトに関連付けられているストリーム オブジェクトへのポインターです。 プロパティ要求のターゲットがピン インスタンスの場合、このメンバーには、IMiniport Xxx::NewStream メソッドが以前にポート ドライバーに出力したストリーム オブジェクト ポインターが含まれます (たとえば、IMiniportWaveCyclic::NewStream メソッドの Stream パラメーター)。 それ以外の場合 (プロパティ要求のターゲットがフィルター インスタンスの場合)、このメンバーは NULL

Node

ノード ID を指定します。 このメンバーは、要求のターゲット ノードを識別します。 ターゲットがノードでない場合、このメンバーは ULONG(-1) に設定されます。

PropertyItem

PCPROPERTY_ITEM型の構造体であるプロパティ項目へのポインター。

Verb

プロパティ要求の種類を指定します。 動詞 は、ヘッダー ファイル ks.h から次のフラグ ビットの 1 つ以上のビットごとの OR に設定されます。

  • KSPROPERTY_TYPE_GET
  • KSPROPERTY_TYPE_SET
  • KSPROPERTY_TYPE_SETSUPPORT
  • KSPROPERTY_TYPE_BASICSUPPORT
  • KSPROPERTY_TYPE_RELATIONS
  • KSPROPERTY_TYPE_SERIALIZESET
  • KSPROPERTY_TYPE_UNSERIALIZESET
  • KSPROPERTY_TYPE_SERIALIZERAW
  • KSPROPERTY_TYPE_UNSERIALIZERAW
  • KSPROPERTY_TYPE_SERIALIZESIZE
  • KSPROPERTY_TYPE_DEFAULTVALUES
  • KSPROPERTY_TYPE_TOPOLOGY
これらのフラグについては、KSPROPERTYで説明されています。

InstanceSize

プロパティ インスタンス バッファーのサイズをバイト単位で指定します。

Instance

プロパティ インスタンス バッファーへのポインター

ValueSize

プロパティ値バッファーのサイズをバイト単位で指定します。

Value

プロパティ値バッファーへのポインター

Irp

クライアントの元のプロパティ要求を含む IRP へのポインター

備考

これは、ポート ドライバーがミニポート ドライバーのプロパティ ハンドラー ルーチンに渡す構造体です。 PCPROPERTY_ITEM 構造体には、PCPROPERTY_REQUEST ポインターを唯一の呼び出しパラメーターとして受け取るプロパティ ハンドラーへの関数ポインターが含まれています。 ポート ドライバーは、PCPROPERTY_REQUEST 構造体を割り当て、元のプロパティ要求 (Irp メンバーが指す) から関連情報を抽出し、ハンドラーを呼び出す前に、この構造体に情報を読み込みます。

WDM オーディオでは、プロパティ要求のターゲットには、フィルター インスタンスまたはピン インスタンスのいずれかを指定できます。 ターゲットにはノード ID を含めることもできます。

クライアントの元のプロパティ要求では、プロパティ インスタンス データは常に KSPROPERTY または KSNODEPROPERTY 構造体 で始まりますが、追加情報を含めることができます。 ポート ドライバーは、PCPROPERTY_REQUEST 構造体の Instance メンバーを調整して、この追加情報が存在する場合は参照します。 詳細については、「Audio プロパティ ハンドラーの」を参照してください。

MajorTarget メンバーと MinorTarget メンバーは、メイン ミニポート オブジェクトと関連するストリーム オブジェクトへのポインター IUnknown されます。 プロパティ ハンドラーは、ミニポート インターフェイスとストリーム インターフェイスについてこれらのオブジェクトに対してクエリを実行できます。 プロパティ要求のターゲットがフィルター インスタンスの場合、MajorTarget はそのフィルター インスタンスのミニポート オブジェクトをポイントし、MinorTarget は NULL 。 ターゲットがピン インスタンスの場合、MinorTarget はそのピンのストリーム オブジェクトをポイントし、MajorTarget は、ピンがアタッチされているフィルターのミニポート オブジェクトを指します。

たとえば、プロパティ要求のターゲットが WaveCyclic フィルターのピン インスタンスの場合は、次のようになります。

  • ハンドラーは、MajorTarget オブジェクトの IUnknown インターフェイスで QueryInterface を呼び出して、オブジェクトの IMiniportWaveCyclic インターフェイスへの参照を取得できます。
  • ハンドラーは、MinorTarget オブジェクトの IUnknown インターフェイスで QueryInterface を呼び出して、オブジェクトの IMiniportWaveCyclicStream インターフェイスへの参照を取得できます。
オーディオ プロパティの背景情報については、「オーディオ エンドポイント、プロパティ、およびイベント」を参照してください。 使用可能なオーディオ固有のプロパティの一覧については、「オーディオ ドライバーのプロパティ セットを参照してください。

必要条件

要件 価値
ヘッダー portcls.h (Portcls.h を含む)

関連項目

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY する

PCPROPERTY_ITEM