PCEVENT_REQUEST structure (portcls.h)

La structure PCEVENT_REQUEST spécifie une demande d’événement.

Syntaxe

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;

Membres

MajorTarget

Pointeur IUnknown vers l’objet miniport main. Ce membre contient le pointeur UnknownMiniport que le pilote de l’adaptateur a précédemment passé à la méthode IPort ::Init .

MinorTarget

Pointeur IUnknown vers un objet de flux associé à l’objet miniport MajorTarget . Ce membre contient le pointeur stream-object que le pilote de port a précédemment récupéré à partir de la méthode IMiniportXxx ::NewStream (par exemple, le paramètre Stream de la méthode IMiniportWaveCyclique ::NewStream).

Node

Spécifie un ID de nœud. Ce membre identifie le nœud cible pour la requête. Si la cible n’est pas un nœud, ce membre est défini sur ULONG(-1).

EventItem

Pointeur vers la structure PCEVENT_ITEM pour cette requête

EventEntry

Pointeur vers la structure KSEVENT_ENTRY pour cette requête

Verb

Spécifie le type de demande d’événement. Ce membre doit être défini sur l’une des valeurs du tableau suivant.

Valeur Signification
PCEVENT_VERB_ADD Indique qu’un client souhaite activer l’événement spécifié. Après avoir validé les informations sur l’événement et la cible, la routine EventHandler ajoute l’événement en appelant la méthode IPortEvents ::AddEventToEventList .
PCEVENT_VERB_REMOVE Avertit le gestionnaire d’événements qu’un événement est désactivé et supprimé de la liste.
PCEVENT_VERB_SUPPORT Cette demande est une requête de support. Si le pilote miniport prend en charge l’événement pour la cible identifiée dans la requête, il doit réussir cette requête. Sinon, la requête doit échouer.
PCEVENT_VERB_NONE Aucune action n'est nécessaire.

Irp

Pointeur vers l’IRP contenant la demande d’événement

Remarques

Il s’agit de la structure que le pilote de port transmet à la routine EventHandler du pilote miniport. La structure PCEVENT_ITEM contient un pointeur de fonction vers un gestionnaire d’événements qui prend un pointeur PCEVENT_REQUEST comme seul paramètre d’appel. Le pilote de port alloue une structure PCEVENT_REQUEST , extrait les informations pertinentes de la demande d’événement d’origine (vers laquelle pointe le membre Irp ) et charge les informations dans cette structure avant d’appeler le gestionnaire.

Dans l’audio WDM, la cible d’une demande d’événement peut être une broche instance mais pas un filtre instance. La cible peut également inclure un ID de nœud.

Les membres MajorTarget et MinorTarget sont des pointeurs IUnknown vers l’objet miniport main et un objet stream associé, respectivement. Le gestionnaire d’événements peut interroger ces objets pour leurs interfaces de miniport et de flux.

Par exemple, si la cible de la demande d’événement est une broche instance sur un filtre WaveCyclique :

Configuration requise

Condition requise Valeur
En-tête portcls.h (include Portcls.h)

Voir aussi

EventHandler

IPortEvents ::AddEventToEventList

KSEVENT_ENTRY

PCEVENT_ITEM

PCFILTER_NODE