Partager via


Interface IPortEvents (portcls.h)

L’interface IPortEvents est utilisée par les pilotes miniport pour informer les clients des événements matériels. Dans Windows 98/Me et windows 2000 et versions ultérieures, tous les pilotes de port dans portcls.sys implémentent cette interface et l’exposent à des pilotes miniport. Pour déterminer si un pilote de port prend en charge l’interfaceIPortEvents, le pilote miniport appelle la méthode QueryInterface de l’objet IPortXxx avec REFIID IID_IPortEvents. IPortEvents hérite de l’interface IUnknown .

Les pilotes utilisent généralement l’interface IPortEvents pour notifier le système des modifications de volume générées par le matériel ou désactiver le son, même si IPortEvents elles peuvent être utilisées pour n’importe quel type de notification d’événement. IPortEvents interface est une interface de pilote de port de périphérie inférieure facultative. Il peut être utilisé, par exemple, pour notifier les applications de mélangeur de modifications de contrôle ou de ligne de mélangeur. Pour plus d’informations sur l’API mixer, consultez la documentation Microsoft Windows SDK.

Un pilote miniport expose un événement de la même manière qu’il expose les propriétés : via une table Automation (voir PCAUTOMATION_TABLE). Les objets suivants, qui sont tous exposés par le pilote miniport, peuvent spécifier une table Automation qui contient des propriétés et/ou des événements :

  • Filtre que le pilote miniport implémente
  • Chaque broche exposée par le filtre
  • Chaque nœud exposé par le filtre
Chaque entrée d’événement dans une table Automation est une structure de type PCEVENT_ITEM qui spécifie les éléments suivants :
  • Un jeu d’événements
  • Événement au sein de l’ensemble
  • Indicateurs indiquant les options de prise en charge
  • Pointeur de fonction vers le gestionnaire de l’événement
Une fois que le pilote d’adaptateur est démarré et que ses paires de pilotes port/miniport ont été inscrites en tant que filtres auprès du système, le pilote système WDMAud, qui traduit les appels de l’API mixer en commandes KS en pilotes audio WDM, ouvre chaque paire de pilotes port/miniport et interroge ses capacités. Pendant ce processus, WDMAud traverse la topologie de filtre du pilote miniport à la recherche d’un nœud de contrôle qui prend en charge un événement matériel. L’événement est représenté par la combinaison d’KSEVENTSETID_AudioControlChange GUID de jeu d’événements et d’ID d’événement KSEVENT_CONTROL_CHANGE. Lorsque WdmAud les trouve, il active l’événement et s’inscrit en tant que client de l’événement. Par la suite, chaque fois que le pilote miniport signale l’événement, cela avertit WDMAud, qui génère les messages Windows appropriés pour ses clients.

En plus d’exposer l’événement dans la table Automation, un pilote miniport qui doit exposer des événements doit interroger le pilote de port pour son IPortEvents interface.

Cette section décrit également la routine suivante pour la gestion des demandes d’événements :

EventHandler

Héritage

L’interface IPortEvents hérite de l’interface IUnknown.

Méthodes

L’interface IPortEvents a ces méthodes.

 
IPortEvents ::AddEventToEventList

La méthode AddEventToEventList ajoute un événement à la liste des événements du pilote de port.
IPortEvents ::GenerateEventList

La méthode GenerateEventList avertit les clients via la liste des entrées d’événement du pilote de port qu’un événement particulier s’est produit.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête portcls.h