Estructura KSFILTERFACTORY (ks.h)

La estructura KSFILTERFACTORY representa un generador de filtros.

Sintaxis

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

Miembros

FilterDescriptor

Puntero a una estructura de KSFILTER_DESCRIPTOR que describe las características de los filtros creados por este generador.

Bag

Este miembro especifica el KSOBJECT_BAG (equivalente al tipo PVOID) asociado a este generador de filtros. Los contenedores de objetos son estructuras que se usan para asociar memoria dinámica con un objeto AVStream específico. Todo lo que se encuentra en el contenedor de objetos de fábrica de filtros se limpia automáticamente cuando se elimina el generador de filtros. Consulte la sección conceptual sobre bolsas de objetos para obtener más información.

Context

Puntero a una dirección de memoria que el cliente puede usar para asociar información de contexto con el generador de filtros. AVStream no usa este miembro de ninguna manera. Tenga en cuenta que cualquier memoria dinámica asociada al generador de filtros debe colocarse en el contenedor de objetos con KsAddItemToObjectBag. El contexto se inicializa en el valor del miembro Context del KSDEVICE primario en el momento en que se crea el generador. Consulte Jerarquía de objetos AVStream.

Comentarios

Un generador de filtros representa explícitamente la capacidad de un dispositivo para crear instancias de un tipo determinado de filtro, tal y como se describe en un descriptor de filtro.

Los controladores de hardware suelen usar esta estructura para administrar una función determinada del hardware que se expone como un tipo de filtro. Por lo general, los filtros de software no necesitan administrar el dispositivo en este nivel.

Los objetos de generador de filtros se crean de dos maneras. Se pueden crear durante el procesamiento de AddDevice, tal como se indica en la lista de descriptores de filtro del descriptor de dispositivo. El cliente también puede crearlos explícitamente en una llamada a KsCreateFilterFactory. El cliente puede crear generadores de filtros en cualquier momento, pero normalmente esto se realiza durante el procesamiento del IRP de inicio de PnP cuando una evaluación de recursos asignados indica qué tipos de filtros debe exponer el dispositivo.

Para la sincronización, la duración de las factorías de filtro creadas implícitamente se define como el intervalo que se inicia cuando se llama a la función de distribución de creación de dispositivos del cliente (o sería) y finaliza después de que se llame a la función de distribución PnP del dispositivo del cliente (o sería). La duración de los generadores de filtros creados explícitamente mediante una llamada a KsCreateFilterFactory se inicia inmediatamente después de que se devuelva esa llamada.

Consulte también Bolsas de objetos.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y sistemas operativos posteriores y en Microsoft DirectX 8.0 y versiones posteriores.
Encabezado ks.h (incluya Ks.h)

Consulte también

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory