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
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 を含む) |
関連項目
KSPROPERTY を する