WdfFdoQueryForInterface-Funktion (wdffdo.h)

[Gilt nur für KMDF]

Die WdfFdoQueryForInterface-Methode erhält Zugriff auf die GUID-identifizierte Schnittstelle eines anderen Treibers.

Syntax

NTSTATUS WdfFdoQueryForInterface(
  [in]           WDFDEVICE  Fdo,
  [in]           LPCGUID    InterfaceType,
  [out]          PINTERFACE Interface,
  [in]           USHORT     Size,
  [in]           USHORT     Version,
  [in, optional] PVOID      InterfaceSpecificData
);

Parameter

[in] Fdo

Ein Handle für ein Framework-Geräteobjekt.

[in] InterfaceType

Ein Zeiger auf eine GUID, die die Schnittstelle identifiziert.

[out] Interface

Ein Zeiger auf eine vom Treiber zugewiesene Struktur, die die angeforderte Schnittstelle empfängt. Diese Struktur wird durch den Treiber definiert, der die angeforderte Schnittstelle exportiert, und muss mit einer INTERFACE-Struktur beginnen.

[in] Size

Die Größe der vom Treiber zugewiesenen Struktur in Bytes, die die angeforderte Schnittstelle darstellt.

[in] Version

Die Versionsnummer der angeforderten Schnittstelle. Das Format dieses Werts wird durch den Treiber definiert, der die angeforderte Schnittstelle exportiert.

[in, optional] InterfaceSpecificData

Zusätzliche schnittstellenspezifische Informationen. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt die Methode STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Das Geräteobjekt ist ungültig, oder wenn der Device-, InterfaceType- oder Interface-ParameterNULL ist.
STATUS_INSUFFICIENT_RESOURCES
Das Framework konnte keine Anforderung zuordnen, die an einen anderen Treiber gesendet werden sollte.
 

Die Methode kann auch andere NTSTATUS-Werte zurückgeben.

Eine Systemfehlerprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Ihr Treiber kann WdfFdoQueryForInterface aufrufen, um Zugriff auf eine vom Treiber definierte Schnittstelle zu erhalten, die von einem Treiber erstellt wurde, der sich im selben Treiberstapel befindet, in dem sich Ihr Treiber befindet. Um auf eine vom Treiber definierte Schnittstelle zuzugreifen, die von einem Treiber erstellt wurde, der sich in einem anderen Treiberstapel befindet, muss Ihr Treiber WdfIoTargetQueryForInterface aufrufen.

Frameworkbasierte Treiber definieren Schnittstellen, indem sie WdfDeviceAddQueryInterface aufrufen.

Weitere Informationen zu WdfFdoQueryForInterface finden Sie unter Verwenden Driver-Defined Schnittstellen.

Beispiele

Das folgende Codebeispiel stammt aus dem Toaster-Beispielfunktionstreiber. In diesem Beispiel wird Zugriff auf eine Schnittstelle abgerufen, die vom Toaster-Beispielbustreiber definiert wird.

status = WdfFdoQueryForInterface(
                                 Device,
                                 &GUID_TOASTER_INTERFACE_STANDARD,
                                 (PINTERFACE) &fdoData->BusInterface, // Object context space
                                 sizeof(TOASTER_INTERFACE_STANDARD),
                                 1,
                                 NULL
                                 );

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
Kopfzeile wdffdo.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionierung der Frameworkbibliothek.)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

WdfIoTargetQueryForInterface