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.
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
IWDFIoRequest::CompleteWithInformation