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;
Angehörige
Size
Größe in Byte einer Struktur, die eine Treiberschnittstelle definiert, einschließlich dieser Struktur und schnittstellenspezifischen Member.
Version
Treiberdefinierte 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.
Bemerkungen
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 vom Treiber aufgerufen werden, der die Schnittstelle exportiert, jedes Mal, wenn der Treiber diese Schnittstelle als Reaktion auf IRP_MN_QUERY_INTERFACEbereitstellt. Wenn der Treiber, der die Schnittstelle anfordert, die Schnittstelle 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 (entweder durch Senden von IRP_MN_QUERY_INTERFACE oder durch Empfangen der Schnittstelle von einem anderen Treiber), muss die InterfaceDereference- Routine aufrufen, nachdem sie die Verwendung der Schnittstelle abgeschlossen hat. Nach dem Aufrufen der InterfaceDereference- Routine kann ein Treiber die Schnittstelle nicht erneut verwenden, ohne die Schnittstelle zuerst erneut zu verwenden.
Erstellen Sie bei der Einführung einer neuen Version einer vorhandenen Schnittstelle eine neue GUID, anstatt die felder Size oder Version dieser Struktur zu überarbeiten. Weitere Informationen finden Sie unter Using Driver-Defined Interfaces.
Anforderungen
Anforderung | Wert |
---|---|
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |