Partager via


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)

Voir aussi

IRP_MN_QUERY_INTERFACE

InterfaceDereference