Funzione WdfRequestGetStatus (wdfrequest.h)
[Si applica a KMDF e UMDF]
Il metodo WdfRequestGetStatus restituisce lo stato di una richiesta di I/O.
Sintassi
NTSTATUS WdfRequestGetStatus(
[in] WDFREQUEST Request
);
Parametri
[in] Request
Handle per un oggetto richiesta del framework.
Valore restituito
WdfRequestGetStatus restituisce un valore NTSTATUS. Per altre informazioni sul valore che può essere restituito, vedere la sezione Osservazioni seguente.
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Commenti
Il metodo WdfRequestGetStatus restituisce uno dei seguenti elementi:
- Se la chiamata di un driver a WdfRequestSend ha esito positivo, WdfRequestGetStatus restituisce il valore di stato impostato dal driver che chiama WdfRequestComplete per completare la richiesta specificata. Il driver chiama in genere WdfRequestGetStatus dall'interno di una funzione di callback CompletionRoutine .
- Se la chiamata di un driver a WdfRequestSend ha esito negativo, WdfRequestGetStatus restituisce un valore di stato impostato dal framework per descrivere l'errore. Il driver può chiamare WdfRequestGetStatus immediatamente dopo aver chiamato WdfRequestSend.
Per altre informazioni sul completamento della richiesta, vedere Completamento delle richieste di I/O.
Esempio
L'esempio di codice seguente è tratto dal driver di esempio KbFiltr . In questo esempio viene inviata una richiesta di I/O a una destinazione di I/O. Se WdfRequestSend ha esito negativo, nell'esempio viene usato il valore restituito WdfRequestGetStatus come input per WdfRequestComplete.
VOID
KbFilter_ForwardRequest(
IN WDFREQUEST Request,
IN WDFIOTARGET Target
)
{
WDF_REQUEST_SEND_OPTIONS options;
BOOLEAN ret;
NTSTATUS status;
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend(
Request,
Target,
&options
);
if (ret == FALSE) {
status = WdfRequestGetStatus (Request);
DebugPrint(("WdfRequestSend failed: 0x%x\n", status));
WdfRequestComplete(
Request,
status
);
}
return;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfrequest.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestGetStatusValid(kmdf) |