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 de 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 factoría. De lo contrario, se usa el GUID de referencia proporcionado en el descriptor.

[in, optional] SecurityDescriptor

Descriptor de seguridad que se va a usar en la creación de filtros por este generador de filtros. Si null, no se proporciona ningún descriptor.

[in] CreateItemFlags

En la tabla siguiente se enumeran las marcas que usa el sistema de escritura de minidriver para especificar las características de los filtros que puede crear la nueva factoría de filtros. Establezca este parámetro en el OR bit a bit de las marcas siguientes.

Bandera Significado
KSCREATE_ITEM_SECURITY_CHANGED Indica que se ha cambiado el descriptor de seguridad de este tipo de objeto y debe conservarse.
KSCREATE_ITEM_WILDCARD Indica que este elemento de creación representa un carácter comodín que se usa para las solicitudes de creación que no coinciden 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 sola entrada 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 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 el cliente ha recibido la notificación de detención de PnP).

[in, optional] SleepCallback

Puntero a una rutina proporcionada por el minidriver que recibe notificaciones que el dispositivo asociado a este filtro va a dormir. Cree un prototipo de la rutina como se indica a continuación:

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

Si este parámetro es null, este generador de filtros no recibe una notificación de que el dispositivo se va a suspender. Consulte de estados de energía del dispositivo.

[in, optional] WakeCallback

Puntero a una rutina proporcionada por el minidriver que recibe notificaciones que el dispositivo asociado a este filtro se está despertando. Cree un prototipo de la rutina como se indica a continuación:

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

Si este parámetro es NULL, este generador de filtros no recibe una notificación de que el dispositivo se está despertando. Consulte de estados de energía del dispositivo.

[out, optional] FilterFactory

Puntero a una estructura de KSFILTERFACTORY que AVStream establece para que apunte al objeto de generador de filtros recién creado. Si este parámetro opcional no está especificado, 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.

Observaciones

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 inicialicen sin una llamada a KsInitializeDriver o que deben agregar y quitar dinámicamente nuevos tipos de filtro.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
de la plataforma de destino de Universal
encabezado de ks.h (incluya Ks.h)
biblioteca de Ks.lib
irQL PASSIVE_LEVEL

Consulte también

KSFILTER_DESCRIPTOR

KSNODE_DESCRIPTOR

KSPIN_DESCRIPTOR_EX

KsDeleteFilterFactory