Compartilhar via


Interface IPortEvents (portcls.h)

A IPortEvents interface é usada por drivers de miniport para notificar os clientes sobre eventos de hardware. No Windows 98/Me e no Windows 2000 e posteriores, 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 à IPortEvents interface, o driver de miniporto chama o método QueryInterface do objeto IPortXxx com IID_IPORTEVENTS REFIID. IPortEvents herda da interface IUnknown .

Os drivers normalmente usam a IPortEvents interface para notificar o sistema de alterações de volume geradas por hardware ou mudo, embora IPortEvents possam ser usados 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 aplicativos de mixer de controle ou alterações de linha de mixer. Para obter informações sobre a API 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 é iniciado e seus pares de driver de porta/miniport foram registrados como filtros com o sistema, o driver do sistema WDMAud, que converte chamadas à API do mixer em comandos KS para drivers de áudio WDM, abrirá cada par de driver de porta/miniporte e interrogará seus recursos. Durante esse processo, o WDMAud percorrerá a topologia de filtro do driver de miniporto 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 do conjunto de eventos e KSEVENT_CONTROL_CHANGE de ID de evento. 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 miniporte que precisa expor eventos deve consultar o driver de porta para sua IPortEvents interface.

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
Plataforma de Destino Windows
Cabeçalho portcls.h