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) |