Struttura INTERFACE (wdm.h)
La struttura INTERFACE descrive un'interfaccia esportata da un driver per l'uso da parte di altri driver.
Sintassi
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;
Members
Size
Dimensioni, in byte, di una struttura che definisce un'interfaccia driver, inclusa questa struttura e membri specifici dell'interfaccia.
Version
Versione dell'interfaccia definita dal driver.
Context
Puntatore a informazioni di contesto specifiche dell'interfaccia.
InterfaceReference
Puntatore a una routine InterfaceReference fornita dal driver che incrementa il conteggio dei riferimenti dell'interfaccia.
InterfaceDereference
Puntatore a una routine InterfaceDereference fornita dal driver che decrementa il conteggio dei riferimenti dell'interfaccia.
Commenti
La struttura INTERFACE deve essere inclusa come primo membro di tutte le strutture che descrivono le interfacce restituite dai driver in risposta a una richiesta di IRP_MN_QUERY_INTERFACE .
La routine InterfaceReference deve essere chiamata dal driver che esporta l'interfaccia, ogni volta che il driver fornisce tale interfaccia in risposta a IRP_MN_QUERY_INTERFACE. Analogamente, se il driver che richiede l'interfaccia successivamente lo passa a un altro driver, il driver che passa l'interfaccia deve chiamare InterfaceReference per conto del driver che lo riceve.
Ogni driver che importa l'interfaccia (se inviando IRP_MN_QUERY_INTERFACE o ricevendo l'interfaccia da un altro driver) deve chiamare la routine InterfaceDereference al termine dell'uso dell'interfaccia. Dopo aver chiamato la routine InterfaceDereference , un driver non può usare di nuovo l'interfaccia senza prima riapprenzarlo.
Quando si introduce una nuova versione di un'interfaccia esistente, creare un nuovo GUID anziché rivedere i campi Dimensioni o Versione di questa struttura. Per altre info, vedi Uso delle interfacce Driver-Defined.
Requisiti
Requisito | Valore |
---|---|
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |