Freigeben über


BUS_INTERFACE_REFERENCE Struktur (ks.h)

Ein Softwaregeräte-Enumerator exportiert diese Schnittstelle, damit Treiber auf die Anzahl physischer Geräteobjekte (PDOs) verweisen können, sodass das Gerät während der Verwendung aktiv bleibt und entladen wird, wenn es nicht verwendet wird.

Syntax

typedef struct {
  INTERFACE                  Interface;
  PFNREFERENCEDEVICEOBJECT   ReferenceDeviceObject;
  PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
  PFNQUERYREFERENCESTRING    QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;

Angehörige

Interface

Gibt die exportierte INTERFACE-an.

ReferenceDeviceObject

Zeiger auf eine vom Treiber bereitgestellte KStrReferenceDeviceObject Routine.

DereferenceDeviceObject

Zeiger auf eine vom Treiber bereitgestellte KStrDereferenceDeviceObject Routine.

QueryReferenceString

Zeiger auf eine vom Treiber bereitgestellte KStrQueryReferenceString Routine.

Bemerkungen

Ein Treiber ruft eine BUS_INTERFACE_REFERENCE Schnittstelle ab, indem eine IRP_MJ_PNP Anforderung erstellt und gesendet wird, die einen IRP_MN_QUERY_INTERFACE Hilfsfunktionscode angibt. Dazu sollte der Treiber folgendes tun:

  • Ordnen Sie eine BUS_INTERFACE_REFERENCE Struktur aus dem ausgelagerten Speicherpool zu, und füllen Sie diese aus.
  • Erstellen Sie einen IRP für die Abfrageschnittstellenanforderung, und rufen Sie den nächsten Stapelspeicherort für das neue IRP ab.
  • Geben Sie an der neuen Stapelposition einen Zeiger auf die neue BUS_INTERFACE_REFERENCE Struktur im Parameters.QueryInterface.Interface Member an.
  • Legen Sie eine Abschlussroutine fest, und senden Sie die Anforderung an den Treiberstapel.
  • Wenn Ihre Anforderung erfolgreich ist, füllt das System die BUS_INTERFACE_REFERENCE Struktur aus, auf die durch Parameters.QueryInterface.Interfaceverwiesen wird.

Anforderungen

Anforderung Wert
Header- ks.h (enthalten Ks.h)