Estructura INTERFACE (wdm.h)

La estructura INTERFACE describe una interfaz exportada por un controlador para que la usen 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 la 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 importe la interfaz (ya sea enviando IRP_MN_QUERY_INTERFACE o recibiendo la interfaz de otro controlador) debe llamar a la rutina InterfaceDereference después de 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 detenerla primero.

Al introducir una nueva versión de una interfaz existente, cree un NUEVO GUID en lugar de revisar los campos Tamaño o Versión de esta estructura. Para obtener más información, consulta Uso de interfaces de Driver-Defined.

Requisitos

Requisito Valor
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)

Consulte también

IRP_MN_QUERY_INTERFACE

InterfaceDereference