次の方法で共有


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

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

Node

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

PropertyItem

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

Verb

プロパティ要求の種類を指定します。 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構造体の インスタンス メンバーを調整します。 詳細については、「 オーディオ プロパティ ハンドラー」を参照してください。

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

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

オーディオ プロパティの背景情報については、「 オーディオ エンドポイント、プロパティ、およびイベント」を参照してください。 使用可能なオーディオ固有のプロパティの一覧については、「 オーディオ ドライバーのプロパティ セット」を参照してください。

要件

要件
Header portcls.h (Portcls.h を含む)

こちらもご覧ください

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY

PCPROPERTY_ITEM