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 |