Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |