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 info, vedi Introduzione con 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 .

Commenti

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 Send 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 Send, il driver può chiamare GetStatus (o IWDFIoRequest::GetCompletionParams) immediatamente dopo la chiamata a Send.

    Se il driver non specifica WDF_REQUEST_SEND_OPTION_SYNCHRONOUS quando chiama Send, il driver chiama in genere GetStatus (o IWDFIoRequest::GetCompletionParams) dall'interno di una funzione di callback IRequestCallbackRequestCompletion::OnCompletion .

  • Se la chiamata di un driver a Send ha esito negativo, Send 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 da Send .
Per altre informazioni sul completamento della richiesta, vedere Completamento delle richieste di I/O.

Esempio

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);
}
...

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1,9
Intestazione wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Vedi anche

IRequestCallbackRequestCompletion::OnCompletion

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send