Temporizadores de Manutenção
O NDIS chama a função NetTimerCallback quando um temporizador NDIS 6.0 é acionado. O parâmetro FunctionContext dessa função contém um ponteiro para uma área de contexto fornecida pelo driver. O valor padrão de FunctionContext é especificado em uma estrutura NDIS_TIMER_CHARACTERISTICS . O driver passou a estrutura para a função NdisAllocateTimerObject para alocar e inicializar o objeto de temporizador associado.
Se o driver especificou um valor não NULL no parâmetro FunctionContext que é passado para a função NdisSetTimerObject , o NDIS passa esse valor para o parâmetro FunctionContext da função NetTimerCallback . Caso contrário, o NDIS passa o valor padrão especificado na estrutura NDIS_TIMER_CHARACTERISTICS.
Qualquer driver NDIS pode ter mais de uma função NetTimerCallback . Cada função NetTimerCallback deve ser associada a um objeto de temporizador alocado e inicializado por driver diferente.
Uma chamada para a função NdisSetTimerObject faz com que a função NetTimerCallback associada ao objeto de temporizador seja executada após um intervalo especificado ou periodicamente.
Para interromper chamadas para uma função NetTimerCallback , chame a função NdisCancelTimerObject . O NDIS ainda poderá chamar NetTimerCallback se o tempo limite já tiver expirado antes da chamada para NdisCancelTimerObject.
Se uma função NetTimerCallback compartilhar recursos com outras funções de driver, o driver deverá sincronizar o acesso a esses recursos com um bloqueio de rotação.