Freigeben über


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
STATUS_INVALID_PARAMETER
Der IoTarget-, InterfaceType- oder Interface-Parameter ist NULL.
STATUS_INSUFFICIENT_RESOURCES
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)

Weitere Informationen

SCHNITTSTELLE

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate