Función WdfRequestAllocateTimer (wdfrequest.h)
[Se aplica a KMDF y UMDF]
El método WdfRequestAllocateTimer asigna un temporizador para una solicitud de E/S especificada.
Sintaxis
NTSTATUS WdfRequestAllocateTimer(
[in] WDFREQUEST Request
);
Parámetros
[in] Request
Identificador de un objeto de solicitud de marco.
Valor devuelto
WdfRequestAllocateTimer devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
Un parámetro de entrada no es válido. |
|
No se pudo asignar un temporizador. |
Este método también podría devolver otros valores NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Si el controlador especifica un valor de tiempo de espera al llamar a WdfRequestSend, debe llamar a WdfRequestAllocateTimer antes de llamar a WdfRequestSend. Esto garantiza que la llamada a WdfRequestSend no producirá un error si no hay recursos del sistema suficientes para asignar un temporizador.
Si ya se ha asignado un temporizador para la solicitud especificada, WdfRequestAllocateTimer devuelve STATUS_SUCCESS.
Ejemplos
En el ejemplo de código siguiente se inicializa una estructura de WDF_REQUEST_SEND_OPTIONS , se asigna un objeto de temporizador para la solicitud de E/S y, a continuación, se llama a WdfRequestSend.
NTSTATUS status;
WDF_REQUEST_SEND_OPTIONS options;
BOOLEAN requestSend;
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_TIMEOUT
);
WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(
&options,
WDF_ABS_TIMEOUT_IN_SEC(TIME_OUT_VALUE)
);
status = WdfRequestAllocateTimer(
request
);
if (!NT_SUCCESS(status)){
return status;
...
requestSend = WdfRequestSend(
request,
ioTarget,
&options
);
}
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 (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |