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.
Si va a escribir un minidriver AVStream, consulte Control de eventos en AVStream.
Los conjuntos de eventos son grupos de eventos relacionados para los que un escuchador puede solicitar notificaciones. Por ejemplo, un escuchador podría registrarse para recibir una notificación de los cambios de estado del dispositivo o cambios en la posición del flujo. Cuando se produce un evento, el streaming del kernel notifica a los clientes que se han registrado para este evento.
Los minidrivers describen cómo admiten un evento proporcionando una estructura KSEVENT_ITEM que contiene punteros a las rutinas de control.
Los oyentes se registran para recibir notificaciones llamando a la rutina de proxy de streaming de kernel KsSynchronousDeviceControl con el código de control IOCTL_KS_ENABLE_EVENT y punteros a las estructuras KSEVENT y KSEVENTDATA.
La solicitud IOCTL_KS_DISABLE_EVENT deshabilita un evento especificado. El mismo puntero que se usó para habilitar el evento debe usarse para deshabilitarlo. Este puntero identifica de forma única el evento. Opcionalmente, el cliente puede especificar un puntero NULL y una longitud de cero para deshabilitar todos los eventos activos para el cliente.
Todos los conjuntos de eventos deben admitir la marca KSEVENT_TYPE_BASICSUPPORT. Consulte KSEVENT para obtener una lista de marcas de eventos disponibles.
Algunos tipos de eventos requieren parámetros adicionales para registrarse para la notificación de eventos. Por ejemplo, el evento KSEVENT_CLOCK_POSITION_MARK en un reloj se desencadena cuando el reloj alcanza una marca de tiempo determinada. Por lo tanto, los clientes que se registran para recibir una notificación de este evento deben especificar la marca de tiempo en la que se desencadenará el evento.
En tal caso, un minidriver pasa parámetros de datos adicionales en el búfer de datos después de la estructura KSEVENTDATA . Los minidrivers que admiten este tipo de evento usan una estructura de datos extendida, de la que el primer miembro es de tipo KSEVENTDATA, para contener los datos de notificación.