次の方法で共有


KSFILTERFACTORY 構造体 (ks.h)

KSFILTERFACTORY 構造体は、フィルター ファクトリを表します。

構文

typedef struct _KSFILTERFACTORY {
  const KSFILTER_DESCRIPTOR *FilterDescriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;

メンバー

FilterDescriptor

このファクトリによって作成されるフィルターの特性を記述する KSFILTER_DESCRIPTOR 構造体へのポインター。

Bag

このメンバーは、このフィルター ファクトリに関連付けられているKSOBJECT_BAG (PVOID 型と同等) を指定します。 オブジェクト バッグは、動的メモリを特定の AVStream オブジェクトに関連付けるために使用される構造体です。 フィルター ファクトリ オブジェクト バッグ内のすべての項目は、フィルター ファクトリが削除されると自動的にクリーンアップされます。 詳細については、 オブジェクト バッグ の概念に関するセクションを参照してください。

Context

コンテキスト情報をフィルター ファクトリに関連付けるためにクライアントが使用できるメモリ アドレスへのポインター。 AVStream では、このメンバーは何も使用されません。 フィルター ファクトリに関連付けられている動的メモリは、 KsAddItemToObjectBag を使用してオブジェクト バッグに配置する必要があることに注意してください。 コンテキストは、ファクトリの作成時に親 KSDEVICEContext メンバーの値に初期化されます。 AVStream オブジェクト階層に関するページを参照してください。

注釈

フィルター ファクトリは、フィルター記述子で説明されているように、特定の種類のフィルターをインスタンス化するデバイスの機能を明示的に表します。

通常、ハードウェアのドライバーは、この構造体を使用して、フィルターの種類として公開されるハードウェアの特定の機能を管理します。 ソフトウェア フィルターでは、通常、このレベルでデバイスを管理する必要はありません。

フィルター ファクトリ オブジェクトは、2 つの方法で作成されます。 これらは、デバイス記述子のフィルター記述子の一覧で示されているように、AddDevice 処理中に作成できます。 これらは、 KsCreateFilterFactory の呼び出しでクライアントによって明示的に作成することもできます。 クライアントは、いつでもフィルター ファクトリを作成できますが、これは通常、割り当てられたリソースの評価がデバイスによって公開する必要があるフィルターの種類を示す場合、PnP スタート IRP の処理中に行われます。

同期の目的上、暗黙的に作成されるフィルター ファクトリの有効期間は、クライアントのデバイス作成ディスパッチ関数が呼び出されたとき (または呼び出される)、クライアントのデバイス PnP 削除ディスパッチ関数が呼び出された後に終了する (または呼び出される) 間隔として定義されます。 KsCreateFilterFactory を呼び出して明示的に作成されたフィルター ファクトリの有効期間は、その呼び出しが返された直後に開始されます。

オブジェクト バッグ」も参照してください。

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムおよび Microsoft DirectX 8.0 以降のバージョンで使用できます。
Header ks.h (Ks.h を含む)

こちらもご覧ください

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory