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 |
---|---|
|
Das Geräteobjekt ist ungültig, oder wenn der Device-, InterfaceType- oder Interface-ParameterNULL ist. |
|
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) |