次の方法で共有


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 テーブルで定義されているフィルターの メンバーの作成に関連付けられます。 動的に割り当てられたコンテキスト情報は、KsAddItemToObjectBagを使用してオブジェクト バッグに配置する必要があります。 コンテキスト は、フィルターの作成時に親 KSFILTERFACTORYContext メンバーの値に初期化されます。 AVStream オブジェクト階層 を参照してください。

備考

ソフトウェア フィルターを実装するドライバーは、通常、フィルターの状態を KSFILTER 構造体に関連付けます。 ソフトウェア フィルターは、通常、対応する KSFILTER_DISPATCH 構造体の Process メンバーによって指定されたコールバック内でデータを処理します。

ハードウェア フィルターでは、ハードウェア ドライバーの焦点はプラットフォームの切り替え(ホストと外部ハードウェア間のデータの移動) であるため、通常は KSFILTER を使用しません。 この遷移は通常、AVStream キュー オブジェクトに関連付けられているコードによって処理されます。

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

必要条件

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

関連項目

KSFILTER_DESCRIPTOR

KSFILTER_DISPATCH

KsAddItemToObjectBag

KsCompletePendingRequest