INTERFACE-Struktur (wdm.h)
Die INTERFACE-Struktur beschreibt eine Schnittstelle, die von einem Treiber zur Verwendung durch andere Treiber exportiert wird.
Syntax
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;
Member
Size
Größe (in Bytes) einer Struktur, die eine Treiberschnittstelle definiert, einschließlich dieser Struktur und schnittstellenspezifischen Membern.
Version
Vom Treiber definierte Schnittstellenversion.
Context
Zeiger auf schnittstellenspezifische Kontextinformationen.
InterfaceReference
Zeiger auf eine vom Treiber bereitgestellte InterfaceReference-Routine , die die Referenzanzahl der Schnittstelle erhöht.
InterfaceDereference
Zeiger auf eine vom Treiber bereitgestellte InterfaceDereference-Routine , die die Referenzanzahl der Schnittstelle verringert.
Hinweise
Die INTERFACE-Struktur muss als erstes Element aller Strukturen enthalten sein, die Schnittstellen beschreiben, die von Treibern als Reaktion auf eine IRP_MN_QUERY_INTERFACE Anforderung zurückgegeben werden.
Die InterfaceReference-Routine muss von dem Treiber aufgerufen werden, der die Schnittstelle exportiert, jedes Mal, wenn der Treiber diese Schnittstelle als Reaktion auf IRP_MN_QUERY_INTERFACE bereitstellt. Wenn der Treiber, der die Schnittstelle anfordert, diese anschließend an einen anderen Treiber übergibt, muss der Treiber, der die Schnittstelle übergibt , InterfaceReference im Namen des Treibers aufrufen, der sie empfängt.
Jeder Treiber, der die Schnittstelle importiert (sei es durch senden IRP_MN_QUERY_INTERFACE oder durch Empfangen der Schnittstelle von einem anderen Treiber), muss die InterfaceDereference-Routine aufrufen, nachdem die Verwendung der Schnittstelle abgeschlossen ist. Nach dem Aufrufen der InterfaceDereference-Routine kann ein Treiber die Schnittstelle nicht erneut verwenden, ohne sie zuvor erneut zu verwenden.
Wenn Sie eine neue Version einer vorhandenen Schnittstelle einführen, erstellen Sie eine neue GUID, anstatt die Felder Größe oder Version dieser Struktur zu überarbeiten. Weitere Informationen finden Sie unter Verwenden Driver-Defined Schnittstellen.
Anforderungen
Anforderung | Wert |
---|---|
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |