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 :
- Le gestionnaire peut appeler QueryInterface sur l’interface IUnknown de l’objet MajorTarget pour obtenir une référence à l’interface IMiniportWaveCyclique de l’objet.
- Le gestionnaire peut appeler QueryInterface sur l’interface IUnknown de l’objet MinorTarget pour obtenir une référence à l’interface IMiniportWaveCycliqueStream de l’objet.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | portcls.h (include Portcls.h) |