Estrutura de interface (wdm.h)
A estrutura interface do descreve uma interface exportada por um driver para uso por outros drivers.
Sintaxe
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;
Membros
Size
Tamanho, em bytes, de uma estrutura que define uma interface de driver, incluindo essa estrutura e membros específicos da interface.
Version
Versão da interface definida pelo driver.
Context
Ponteiro para informações de contexto específicas da interface.
InterfaceReference
Ponteiro para uma rotina InterfaceReference fornecida pelo driver que incrementa a contagem de referências da interface.
InterfaceDereference
Ponteiro para um InterfaceDereference fornecido pelo driver rotina que diminui a contagem de referências da interface.
Observações
A estrutura interface do deve ser incluída como o primeiro membro de todas as estruturas que descrevem interfaces retornadas por drivers em resposta a uma solicitação de IRP_MN_QUERY_INTERFACE.
A rotina InterfaceReference deve ser chamada pelo driver que exporta a interface, sempre que o driver fornece essa interface em resposta a IRP_MN_QUERY_INTERFACE. Da mesma forma, se o driver que solicita a interface passar posteriormente para outro driver, o driver que passa a interface deverá chamar InterfaceReference em nome do driver que a recebe.
Cada driver que importa a interface (seja enviando IRP_MN_QUERY_INTERFACE ou recebendo a interface de outro driver) deve chamar a InterfaceDereference rotina depois de terminar de usar a interface. Depois de chamar a interfaceDereference rotina, um driver não pode usar a interface novamente sem primeiro reobtê-la.
Ao introduzir uma nova versão de uma interface existente, crie um novo GUID em vez de revisar os campos tamanho ou versão dessa estrutura. Para obter mais informações, consulte Using Driver-Defined Interfaces.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |