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. Nessuna nuova funzionalità viene aggiunta 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, vedere Introduzione con UMDF.]
Il metodo Stop arresta 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 tipizzato che identifica come gestire l'I/O inviato quando l'oggetto di destinazione I/O viene arrestato.
Valore restituito
Arresta sempre restituisce S_OK.
Commenti
Se il driver può rilevare gli errori ripristinabili del dispositivo, è possibile che il driver chiami Stop per arrestare temporaneamente l'invio delle richieste alla destinazione I/O locale, quindi chiamare IWDFIoTargetStateManagement::Start per riprendere l'invio di richieste.
Inoltre, se un driver chiama IWDFUsbTargetPipe2::ConfigureContinuousReader per configurare un lettore continuo per una pipe USB, la funzione di callback IPnpCallback::OnD0Exit deve chiamare Stop per arrestare il lettore.
Se un driver ha chiamato Stop, può comunque inviare una richiesta alla destinazione impostando il flag di 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 per reimpostare una pipe USB (vedere IWDFUsbTargetPipe::Reset), su un dispositivo dopo che il driver ha chiamato Stop.
Il driver deve chiamare IWDFIoTargetStateManagement::Start e Arresta in modo sincrono. Dopo che il driver chiama una di queste funzioni, non deve chiamare nessuna funzione prima che la prima chiamata restituisca.
Il driver può chiamare Stop più volte senza chiamare IWDFIoTargetStateManagement::Start. Ad esempio, il driver potrebbe eseguire le operazioni seguenti:
- Chiamare Stop e specificare un valore azione di WdfIoTargetLeaveSentIoPending.
- Determinare se la destinazione deve riprendere l'elaborazione delle richieste di I/O.
- Se la destinazione deve riprendere, chiamare IWDFIoTargetStateManagement::Start. In caso contrario, chiamare di nuovo Stop con un valore Action di WdfIoTargetCancelSentIo.
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 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;
}
Requisiti
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Versione UMDF minima | 1.5 |
Intestazione | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |