Condividi tramite


Metodo IWDFIoRequest2::GetStatus (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 GetStatus restituisce lo stato di una richiesta di I/O.

Sintassi

HRESULT GetStatus();

Valore restituito

GetStatus restituisce un valore di stato tipizzato HRESULT. Questo valore indica lo stato corrente della richiesta di I/O rappresentata dall'interfaccia IWDFIoRequest2.

Osservazioni

Un driver può chiamare GetStatus dopo aver chiamato IWDFIoRequest::Send per inviare una richiesta di I/O a una destinazione di I/O.

  • Se la chiamata di un driver a Invia ha esito positivo, GetStatus restituisce il valore di stato impostato dal driver che completa la richiesta specificata.

    Se il driver specifica WDF_REQUEST_SEND_OPTION_SYNCHRONOUS per una richiesta quando chiama Invia, il driver può chiamare GetStatus (o IWDFIoRequest::GetCompletionParams) immediatamente dopo aver chiamato Send.

    Se il driver non specifica WDF_REQUEST_SEND_OPTION_SYNCHRONOUS quando chiama Invia, il driver chiama in genere GetStatus (o IWDFIoRequest::GetCompletionParams) da un IRequestCallbackRequestCompletion::OnCompletion funzione di callback.

  • Se la chiamata di un driver a Invia ha esito negativo, Invia restituisce un valore di stato impostato dal framework per descrivere l'errore. Il driver può chiamare GetStatus (ma nonIWDFIoRequest::GetCompletionParams) per ottenere lo stato corrente della richiesta, ma in questo caso GetStatus restituisce lo stesso codice di errore restituito Invia.
Per altre informazioni sul completamento della richiesta, vedere Completamento delle richieste di I/O.

Esempi

Nell'esempio di codice seguente viene inviata una richiesta di I/O a una destinazione di I/O. Se la chiamata a Send ha esito positivo, l'esempio ottiene l'interfaccia IWDFIoRequest2, chiama GetStatus per ottenere il valore di stato della richiesta e quindi chiama IWDFIoRequest::CompleteWithInformation per completare la richiesta di I/O.

HRESULT hrSend = S_OK;
...
hrSend = fxRequest->Send(m_pIoTarget,
                         WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
                         0);
if (SUCCEEDED(hrSend))
{
    //
    // If send succeeded, complete the request and specify 
    // the current status value.
    //
    CComQIPtr<IWDFIoRequest2> fxRequest2 = fxRequest;
    hrSend = fxRequest2->GetStatus();
    fxRequest->CompleteWithInformation(hrSend, 0);
}
...

Fabbisogno

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

Vedere anche

IRequestCallbackRequestCompletion::OnCompletion

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send