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