Función WdfRequestGetStatus (wdfrequest.h)
[Se aplica a KMDF y UMDF]
El método WdfRequestGetStatus devuelve el estado de una solicitud de E/S.
Sintaxis
NTSTATUS WdfRequestGetStatus(
[in] WDFREQUEST Request
);
Parámetros
[in] Request
Identificador de un objeto de solicitud de marco.
Valor devuelto
WdfRequestGetStatus devuelve un valor NTSTATUS. Para obtener más información sobre qué valor se puede devolver, vea la siguiente sección Comentarios.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
El método WdfRequestGetStatus devuelve uno de los siguientes:
- Si la llamada de un controlador a WdfRequestSend se realiza correctamente, WdfRequestGetStatus devuelve el valor de estado establecido por el controlador que llama a WdfRequestComplete para completar la solicitud especificada. Normalmente, el controlador llama a WdfRequestGetStatus desde una función de devolución de llamada CompletionRoutine .
- Si se produce un error en la llamada de un controlador a WdfRequestSend , WdfRequestGetStatus devuelve un valor de estado que el marco ha establecido para describir el error. El controlador puede llamar a WdfRequestGetStatus inmediatamente después de llamar a WdfRequestSend.
Para obtener más información sobre la finalización de solicitudes, consulte Finalización de solicitudes de E/S.
Ejemplos
El ejemplo de código siguiente es del controlador de ejemplo KbFiltr . En este ejemplo se envía una solicitud de E/S a un destino de E/S. Si se produce un error en WdfRequestSend , en el ejemplo se usa el valor devuelto WdfRequestGetStatus como entrada para 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;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfrequest.h (incluya Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestGetStatusValid(kmdf) |