PCEVENT_REQUEST-Struktur (portcls.h)
Die PCEVENT_REQUEST-Struktur gibt eine Ereignisanforderung an.
Syntax
typedef struct _PCEVENT_REQUEST {
PUNKNOWN MajorTarget;
PUNKNOWN MinorTarget;
ULONG Node;
const PCEVENT_ITEM *EventItem;
PKSEVENT_ENTRY EventEntry;
ULONG Verb;
PIRP Irp;
} PCEVENT_REQUEST, *PPCEVENT_REQUEST;
Member
MajorTarget
IUnknown-Zeiger auf das Standard Miniportobjekt. Dieser Member enthält den UnknownMiniport-Zeiger , den der Adaptertreiber zuvor an die IPort::Init-Methode übergeben hat.
MinorTarget
IUnknown-Zeiger auf ein Streamobjekt, das dem MajorTarget-Miniportobjekt zugeordnet ist. Dieser Member enthält den stream-object-Zeiger, den der Porttreiber zuvor von der IMiniportXxx::NewStream-Methode abgerufen hat (z. B. der Stream Parameter der IMiniportWaveCyclic::NewStream-Methode).
Node
Gibt eine Knoten-ID an. Dieser Member identifiziert den Zielknoten für die Anforderung. Wenn das Ziel kein Knoten ist, wird dieser Member auf ULONG(-1) festgelegt.
EventItem
Zeiger auf die PCEVENT_ITEM-Struktur für diese Anforderung
EventEntry
Zeiger auf die KSEVENT_ENTRY-Struktur für diese Anforderung
Verb
Gibt den Typ der Ereignisanforderung an. Dieser Member sollte auf einen der Werte in der folgenden Tabelle festgelegt werden.
Wert | Bedeutung |
---|---|
PCEVENT_VERB_ADD | Gibt an, dass ein Client das angegebene Ereignis aktivieren möchte. Nach dem Überprüfen der Ereignis- und Zielinformationen fügt die EventHandler-Routine das Ereignis hinzu, indem die IPortEvents::AddEventToEventList-Methode aufgerufen wird. |
PCEVENT_VERB_REMOVE | Benachrichtigt den EventHandler , dass ein Ereignis deaktiviert und aus der Liste entfernt wird. |
PCEVENT_VERB_SUPPORT | Diese Anforderung ist eine Abfrage zur Unterstützung. Wenn der Miniporttreiber das Ereignis für das in der Anforderung identifizierte Ziel unterstützt, sollte diese Abfrage erfolgreich sein. Andernfalls sollte die Abfrage fehlschlagen. |
PCEVENT_VERB_NONE | Es ist keine Aktion erforderlich. |
Irp
Zeiger auf den IRP , der die Ereignisanforderung enthält
Hinweise
Dies ist die Struktur, die der Porttreiber an die EventHandler-Routine des Miniporttreibers übergibt. Die PCEVENT_ITEM-Struktur enthält einen Funktionszeiger auf einen Ereignishandler, der einen PCEVENT_REQUEST-Zeiger als einzigen Aufrufparameter verwendet. Der Porttreiber ordnet eine PCEVENT_REQUEST-Struktur zu, extrahiert die relevanten Informationen aus der ursprünglichen Ereignisanforderung (auf die der Irp-Member verweist) und lädt die Informationen in diese Struktur, bevor der Handler aufgerufen wird.
In WDM-Audio kann das Ziel einer Ereignisanforderung eine Pin instance sein, aber kein Filter instance. Das Ziel kann auch eine Knoten-ID enthalten.
Die Member MajorTarget und MinorTarget sind IUnknown-Zeiger auf das Standard Miniportobjekt bzw. ein zugeordnetes Streamobjekt. Der Ereignishandler kann diese Objekte für ihre Miniport- und Streamschnittstellen abfragen.
Wenn das Ziel für die Ereignisanforderung beispielsweise eine Pin instance für einen WaveCyclic-Filter ist:
- Der Handler kann QueryInterface auf der IUnknown-Schnittstelle des MajorTarget-Objekts aufrufen, um einen Verweis auf die IMiniportWaveCyclic-Schnittstelle des Objekts abzurufen.
- Der Handler kann QueryInterface auf der IUnknown-Schnittstelle des MinorTarget-Objekts aufrufen, um einen Verweis auf die IMiniportWaveCyclicStream-Schnittstelle des Objekts abzurufen.
Anforderungen
Anforderung | Wert |
---|---|
Header | portcls.h (portcls.h einschließen) |