Compartilhar via


Função NdisSetTimerObject (ndis.h)

A função NdisSetTimerObject define um objeto de temporizador a ser acionado após um intervalo especificado ou periodicamente.

Sintaxe

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

Parâmetros

[in] TimerObject

Um identificador para um objeto de temporizador que o NDIS fornece quando um driver chama o Função NdisAllocateTimerObject .

[in] DueTime

O tempo absoluto ou relativo em que o temporizador deve expirar. Se o valor do parâmetro DueTime for negativo, o tempo de expiração será relativo à hora atual do sistema. Caso contrário, o tempo de expiração será absoluto. O tempo de expiração é expresso em unidades de tempo do sistema (intervalos de 100 nanossegundos). Os tempos de expiração absolutos acompanham as alterações na hora do sistema; os tempos de expiração relativos não são afetados pelas alterações de tempo do sistema.

[in, optional] MillisecondsPeriod

O intervalo de tempo periódico, em milissegundos, decorrido entre cada vez que o temporizador é acionado e a próxima chamada para a função NetTimerCallback , a menos que o temporizador seja cancelado. O valor desse parâmetro deve ser menor ou igual a MAXLONG.

[in, optional] FunctionContext

Um ponteiro para uma área de contexto fornecida pelo chamador que o NDIS passa para a função NetTimerCallback associada quando um temporizador é acionado. Se esse parâmetro for NULL, o NDIS usará o valor padrão especificado no NDIS_TIMER_CHARACTERISTICS estrutura.

Retornar valor

NdisSetTimerObject retornará TRUE se o objeto de temporizador já estivesse na fila do temporizador do sistema; caso contrário, retornará FALSE.

Comentários

Depois que um driver chama NdisSetTimerObject, o objeto timer é enfileirado até que o intervalo especificado no parâmetro DueTime expire. Depois que o intervalo expira, o objeto timer é desemqueuado e a função NetTimerCallback fornecida pelo chamador é executada uma vez em IRQL = DISPATCH_LEVEL assim que um processador fica disponível.

Se um valor diferente de zero for especificado no parâmetro MillisecondsPeriod , o objeto timer será enfileirado novamente até que o intervalo especificado em MillisecondsPeriod expire. Depois que esse intervalo expira, o objeto timer é requeuado e a função NetTimerCallback fornecida pelo chamador é executada uma vez em IRQL = DISPATCH_LEVEL assim que um processador fica disponível.

Nota A partir do Windows 7, você pode reduzir o consumo de energia chamando NdisSetCoalescableTimerObject em vez de NdisSetTimerObject se a precisão exata do temporizador não for necessária.
 
Para obter mais informações sobre o comportamento do temporizador, consulte KeSetTimerEx.

Para cancelar um temporizador, chame a função NdisCancelTimerObject .

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI Irql_Timer_Function(ndis), PeriodicTimer(ndis)

Confira também

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback