Funzione WdfIoTargetStart (wdfiotarget.h)
[Si applica a KMDF e UMDF]
Il metodo WdfIoTargetStart avvia l'invio di richieste in coda a una destinazione di I/O locale o remota.
Sintassi
NTSTATUS WdfIoTargetStart(
[in] WDFIOTARGET IoTarget
);
Parametri
[in] IoTarget
Handle a 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 I/O specializzata.
Valore restituito
WdfIoTargetStart restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questo metodo potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Il dispositivo è stato rimosso. |
Questo metodo potrebbe restituire anche altri valori NTSTATUS.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Se il driver può rilevare gli errori ripristinabili del dispositivo, è possibile che il driver chiami WdfIoTargetStop per arrestare temporaneamente l'invio delle richieste, quindi chiamare in seguito WdfIoTargetStart per riprendere l'invio delle richieste.
Inoltre, se un driver chiama WdfUsbTargetPipeConfigContinuousReader per configurare un lettore continuo per una pipe USB, la funzione di callback EvtDeviceD0Entry del driver deve chiamare WdfIoTargetStart per avviare il lettore.
Il driver deve chiamare WdfIoTargetStart e WdfIoTargetStop in modo sincrono. Dopo che il driver chiama una di queste funzioni, non deve chiamare l'altra funzione prima che venga restituita la prima.
Per altre informazioni su WdfIoTargetStart, vedere Controllo dello stato di una destinazione di I/O generale.
Per altre informazioni sulle destinazioni di I/O, vedere Uso delle destinazioni di I/O.
Esempio
Nell'esempio di codice seguente viene illustrato come una funzione di callback EvtDeviceD0Entry può chiamare WdfIoTargetStart, se il driver usa un lettore continuo per una pipe USB.
NTSTATUS
MyEvtDeviceD0Entry(
IN WDFDEVICE Device,
IN WDF_POWER_DEVICE_STATE PreviousState
)
{
PDEVICE_CONTEXT pDeviceContext;
NTSTATUS status;
pDeviceContext = GetMyDeviceContext(Device);
status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(pDeviceContext->InterruptPipe));
return status;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfiotarget.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), FailD0EntryIoTargetState(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |