Compartir a través de


Función KsCreateFilterFactory (ks.h)

La función** KsCreateFilterFactory** agrega un generador de filtros a un dispositivo determinado.

Sintaxis

KSDDKAPI NTSTATUS KsCreateFilterFactory(
  [in]            PDEVICE_OBJECT            DeviceObject,
  [in]            const KSFILTER_DESCRIPTOR *Descriptor,
  [in, optional]  PWSTR                     RefString,
  [in, optional]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]            ULONG                     CreateItemFlags,
  [in, optional]  PFNKSFILTERFACTORYPOWER   SleepCallback,
  [in, optional]  PFNKSFILTERFACTORYPOWER   WakeCallback,
  [out, optional] PKSFILTERFACTORY          *FilterFactory
);

Parámetros

[in] DeviceObject

Puntero a una estructura DEVICE_OBJECT para la que se va a agregar un generador de filtros.

[in] Descriptor

Puntero a un KSFILTER_DESCRIPTOR que describe las características de los filtros individuales que puede crear esta fábrica.

[in, optional] RefString

Si se proporciona este argumento, esta cadena se usa como cadena de referencia para los filtros creados por esta fábrica. De lo contrario, se usa el GUID de referencia proporcionado en el descriptor.

[in, optional] SecurityDescriptor

Descriptor de seguridad que se va a usar para crear filtros mediante este generador de filtros. Si es NULL, no se proporciona ningún descriptor.

[in] CreateItemFlags

En la tabla siguiente se enumeran las marcas que usa el escritor de minidriver para especificar las características de los filtros que puede crear el nuevo generador de filtros. Establezca este parámetro en el or bit a bit de las marcas siguientes.

Marca Significado
KSCREATE_ITEM_SECURITY_CHANGED Indica que el descriptor de seguridad de este tipo de objeto se ha cambiado y debe conservarse.
KSCREATE_ITEM_WILDCARD Indica que este elemento de creación representa un carácter comodín que se usa para cualquier solicitud de creación que no coincida con ningún otro elemento de creación. El orden de la entrada comodín en la lista de elementos de creación es irrelevante. Solo una entrada con caracteres comodín es válida en cualquier lista de elementos de creación.
KSCREATE_ITEM_NOPARAMETERS Indica que este elemento de creación no permite pasar ningún parámetro y produce un error si se encuentra alguno. (Normalmente, los parámetros de creación se pasan al controlador de creación). Esta marca no se puede usar con una marca de carácter comodín.
KSCREATE_ITEM_FREEONSTOP Indica que el elemento de creación debe liberarse cuando el administrador de PnP envía IRP_MN_STOP_DEVICE. Tenga en cuenta que AVStream libera automáticamente estos elementos de creación cuando el dispositivo recibe la detención de PnP (después de que el cliente haya recibido la notificación de detención de PnP).

[in, optional] SleepCallback

Puntero a una rutina proporcionada por minidriver que recibe notificaciones que el dispositivo asociado a este filtro va a dormir. Cree un prototipo de la rutina de la siguiente manera:

void SleepCallback (IN PKSFILTERFACTORY FilterFactory,
    IN DEVICE_POWER_STATE State);

Si este parámetro es NULL, no se notifica a este generador de filtros que el dispositivo se va a suspender. Consulte Estados de energía del dispositivo.

[in, optional] WakeCallback

Puntero a una rutina proporcionada por minidriver que recibe notificaciones que el dispositivo asociado a este filtro se está despertando. Cree un prototipo de la rutina de la siguiente manera:

void WakeCallback (IN PKSFILTERFACTORY FilterFactory,
    IN DEVICE_POWER_STATE State);

Si este parámetro es NULL, no se notifica a este generador de filtros que el dispositivo se está despertando. Consulte Estados de energía del dispositivo.

[out, optional] FilterFactory

Puntero a una estructura KSFILTERFACTORY que AVStream establece para que apunte al objeto de generador de filtros recién creado. Si no se especifica este parámetro opcional, el autor de la llamada no se informa sobre el objeto de generador de filtros resultante.

Valor devuelto

Devuelve STATUS_SUCCESS si se puede crear el generador de filtros. De lo contrario, devuelve un código de error adecuado.

Comentarios

Si llamas a KsCreateFilterFactory después de AVStrMiniDevicePostStart), debes llamar a KsFilterFactorySetDeviceClassesState para habilitar la clase de dispositivo. (Llame también a KsFilterFactorySetDeviceClassesState para deshabilitar un generador de filtros).

Si llama a KsCreateFilterFactory en el contexto de AVStrMiniDevicePostStart o antes, no es necesario hacerlo.

Antes de llamar a esta función, el minidriver debe obtener la exclusión mutua del dispositivo. Para obtener información sobre cómo hacerlo, consulte Exclusión mutua de dispositivos en AVStream.

Los minidrivers deben usar esta función que se inicializan sin una llamada a KsInitializeDriver o que deben agregar y quitar dinámicamente nuevos tipos de filtro.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y en sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

Consulte también

KSFILTER_DESCRIPTOR

KSNODE_DESCRIPTOR

KSPIN_DESCRIPTOR_EX

KsDeleteFilterFactory