PCPROPERTY_ITEM 構造体 (portcls.h)
PCPROPERTY_ITEM構造体は、特定のフィルター、ピン、またはノードでサポートされるプロパティを表します。
構文
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
メンバー
Set
プロパティ セットを指定します。 このメンバーは、プロパティ セットを一意に識別する GUID へのポインターです。 「オーディオ ドライバーのプロパティ セット」のプロパティ セット GUID の一覧を参照してください。
Id
プロパティ ID を指定します。 このメンバーは、プロパティ セット内のプロパティ項目を識別します。 プロパティ セットに N 個の項目が含まれている場合、有効なプロパティ ID は 0 から N-1 の範囲の整数です。
Flags
ドライバーがサポートするプロパティ要求の種類を指定します。 このメンバーを、次の表に示すフラグ ビットの一部または全部のビットごとの OR に設定します。
フラグ ビット | プロパティ要求の種類 |
---|---|
PCPROPERTY_ITEM_FLAG_GET | 現在のプロパティ データ設定の取得を要求します。 |
PCPROPERTY_ITEM_FLAG_SET | 現在のプロパティ データ設定の設定を要求します。 |
PCPROPERTY_ITEM_FLAG_DEFAULTVALUES | プロパティ データのドライバーの既定値を要求します。 |
PCPROPERTY_ITEM_FLAG_BASICSUPPORT | 基本的なサポートの要求。ドライバーがこのプロパティに対して処理する要求の種類を指定し、有効なデータ型とプロパティ データの有効な範囲も指定します。 |
PCPROPERTY_ITEM_FLAG_SERIALIZESIZE | このプロパティがKSPROPERTY_TYPE_SERIALIZESET要求の一部としてシリアル化されるときに、このプロパティのプロパティ データのサイズを要求します。 |
PCPROPERTY_ITEM_FLAG_SERIALIZERAW | ドライバーに依存する方法でこのプロパティをシリアル化するように要求します。 この操作は、PCPROPERTY_ITEM_FLAG_UNSERIALIZERAWの逆関数です。 |
PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW | ドライバーに依存する方法で、このプロパティの非承認を要求します。 この演算は、PCPROPERTY_ITEM_FLAG_SERIALIZERAWの逆関数です。 |
PCPROPERTY_ITEM_FLAG_SERIALIZE | PCPROPERTY_ITEM_FLAG_SERIALIZERAW |PCPROPERTY_ITEM_FLAG_UNSERIALIZERAW |PCPROPERTY_ITEM_FLAG_SERIALIZESIZE |
Handler
プロパティ ハンドラー ルーチンへのポインター。 このメンバーは、次のように定義されるPCPFNPROPERTY_HANDLER型の関数ポインターです。
typedef NTSTATUS (*PCPFNPROPERTY_HANDLER)
(
IN PPCPROPERTY_REQUEST PropertyRequest
);
次の「解説」セクションを参照してください。
注釈
PCPROPERTY_ITEM構造体は、オートメーション テーブル内の特定のプロパティ項目を指定します。 PCAUTOMATION_TABLE構造体は、PCPROPERTY_ITEM構造体の配列を指します。
ハンドラー ルーチンを呼び出すとき、呼び出し元は単一の呼び出しパラメーターを渡します。これは、PCPROPERTY_REQUEST構造体へのポインターです。 この構造体は呼び出し元によって割り当てられ、呼び出し元は次のいずれかの条件で解放します。
- ハンドラー ルーチンが STATUS_PENDING 以外の状態コードを返す場合、呼び出し元は構造体を解放します。 この場合、ミニポート ドライバーは、 ハンドラー ルーチンが返された後、構造体へのアクセスを試行しないでください。
- ハンドラー ルーチンは、STATUS_PENDINGを返すこともできます。その場合、ミニポート ドライバーは、保留中のプロパティ要求を完了するために、後で PcCompletePendingPropertyRequest を呼び出す必要があります。 PcCompletePendingPropertyRequest 関数は構造体を解放します。 PcCompletePendingPropertyRequest を呼び出した後、ミニポート ドライバーは構造体へのアクセスを試みることはできません。
プロパティ セットのシリアル化と生シリアル化の詳細については、「 KS プロパティ」を参照してください。
要件
要件 | 値 |
---|---|
Header | portcls.h (Portcls.h を含む) |