Timer di manutenzione

NDIS chiama la funzione NetTimerCallback quando viene attivato un timer NDIS 6.0. Il parametro FunctionContext di questa funzione contiene un puntatore a un'area di contesto fornita dal driver. Il valore predefinito per FunctionContext viene specificato in una struttura NDIS_TIMER_CHARACTERISTICS . Il driver ha passato la struttura alla funzione NdisAllocateTimerObject per allocare e inizializzare l'oggetto timer associato.

Se il driver ha specificato un valore non NULL nel parametro FunctionContext passato alla funzione NdisSetTimerObject , NDIS passa tale valore al parametro FunctionContext della funzione NetTimerCallback . In caso contrario, NDIS passa il valore predefinito specificato nella struttura NDIS_TIMER_CHARACTERISTICS.

Qualsiasi driver NDIS può avere più di una funzione NetTimerCallback . Ogni funzione NetTimerCallback deve essere associata a un oggetto timer allocato e inizializzato con driver diverso.

Una chiamata alla funzione NdisSetTimerObject causa l'esecuzione della funzione NetTimerCallback associata all'oggetto timer dopo un intervallo specificato o periodicamente.

Per arrestare le chiamate a una funzione NetTimerCallback , chiamare la funzione NdisCancelTimerObject . NDIS potrebbe comunque chiamare NetTimerCallback se il timeout è già scaduto prima della chiamata a NdisCancelTimerObject.

Se una funzione NetTimerCallback condivide le risorse con altre funzioni driver, il driver deve sincronizzare l'accesso a tali risorse con un blocco di spin.