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;

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)

Weitere Informationen

IRP_MN_QUERY_INTERFACE

InterfaceDereference