KSFILTER 構造体 (ks.h)
KSFILTER 構造体は、インスタンス化されたフィルターを記述します。
構文
typedef struct _KSFILTER {
const KSFILTER_DESCRIPTOR *Descriptor;
KSOBJECT_BAG Bag;
PVOID Context;
} KSFILTER, *PKSFILTER;
メンバー
Descriptor
この特定のフィルターの特性を記述する KSFILTER_DESCRIPTOR 構造体へのポインター。
Bag
このメンバーは、このフィルター インスタンスに関連付けられているKSOBJECT_BAG (PVOID 型と同等) を指定します。 オブジェクト バッグ は、動的メモリを特定の AVStream オブジェクトに関連付けるために使用される構造体です。 フィルター が削除されると、フィルター オブジェクト バッグ内のすべてのものが自動的にクリーンアップされます。
Context
コンテキスト情報を特定のフィルター インスタンスに関連付けるためにクライアントによって使用されるポインター。 通常、このようなコンテキスト情報は、このフィルター インスタンスのKSFILTER_DISPATCH テーブルで定義されているフィルターの Create メンバーに関連付けられます。 動的に割り当てられたコンテキスト情報は、 KsAddItemToObjectBag を使用してオブジェクト バッグに配置する必要があります。 コンテキストは、フィルターの作成時に親 KSFILTERFACTORY の Context メンバーの値に初期化されます。 AVStream オブジェクト階層に関するページを参照してください。
注釈
ソフトウェア フィルターを実装するドライバーは、通常、フィルターの状態を KSFILTER 構造体に関連付けます。 ソフトウェア フィルターは、通常、対応するKSFILTER_DISPATCH構造体の Process メンバーによって指定されたコールバック内でデータ を 処理します。
ハードウェア ドライバーの焦点はプラットフォームの切り替え (ホストと外部ハードウェア間のデータの移動) であるため、通常、ハードウェア フィルターでは KSFILTER は使用されません。 この遷移は、通常、AVStream キュー オブジェクトに関連付けられているコードによって処理されます。
「 オブジェクト バッグ」も参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Microsoft Windows XP 以降のオペレーティング システムおよび Microsoft DirectX 8.0 以降のバージョンで使用できます。 |
Header | ks.h (Ks.h を含む) |