WdfIoTargetWdmGetTargetDeviceObject-Funktion (wdfiotarget.h)

[Gilt nur für KMDF]

Die WdfIoTargetWdmGetTargetDeviceObject-Methode gibt einen Zeiger auf das WDM-Geräteobjekt (Windows Driver Model) zurück, das einem angegebenen lokalen oder Remote-E/A-Ziel zugeordnet ist.

Syntax

PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
  [in] WDFIOTARGET IoTarget
);

Parameter

[in] IoTarget

Ein Handle für ein lokales oder Remote-E/A-Zielobjekt, das aus einem vorherigen Aufruf von WdfDeviceGetIoTarget oder WdfIoTargetCreate oder von einer Methode abgerufen wurde, die von einem spezialisierten E/A-Ziel bereitgestellt wird.

Rückgabewert

WdfIoTargetWdmGetTargetDeviceObject gibt einen Zeiger auf eine WDM-DEVICE_OBJECT-Struktur zurück.

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

Hinweise

Die meisten frameworkbasierten Treiber müssen nicht auf das WDM-Geräteobjekt eines E/A-Ziels zugreifen.

Der Zeiger, den die WdfIoTargetWdmGetTargetDeviceObject-Methode zurückgibt, ist gültig, bis der Treiber WdfIoTargetClose oder WdfIoTargetCloseForQueryRemove aufruft oder bis das Remote-E/A-Zielobjekt gelöscht wird. Wenn der Treiber eine EvtCleanupCallback-Funktion für das Remote-E/A-Zielobjekt bereitstellt und das Objekt gelöscht wird, bevor das E/A-Remoteziel geschlossen wird, ist der Zeiger gültig, bis die EvtCleanupCallback-Funktion zurückgegeben wird.

Wenn der Treiber versucht, auf das WDM-Geräteobjekt zuzugreifen, nachdem es entfernt wurde, kann der Treiber dazu führen, dass das System abstürzt. Das Toastmonbeispiel veranschaulicht, wie der Treiber eine EvtIoTargetQueryRemove-Rückruffunktion bereitstellen kann, sodass sie benachrichtigt wird, wenn das E/A-Ziel entfernt wird.

Weitere Informationen zu WdfIoTargetWdmGetTargetDeviceObject finden Sie unter Abrufen von Informationen zu einem allgemeinen E/A-Ziel.

Weitere Informationen zu E/A-Zielen finden Sie unter Verwenden von E/A-Zielen.

Beispiele

Im folgenden Codebeispiel wird die WDM-DEVICE_OBJECT-Struktur eines E/A-Ziels überprüft, um sicherzustellen, dass das Ziel direkte E/A-Vorgänge unterstützt.

if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
 & DO_DIRECT_IO)) {
    ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
    return STATUS_INVALID_DEVICE_REQUEST;
}

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
Kopfzeile wdfiotarget.h (include Wdf.h)
Bibliothek Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject