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