Condividi tramite


Metodo IWDFIoTargetStateManagement::Stop (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedi Introduzione a UMDF.]

Il metodo Stop interrompe l'invio di richieste in coda a una destinazione di I/O locale.

Sintassi

HRESULT Stop(
  [in] WDF_IO_TARGET_SENT_IO_ACTION Action
);

Parametri

[in] Action

Valore WDF_IO_TARGET_SENT_IO_ACTION-typed che identifica come gestire l'I/O inviato quando l'oggetto di destinazione di I/O viene arrestato.

Valore restituito

Stop restituisce sempre S_OK.

Osservazioni

Se il driver può rilevare errori di dispositivo ripristinabili, è possibile che il driver chiami Interrompi di interrompere temporaneamente l'invio di richieste alla destinazione di I/O locale, quindi chiamare successivamente IWDFIoTargetStateManagement::Start per riprendere l'invio delle richieste.

Inoltre, se un driver chiama IWDFUsbTargetPipe2::ConfigureContinuousReader per configurare un lettore continuo per una pipe USB, il driver IPnpCallback::OnD0Exit funzione di callback deve chiamare Stop per arrestare il lettore.

Se un driver ha chiamato Arresta, può comunque inviare una richiesta alla destinazione impostando il flag WDF_REQUEST_OPTION_IGNORE_TARGET_STATE quando chiama IWDFIoRequest::Send. Se un driver imposta questo flag, il driver può inviare una richiesta, ad esempio una richiesta di reimpostare una pipe USB (vedere IWDFUsbTargetPipe::Reset), a un dispositivo dopo che il driver ha chiamato Arresta.

Il driver deve chiamare IWDFIoTargetStateManagement::Start e Stop in modo sincrono. Dopo che il driver chiama una di queste funzioni, non deve chiamare una delle due funzioni prima che venga restituita la prima chiamata.

Il driver può chiamare Stop più volte senza chiamare IWDFIoTargetStateManagement::Start. Ad esempio, il driver potrebbe eseguire le operazioni seguenti:

  1. Chiamare Arresta e specificare un valore azione diWdfIoTargetLeaveSentIoPending.
  2. Determinare se la destinazione deve riprendere l'elaborazione delle richieste di I/O.
  3. Se la destinazione deve riprendere, chiamare IWDFIoTargetStateManagement::Start. In caso contrario, chiamare di nuovo Arresta con un valore azione di WdfIoTargetCancelSentIo.
Per altre informazioni su Stop, vedere Controlling a General I/O Target's State.

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

Esempi

L'esempio di codice seguente illustra come una funzione di callback IPnpCallback::OnD0Exit può chiamare Stop, se il driver usa un lettore continuo per una pipe USB. Per informazioni su come ottenere l'interfaccia IWDFIoTargetStateManagement, vedere l'esempio di codice in IWDFIoTargetStateManagement::Start.

HRESULT
CMyDevice::OnD0Exit(
    __in IWDFDevice*  pWdfDevice,
    __in WDF_POWER_DEVICE_STATE  previousState
    )
{
    HRESULT hr;
    hr = m_pIoTargetInterruptPipeStateMgmt->Stop(WdfIoTargetCancelSentIo);
    return hr;
}

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.5
intestazione wudfddi.h (include Wudfddi.h)
dll WUDFx.dll

Vedere anche

IWDFIoTargetStateManagement

IWDFRemoteTarget::Stop