Freigeben über


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
);

Die Parameter

[in] Fdo

Ein Handle zu einem 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 vom Treiber definiert, der die angeforderte Schnittstelle exportiert und mit einer INTERFACE Struktur beginnen muss.

[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 vom Treiber definiert, der die angeforderte Schnittstelle exportiert.

[in, optional] InterfaceSpecificData

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

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 parameter Device, InterfaceTypeoder Interface Parameter NULList.
STATUS_INSUFFICIENT_RESOURCES
Das Framework konnte keine Anforderung zum Senden an einen anderen Treiber zuordnen.
 

Die Methode kann auch andere NTSTATUS-Wertezurückgeben.

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

Bemerkungen

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

Frameworkbasierte Treiber definieren Schnittstellen durch Aufrufen von WdfDeviceAddQueryInterface.

Weitere Informationen zu WdfFdoQueryForInterface-finden Sie unter Using Driver-Defined Interfaces.

Beispiele

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

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

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Kopfzeile wdffdo.h (include Wdf.h)
Bibliothek Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

WdfIoTargetQueryForInterface-