Compartir a través de


Interfaz IPortEvents (portcls.h)

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

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

Un controlador de miniporte 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 están expuestos por el controlador de miniport, pueden especificar una tabla de automatización que contenga propiedades o eventos:

  • Filtro que implementa el controlador de miniporte
  • Cada pin 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 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/miniport se han registrado como filtros con el sistema, el controlador del sistema WDMAud , que traduce mezclador llamadas API a comandos KS a controladores de audio WDM, abrirá cada par de controladores de puerto/miniporte e interrogará sus capacidades. Durante este proceso, WDMAud atravesará 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, permite que el evento se registre de forma eficaz 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 miniporte que necesita exponer eventos debe consultar el controlador de puerto para su interfaz de IPortEvents.

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 evento del controlador de puerto que se ha producido un evento determinado.

Requisitos

Requisito Valor
de la plataforma de destino de Windows
encabezado de portcls.h