Structure d’INTERFACE (wdm.h)
La structure interface décrit une interface exportée par un pilote à utiliser par d’autres pilotes.
Syntaxe
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;
Membres
Size
Taille, en octets, d’une structure définissant une interface de pilote, y compris les membres spécifiques à cette structure et à l’interface.
Version
Version de l’interface définie par le pilote.
Context
Pointeur vers des informations de contexte spécifiques à l’interface.
InterfaceReference
Pointeur vers un InterfaceReference fourni par le pilote routine qui incrémente le nombre de références de l’interface.
InterfaceDereference
Pointeur vers un InterfaceDereference fourni par le pilote routine qui décrémente le nombre de références de l’interface.
Remarques
La structure interface doit être incluse en tant que premier membre de toutes les structures qui décrivent les interfaces retournées par les pilotes en réponse à une demande de IRP_MN_QUERY_INTERFACE.
La routine InterfaceReference doit être appelée par le pilote qui exporte l’interface, chaque fois que le pilote fournit cette interface en réponse à IRP_MN_QUERY_INTERFACE. De même, si le pilote qui demande l’interface le transmet ultérieurement à un autre pilote, le pilote qui transmet l’interface doit appeler InterfaceReference pour le compte du pilote qui le reçoit.
Chaque pilote qui importe l’interface (que ce soit en envoyant IRP_MN_QUERY_INTERFACE ou en recevant l’interface d’un autre pilote) doit appeler la routine InterfaceDereference une fois l’interface terminée. Après avoir appelé la routine InterfaceDereference, un pilote ne peut pas utiliser à nouveau l’interface sans la reobtener d’abord.
Lors de l’introduction d’une nouvelle version d’une interface existante, créez un GUID au lieu de réviser les champs taille de ou version de cette structure. Pour plus d’informations, consultez Utilisation des interfaces Driver-Defined.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |