Función NdisSetTimerObject (ndis.h)

La función NdisSetTimerObject establece un objeto de temporizador que se activará después de un intervalo especificado o periódicamente.

Sintaxis

BOOLEAN NdisSetTimerObject(
  [in]           NDIS_HANDLE   TimerObject,
  [in]           LARGE_INTEGER DueTime,
  [in, optional] LONG          MillisecondsPeriod,
  [in, optional] PVOID         FunctionContext
);

Parámetros

[in] TimerObject

Identificador de un objeto de temporizador que proporciona NDIS cuando un controlador llama al Función NdisAllocateTimerObject .

[in] DueTime

Hora absoluta o relativa en la que el temporizador va a expirar. Si el valor del parámetro DueTime es negativo, la hora de expiración es relativa a la hora actual del sistema. De lo contrario, la hora de expiración es absoluta. La hora de expiración se expresa en unidades de tiempo del sistema (intervalos de 100 nanosegundos). Los tiempos de expiración absolutos realizan un seguimiento de los cambios en la hora del sistema; Los tiempos de expiración relativos no se ven afectados por los cambios de hora del sistema.

[in, optional] MillisecondsPeriod

Intervalo de tiempo periódico, en milisegundos, que transcurre entre cada vez que se activa el temporizador y la siguiente llamada a la función NetTimerCallback , a menos que se cancele el temporizador. El valor de este parámetro debe ser menor o igual que MAXLONG.

[in, optional] FunctionContext

Puntero a un área de contexto proporcionada por el autor de la llamada que NDIS pasa a la función NetTimerCallback asociada cuando se activa un temporizador. Si este parámetro es NULL, NDIS usa el valor predeterminado especificado en . NDIS_TIMER_CHARACTERISTICS estructura.

Valor devuelto

NdisSetTimerObject devuelve TRUE si el objeto del temporizador ya estaba en la cola del temporizador del sistema; de lo contrario, devuelve FALSE.

Comentarios

Después de que un controlador llame a NdisSetTimerObject, el objeto de temporizador se pone en cola hasta que expire el intervalo especificado en el parámetro DueTime . Una vez expirado el intervalo, el objeto de temporizador se desquea y la función NetTimerCallback proporcionada por el autor de la llamada se ejecuta una vez en IRQL = DISPATCH_LEVEL tan pronto como un procesador esté disponible.

Si se especifica un valor distinto de cero en el parámetro MillisecondsPeriod , el objeto de temporizador se pone en cola de nuevo hasta que expire el intervalo especificado en MilisecondsPeriod . Una vez expirado este intervalo, el objeto de temporizador se vuelve a poner en cola y la función NetTimerCallback proporcionada por el autor de la llamada se ejecuta una vez en IRQL = DISPATCH_LEVEL tan pronto como un procesador esté disponible.

Nota A partir de Windows 7, puedes reducir el consumo de energía llamando a NdisSetCoalescableTimerObject en lugar de NdisSetTimerObject si no se requiere precisión exacta del temporizador.
 
Para obtener más información sobre el comportamiento del temporizador, vea KeSetTimerEx.

Para cancelar un temporizador, llame a la función NdisCancelTimerObject .

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Timer_Function(ndis), PeriodicTimer(ndis)

Consulte también

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback