Interfaz IPortEvents (portcls.h)

Los controladores de minipuerto usan la IPortEvents interfaz para notificar a los clientes los eventos de hardware. En Windows 98/Me y en Windows 2000 y versiones posteriores, todos los controladores de puerto de portcls.sys implementar esta interfaz y exponerlos a controladores de miniport. Para determinar si un controlador de puerto admite la IPortEvents interfaz, el controlador de minipuerto llama al método QueryInterface del objeto IPortXxx con REFIID IID_IPortEvents. IPortEvents hereda de la interfaz IUnknown .

Los controladores suelen usar la IPortEvents interfaz para notificar al sistema los cambios de volumen generados por hardware o silenciar, aunque IPortEvents se pueden usar para cualquier tipo de notificación de eventos. IPortEvents interface es una interfaz opcional del controlador de puerto de borde inferior. Se puede usar, por ejemplo, para notificar a las aplicaciones mezcladoras de cambios de control o de línea mezcladora . Para obtener información sobre la API de mezclador, consulte la documentación de Microsoft Windows SDK.

Un controlador de minipuerto expone un evento de la misma manera que expone las propiedades: a través de una tabla de automatización (consulte PCAUTOMATION_TABLE). Los objetos siguientes, todos los cuales se exponen mediante el controlador de miniport, pueden especificar una tabla de automatización que contenga propiedades o eventos:

  • Filtro que implementa el controlador de minipuerto
  • Cada patilla que expone el filtro
  • Cada nodo que expone el filtro
Cada entrada de evento de una tabla de automatización es una estructura de tipo PCEVENT_ITEM que especifica lo siguiente:
  • Un conjunto de eventos
  • Un evento dentro del conjunto
  • Marcas que indican las opciones de soporte técnico
  • Puntero de función al controlador para el evento
Una vez iniciado el controlador del adaptador y sus pares de controladores de puerto/minipuerto se han registrado como filtros con el sistema, el controlador del sistema WDMAud, que traduce las llamadas API de mezclador en comandos KS a controladores de audio WDM, abrirá cada par de controladores de puerto/miniporte e interrogará sus capacidades. Durante este proceso, WDMAud recorrerá la topología de filtro del controlador de miniport en búsqueda de un nodo de control que admita un evento de hardware. El evento se representa mediante la combinación del GUID del conjunto de eventos KSEVENTSETID_AudioControlChange y el identificador de evento KSEVENT_CONTROL_CHANGE. Cuando WdmAud encuentra estos elementos, habilita el evento y se registra eficazmente como cliente del evento. Posteriormente, cada vez que el controlador de miniporte señala el evento, esto notifica a WDMAud, que genera los mensajes de ventana adecuados para sus clientes.

Además de exponer el evento en la tabla de automatización, un controlador de minipuerto que necesita exponer eventos debe consultar el controlador de puerto para su IPortEvents interfaz.

En esta sección también se describe la siguiente rutina para controlar las solicitudes de eventos:

EventHandler

Herencia

La interfaz IPortEvents hereda de la interfaz IUnknown.

Métodos

La interfaz IPortEvents tiene estos métodos.

 
IPortEvents::AddEventToEventList

El método AddEventToEventList agrega un evento a la lista de eventos del controlador de puerto.
IPortEvents::GenerateEventList

El método GenerateEventList notifica a los clientes a través de la lista de entradas de eventos del controlador de puerto que se ha producido un evento determinado.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado portcls.h