PCPROPERTY_ITEM構造体 (portcls.h)
PCPROPERTY_ITEM 構造体は、特定のフィルター、ピン、またはノードでサポートされるプロパティを記述します。
構文
typedef struct {
const GUID *Set;
ULONG Id;
ULONG Flags;
PCPFNPROPERTY_HANDLER Handler;
} PCPROPERTY_ITEM, *PPCPROPERTY_ITEM;
メンバーズ
Set
プロパティ セットを指定します。 このメンバーは、プロパティ セットを一意に識別する GUID へのポインターです。 Audio Drivers プロパティ セットのプロパティ セットのプロパティ セット 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 構造体へのポインターである 1 つの呼び出しパラメーターを渡します。 この構造体は呼び出し元によって割り当てられ、呼び出し元は次のいずれかの条件で解放します。
- ハンドラー ルーチンが STATUS_PENDING 以外の状態コードを返す場合、呼び出し元は構造体を解放します。 この場合、ミニポート ドライバーは、ハンドラー ルーチンが返された後に構造体にアクセスしようとしないでください。
- ハンドラー ルーチンは、STATUS_PENDINGを返すこともできます。その場合、ミニポート ドライバーは、保留中のプロパティ要求を完了するために、後で PcCompletePendingPropertyRequest を呼び出す必要があります。 PcCompletePendingPropertyRequest 関数は、構造体を解放します。 PcCompletePendingPropertyRequest 呼び出した後、ミニポート ドライバーは構造体へのアクセスを試行しないでください。
プロパティ セットのシリアル化と生シリアル化の詳細については、「KS プロパティ」を参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | portcls.h (Portcls.h を含む) |