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.
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) |