Interfaccia IPortEvents (portcls.h)

L'interfaccia IPortEvents viene usata dai driver miniport per notificare ai client eventi hardware. In Windows 98/Me e in Windows 2000 e versioni successive, tutti i driver di porta in portcls.sys implementare questa interfaccia ed esporlo ai driver miniport. Per determinare se un driver di porta supporta l'interfacciaIPortEvents, il driver miniport chiama il metodo QueryInterface dell'oggetto IPortXxx con REFIID IID_IPortEvents. IPortEvents eredita dall'interfaccia IUnknown .

I driver usano in genere l'interfaccia IPortEvents per notificare al sistema le modifiche al volume generato dall'hardware o disattivarlo, anche se IPortEvents può essere usato per qualsiasi tipo di notifica degli eventi. IPortEvents interface è un'interfaccia facoltativa del driver di porta inferiore. Può essere utilizzato, ad esempio, per notificare le applicazioni mixer di modifiche di controllo o linea mixer . Per informazioni sull'API mixer, vedere la documentazione di Microsoft Windows SDK.

Un driver miniport espone un evento nello stesso modo in cui espone le proprietà: tramite una tabella di automazione (vedere PCAUTOMATION_TABLE). Gli oggetti seguenti, tutti esposti dal driver miniport, possono specificare una tabella di automazione che contiene proprietà ed eventi:

  • Filtro implementato dal driver miniport
  • Ogni pin esposto dal filtro
  • Ogni nodo esposto dal filtro
Ogni voce di evento in una tabella di automazione è una struttura di tipo PCEVENT_ITEM che specifica quanto segue:
  • Set di eventi
  • Evento all'interno del set
  • Flag che indicano le opzioni di supporto
  • Puntatore di funzione al gestore per l'evento
Una volta avviato il driver dell'adattatore e le relative coppie di driver porta/miniport sono state registrate come filtri con il sistema, il driver di sistema WDMAud, che converte le chiamate API mixer in comandi KS in driver audio WDM, aprirà ogni coppia di driver porta/miniport e ne interroga le funzionalità. Durante questo processo, WDMAud attraversa la topologia di filtro del driver miniport nella ricerca di un nodo di controllo che supporta un evento hardware. L'evento è rappresentato dalla combinazione di GUID del set di eventi KSEVENTSETID_AudioControlChange e ID evento KSEVENT_CONTROL_CHANGE. Quando WdmAud trova questi elementi, abilita l'evento, registrandosi in modo efficace come client dell'evento. Successivamente, ogni volta che il driver miniport segnala l'evento, invia una notifica a WDMAud, che genera i messaggi di Windows appropriati per i client.

Oltre a esporre l'evento nella tabella di automazione, un driver miniport che deve esporre gli eventi deve eseguire una query sul driver di porta per l'interfaccia IPortEvents .

Questa sezione descrive anche la routine seguente per la gestione delle richieste di eventi:

Eventhandler

Ereditarietà

L'interfaccia IPortEvents eredita dall'interfaccia IUnknown.

Metodi

L'interfaccia IPortEvents include questi metodi.

 
IPortEvents::AddEventToEventList

Il metodo AddEventToEventList aggiunge un evento all'elenco eventi del driver di porta.
IPortEvents::GenerateEventList

Il metodo GenerateEventList invia una notifica ai client tramite l'elenco di voci di evento del driver di porta che si è verificato un determinato evento.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione portcls.h