WdfIoTargetQueryForInterface-Funktion (wdfiotarget.h)
[Gilt nur für KMDF]
Die WdfIoTargetQueryForInterface-Methode erhält Zugriff auf die GUID-identifizierte, treiberdefinierte Schnittstelle eines Remote-E/A-Ziels.
Syntax
NTSTATUS WdfIoTargetQueryForInterface(
[in] WDFIOTARGET IoTarget,
[in] LPCGUID InterfaceType,
[out] PINTERFACE Interface,
[in] USHORT Size,
[in] USHORT Version,
[in, optional] PVOID InterfaceSpecificData
);
Parameter
[in] IoTarget
Ein Handle für ein Remote-E/A-Zielobjekt, das von einem vorherigen Aufruf von WdfIoTargetCreate abgerufen wurde.
[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, auf die Interface verweist.
[in] Version
Die Versionsnummer der angeforderten Schnittstelle. Der Treiber, der die angeforderte Schnittstelle exportiert, definiert das Format dieses Werts.
[in, optional] InterfaceSpecificData
Zusätzliche schnittstellenspezifische Informationen. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
WdfIoTargetQueryForInterface gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Der IoTarget-, InterfaceType- oder Interface-Parameter ist NULL. |
|
Das Framework konnte keine Anforderung zuordnen, die an einen anderen Treiber gesendet werden soll. |
Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Hinweise
Ihr Treiber kann WdfIoTargetQueryForInterface aufrufen, um Zugriff auf eine treiberdefinierte Schnittstelle zu erhalten, die von einem Treiber in einem anderen Treiberstapel erstellt wurde. Um auf eine treiberdefinierte Schnittstelle zuzugreifen, die von einem Treiber erstellt wurde, der sich im selben Treiberstapel wie Ihr Treiber befindet, muss Ihr Treiber WdfFdoQueryForInterface aufrufen.
Frameworkbasierte Treiber definieren Schnittstellen, indem sie WdfDeviceAddQueryInterface aufrufen. Weitere Informationen zu treiberdefinierte Schnittstellen finden Sie unter Verwenden Driver-Defined Schnittstellen.
Beispiele
Im folgenden Codebeispiel wird versucht, Zugriff auf die Schnittstelle eines angegebenen Remote-E/A-Ziels zu erhalten. GUID_RAWPDO_INTERFACE_STANDARD ist die GUID, die die Schnittstelle identifiziert.
NTSTATUS status;
RAWPDO_INTERFACE_STANDARD busInterface;
status = WdfIoTargetQueryForInterface(
IoTarget,
&GUID_RAWPDO_INTERFACE_STANDARD,
(PINTERFACE) &busInterface,
sizeof(RAWPDO_INTERFACE_STANDARD),
1,
NULL
);
if (!NT_SUCCESS (status)){
return status;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfiotarget.h (include Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).) |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |