Estrutura interface (wdm.h)
A estrutura INTERFACE 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ência da interface.
InterfaceDereference
Ponteiro para uma rotina InterfaceDereference fornecida pelo driver que diminui a contagem de referência da interface.
Comentários
A estrutura INTERFACE 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, cada vez 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 rotina InterfaceDereference depois de terminar de usar a interface . Depois de chamar a rotina InterfaceDereference , 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 Usando interfaces Driver-Defined.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | wdm.h (inclua Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |