Compartilhar via


Interface IPortEvents (portcls.h)

A interface IPortEvents é usada por drivers de miniporto para notificar os clientes sobre eventos de hardware. No Windows 98/Me e no Windows 2000 e posterior, todos os drivers de porta em portcls.sys implementar essa interface e expô-la a drivers de miniport. Para determinar se um driver de porta dá suporte à interface IPortEvents, o driver de miniporto chama o método do objeto xxx xxx com IID_IPortEventsREFIID. IPortEvents herda da interface IUnknown.

Normalmente, os drivers usam a interface IPortEvents para notificar o sistema de alterações de volume geradas por hardware ou mudo, embora IPortEvents possa ser usado para qualquer tipo de notificação de evento. IPortEvents interface é uma interface opcional de driver de porta de borda inferior. Ele pode ser usado, por exemplo, para notificar mixer aplicativos de controle ou alterações de linha de mixer. Para obter informações sobre a API de do mixer, consulte a documentação do SDK do Microsoft Windows.

Um driver de miniporto expõe um evento da mesma forma que expõe propriedades: por meio de uma tabela de automação (consulte PCAUTOMATION_TABLE). Os seguintes objetos, todos expostos pelo driver de miniporto, podem especificar uma tabela de automação que contém propriedades e/ou eventos:

  • O filtro que o driver de miniporto implementa
  • Cada pino que o filtro expõe
  • Cada nó que o filtro expõe
Cada entrada de evento em uma tabela de automação é uma estrutura do tipo PCEVENT_ITEM que especifica o seguinte:
  • Um conjunto de eventos
  • Um evento dentro do conjunto
  • Sinalizadores que indicam opções de suporte
  • Um ponteiro de função para o manipulador do evento
Depois que o driver do adaptador for iniciado e seus pares de driver de porta/miniport tiverem sido registrados como filtros com o sistema, o driver do sistema WDMAud, que converte mixer chamadas à API em comandos KS para drivers de áudio WDM, abrirá cada par de driver de porta/miniporto e interrogará seus recursos. Durante esse processo, o WDMAud percorrerá a topologia de filtro do miniportor em busca de um nó de controle que dê suporte a um evento de hardware. O evento é representado pela combinação de KSEVENTSETID_AudioControlChange GUID de conjunto de eventos e ID de evento KSEVENT_CONTROL_CHANGE. Quando o WdmAud os localiza, ele habilita o evento, registrando-se efetivamente como um cliente do evento. Posteriormente, sempre que o driver de miniporto sinaliza o evento, isso notifica o WDMAud, que gera as mensagens apropriadas do Windows para seus clientes.

Além de expor o evento na tabela de automação, um driver de miniporto que precisa expor eventos deve consultar o driver de porta para sua interface IPortEvents.

Esta seção também descreve a seguinte rotina para lidar com solicitações de evento:

eventHandler

Herança

A interface IPortEvents herda da interface IUnknown.

Métodos

A interface IPortEvents tem esses métodos.

 
IPortEvents::AddEventToEventList

O método AddEventToEventList adiciona um evento à lista de eventos do driver de porta.
IPortEvents::GenerateEventList

O método GenerateEventList notifica os clientes por meio da lista de entradas de evento do driver de porta que ocorreu um evento específico.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho portcls.h