Freigeben über


WdfIoTargetWdmGetDeviceObject-Funktion (wdfiotarget.h)

[Gilt nur für KMDF]

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

Syntax

PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
  [in] WDFIOTARGET IoTarget
);

Die Parameter

[in] IoTarget

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

Rückgabewert

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

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

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 vor dem Schließen des Remote-E/A-Ziels gelöscht wird, ist der Zeiger gültig, bis die EvtCleanupCallback-Funktion zurückgegeben wird.

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

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

Weitere Informationen zu E/A-Zielen finden Sie unter Using I/O Targets.

Hinweis

Das Framework verwendet keinen Verweis auf das Zielgerätobjekt, bevor es an den Treiber zurückgegeben wird. Der Aufrufer muss ihn erst ableiten, wenn er explizit einen Verweis hinzufügt.

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
Minimale KMDF-Version 1,0
Kopfzeile wdfiotarget.h (include Wdf.h)
Bibliothek Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch