Freigeben über


IPortEvents-Schnittstelle (portcls.h)

Die IPortEvents Schnittstelle wird von Miniporttreibern verwendet, um Clients über Hardwareereignisse zu benachrichtigen. In Windows 98/Me und windows 2000 und höher implementieren alle Porttreiber in portcls.sys diese Schnittstelle implementieren und für Miniporttreiber verfügbar machen. Um zu bestimmen, ob ein Porttreiber die IPortEvents Schnittstelle unterstützt, ruft der Miniporttreiber die QueryInterface-Methode des IPortXxx-Objekts mit REFIID IID_IPortEvents auf. IPortEvents erbt von der IUnknown-Schnittstelle .

Treiber verwenden in der Regel die IPortEvents -Schnittstelle, um das System über hardwaregenerierte Volumes zu benachrichtigen oder Änderungen stummzuschalten, obwohl IPortEvents für jede Art von Ereignisbenachrichtigung verwendet werden kann. IPortEvents interface ist eine optionale Treiberschnittstelle für den unteren Rand des Ports. Es kann beispielsweise verwendet werden, um Mischeranwendungen über Steuerungs- oder Mischerleitungsänderungen zu benachrichtigen. Informationen zur Mixer-API finden Sie in der Dokumentation zu Microsoft Windows SDK.

Ein Miniporttreiber macht ein Ereignis auf die gleiche Weise verfügbar wie Eigenschaften: über eine Automatisierungstabelle (siehe PCAUTOMATION_TABLE). Die folgenden Objekte, die alle vom Miniporttreiber verfügbar gemacht werden, können eine Automatisierungstabelle angeben, die Eigenschaften und/oder Ereignisse enthält:

  • Der Filter, den der Miniporttreiber implementiert.
  • Jeder Pin, den der Filter verfügbar macht
  • Jeder Knoten, den der Filter verfügbar macht
Jeder Ereigniseintrag in einer Automatisierungstabelle ist eine Struktur vom Typ PCEVENT_ITEM , die Folgendes angibt:
  • Ein Ereignissatz
  • Ein Ereignis innerhalb der Gruppe
  • Flags, die Supportoptionen angeben
  • Ein Funktionszeiger auf den Handler für das Ereignis
Sobald der Adaptertreiber gestartet und seine Port-/Miniporttreiberpaare als Filter beim System registriert wurden, öffnet der WDMAud-Systemtreiber, der Mixer-API-Aufrufe in KS-Befehle in WDM-Audiotreiber übersetzt, jedes Port-/Miniporttreiberpaar und fragt dessen Funktionen ab. Während dieses Prozesses durchläuft WDMAud die Filtertopologie des Miniporttreibers bei der Suche nach einem Steuerungsknoten, der ein Hardwareereignis unterstützt. Das Ereignis wird durch die Kombination aus Ereignissatz-GUID-KSEVENTSETID_AudioControlChange und Ereignis-ID KSEVENT_CONTROL_CHANGE dargestellt. Wenn WdmAud diese findet, aktiviert es das Ereignis und registriert sich effektiv als Client des Ereignisses. Anschließend wird WDMAud jedes Mal benachrichtigt, wenn der Miniporttreiber das Ereignis signalisiert, das die entsprechenden Windows-Meldungen für seine Clients generiert.

Zusätzlich zum Verfügbarmachen des Ereignisses in der Automatisierungstabelle sollte ein Miniporttreiber, der Ereignisse verfügbar machen muss, den Porttreiber für seine IPortEvents Schnittstelle abfragen.

In diesem Abschnitt wird auch die folgende Routine für die Behandlung von Ereignisanforderungen beschrieben:

EventHandler

Vererbung

Die IPortEvents-Schnittstelle erbt von der IUnknown-Schnittstelle.

Methoden

Die IPortEvents-Schnittstelle verfügt über diese Methoden.

 
IPortEvents::AddEventToEventList

Die AddEventToEventList-Methode fügt der Ereignisliste des Porttreibers ein Ereignis hinzu.
IPortEvents::GenerateEventList

Die GenerateEventList-Methode benachrichtigt Clients über die Liste der Ereigniseinträge des Porttreibers, dass ein bestimmtes Ereignis aufgetreten ist.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile portcls.h