Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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 |
|---|---|
|
Das Geräteobjekt ist ungültig oder wenn der parameter Device, InterfaceTypeoder Interface Parameter NULList. |
|
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) |