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 de 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 ao tempo 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.

Valor de retorno

NdisSetTimerObject retornará verdadeiro se o objeto do temporizador já estiver na fila do temporizador do sistema; caso contrário, ele retornará FALSE .

Observações

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

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

Observação Começando com o 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
de cliente com suporte mínimo Com suporte no NDIS 6.0 e posterior.
da 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)

Consulte também

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback