Compartir a través de


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
STATUS_INVALID_PARAMETER
Un parámetro de entrada no es válido.
STATUS_INSUFFICIENT_RESOURCES
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)

Consulte también

WDF_ABS_TIMEOUT_IN_SEC

WDF_REQUEST_SEND_OPTIONS_INIT

WdfRequestSend