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 puede devolver otros valores de NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Observaciones
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 | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfrequest.h (incluya Wdf.h) |
biblioteca de | 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) |