Estructura INTERFACE (miniport.h)

La estructura INTERFACE describe una interfaz exportada por un controlador para su uso por otros controladores.

Sintaxis

typedef struct _INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;

Miembros

Size

Tamaño, en bytes, de una estructura que define una interfaz de controlador, incluida esta estructura y miembros específicos de la interfaz.

Version

Versión de interfaz definida por el controlador.

Context

Puntero a información de contexto específica de la interfaz.

InterfaceReference

Puntero a una rutina InterfaceReference proporcionada por el controlador que incrementa el recuento de referencias de la interfaz.

InterfaceDereference

Puntero a una rutina InterfaceDereference proporcionada por el controlador que disminuye el recuento de referencias de la interfaz.

Comentarios

La estructura INTERFACE debe incluirse como primer miembro de todas las estructuras que describen las interfaces devueltas por los controladores en respuesta a una solicitud de IRP_MN_QUERY_INTERFACE .

El controlador que exporta la interfaz debe llamar a la rutina InterfaceReference cada vez que el controlador proporciona esa interfaz en respuesta a IRP_MN_QUERY_INTERFACE. Del mismo modo, si el controlador que solicita la interfaz lo pasa posteriormente a otro controlador, el controlador que pasa la interfaz debe llamar a InterfaceReference en nombre del controlador que lo recibe.

Cada controlador que importa la interfaz (ya sea enviando IRP_MN_QUERY_INTERFACE o recibiendo la interfaz de otro controlador) debe llamar a la rutina InterfaceDereference una vez que haya terminado de usar la interfaz. Después de llamar a la rutina InterfaceDereference , un controlador no puede volver a usar la interfaz sin volver a mantenerla primero.

Requisitos

Requisito Valor
Header miniport.h (incluya Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)

Consulte también

IRP_MN_QUERY_INTERFACE

InterfaceDereference

InterfaceReference