Freigeben über


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)

Siehe auch

IRP_MN_QUERY_INTERFACE

InterfaceDereference-