Share via


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構造体へのポインターです。 この構造体は呼び出し元によって割り当てられ、呼び出し元は次のいずれかの条件で解放します。

  1. ハンドラー ルーチンが STATUS_PENDING 以外の状態コードを返す場合、呼び出し元は構造体を解放します。 この場合、ミニポート ドライバーは、 ハンドラー ルーチンが返された後、構造体へのアクセスを試行しないでください。
  2. ハンドラー ルーチンは、STATUS_PENDINGを返すこともできます。その場合、ミニポート ドライバーは、保留中のプロパティ要求を完了するために、後で PcCompletePendingPropertyRequest を呼び出す必要があります。 PcCompletePendingPropertyRequest 関数は構造体を解放します。 PcCompletePendingPropertyRequest を呼び出した後、ミニポート ドライバーは構造体へのアクセスを試みることはできません。
ミニポート ドライバーが解放された後、構造体にアクセスしようとすると、このアクションは、バグのチェックまたは別のドライバーのメモリが破損する可能性があります。

プロパティ セットのシリアル化と生シリアル化の詳細については、「 KS プロパティ」を参照してください。

要件

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

こちらもご覧ください

PCPROPERTY_REQUEST

PcCompletePendingPropertyRequest