INTERFACE-Struktur (wdm.h)

Die INTERFACE-Struktur beschreibt eine Schnittstelle, die von einem Treiber exportiert wird, der von anderen Treibern verwendet 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 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 dekrementiert.

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ückgegebene Schnittstellen beschrieben 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_INTERFACE bereitstellt. Wenn der Treiber, der die Schnittstelle anfordert, anschließend an einen anderen Treiber übergeben wird, muss der Treiber, der die Schnittstelle übergibt, interfaceReference im Auftrag des Treibers aufrufen, der es empfängt.

Jeder Treiber, der die Schnittstelle importiert (unabhängig davon, ob IRP_MN_QUERY_INTERFACE gesendet oder die Schnittstelle von einem anderen Treiber empfangen) muss die InterfaceDereference-Routine aufrufen, nachdem sie die Schnittstelle abgeschlossen hat. Nach dem Aufrufen der InterfaceDereference-Routine kann ein Treiber die Schnittstelle nicht erneut verwenden, ohne sie zuerst erneut zu erhalten.

Hinweis

Wenn Sie eine neue Version einer vorhandenen Schnittstelle einführen, erstellen Sie anstelle der Überarbeitung der Felder "Größe " oder " Version " dieser Struktur eine neue GUID. Weitere Informationen finden Sie unter Verwenden von Driver-Defined Schnittstellen.

Anforderungen

   
Header wdm.h (enthalten Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)

Weitere Informationen

IRP_MN_QUERY_INTERFACE

InterfaceDereference