Condividi tramite


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

Vedi anche

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader