Condividi tramite


Funzione WdfIoTargetWdmGetTargetDeviceObject (wdfiotarget.h)

[Si applica solo a KMDF]

Il metodo WdfIoTargetWdmGetTargetDeviceObject restituisce un puntatore all'oggetto dispositivo Windows Driver Model (WDM) associato a una destinazione di I/O locale o remota specificata.

Sintassi

PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
  [in] WDFIOTARGET IoTarget
);

Parametri

[in] IoTarget

Handle per un oggetto di destinazione I/O locale o remoto ottenuto da una chiamata precedente a WdfDeviceGetIoTarget o WdfIoTargetCreate o da un metodo fornito da una destinazione di I/O specializzata.

Valore restituito

WdfIoTargetWdmGetTargetDeviceObject restituisce un puntatore a una struttura di DEVICE_OBJECT WDM.

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Commenti

La maggior parte dei driver basati su framework non deve accedere all'oggetto dispositivo WDM di una destinazione I/O.

Il puntatore restituito dal metodo WdfIoTargetWdmGetTargetDeviceObject è valido fino a quando il driver chiama WdfIoTargetClose o WdfIoTargetCloseForQueryRemove o finché l'oggetto di destinazione I/O remoto non viene eliminato. Se il driver fornisce una funzione EvtCleanupCallback per l'oggetto di destinazione I/O remoto e se l'oggetto viene eliminato prima della chiusura della destinazione di I/O remota, il puntatore è valido fino a quando non viene restituita la funzione EvtCleanupCallback .

Se il driver tenta di accedere all'oggetto dispositivo WDM dopo che è stato rimosso, il driver può causare l'arresto anomalo del sistema. L'esempio toastmon illustra come il driver può fornire una funzione di callback EvtIoTargetQueryRemove in modo che venga notificata se la destinazione di I/O viene rimossa.

Per altre informazioni su WdfIoTargetWdmGetTargetDeviceObject, vedere Ottenere informazioni su una destinazione di I/O generale.

Per altre informazioni sulle destinazioni di I/O, vedere Uso delle destinazioni di I/O.

Esempio

L'esempio di codice seguente controlla la struttura wd wd DEVICE_OBJECT m di una destinazione I/O per verificare che la destinazione supporti operazioni di I/O dirette.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Intestazione wdfiotarget.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL <=DISPATCH_LEVEL
Regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedi anche

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject