Condividi tramite


Funzione NdisSetTimerObject (ndis.h)

La funzione NdisSetTimerObject imposta un oggetto timer da attivare dopo un intervallo specificato o periodicamente.

Sintassi

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

Parametri

[in] TimerObject

Handle per un oggetto timer fornito da NDIS quando un driver chiama funzione NdisAllocateTimerObject.

[in] DueTime

Ora assoluta o relativa in cui il timer deve scadere. Se il valore del parametro DueTime è negativo, l'ora di scadenza è relativa all'ora di sistema corrente. In caso contrario, l'ora di scadenza è assoluta. L'ora di scadenza è espressa in unità di tempo di sistema (intervalli di 100 nanosecondi). I tempi di scadenza assoluti tengono traccia delle modifiche apportate all'ora di sistema; le ore di scadenza relative non sono interessate dalle modifiche all'ora di sistema.

[in, optional] MillisecondsPeriod

Intervallo di tempo periodico, in millisecondi, trascorso tra ogni volta che il timer viene attivato e la chiamata successiva alla funzione NetTimerCallback, a meno che il timer non venga annullato. Il valore di questo parametro deve essere minore o uguale a MAXLONG.

[in, optional] FunctionContext

Puntatore a un'area di contesto fornita dal chiamante che NDIS passa alla funzione netTimerCallback associata quando viene generato un timer. Se questo parametro è NULL, NDIS usa il valore predefinito specificato in . NDIS_TIMER_CHARACTERISTICS struttura.

Valore restituito

NdisSetTimerObject restituisce TRUE se l'oggetto timer era già presente nella coda del timer di sistema; in caso contrario, restituisce FALSE.

Osservazioni

Dopo che un driver chiama NdisSetTimerObject, l'oggetto timer viene accodato fino alla scadenza dell'intervallo specificato nel parametro DueTime. Dopo la scadenza dell'intervallo, l'oggetto timer viene dequeued e il chiamante fornito funzione NetTimerCallback viene eseguita una sola volta in IRQL = DISPATCH_LEVEL non appena un processore diventa disponibile.

Se nel parametro millisecondiPeriod viene specificato un valore diverso da zero, l'oggetto timer viene accodato di nuovo fino alla scadenza dell'intervallo specificato in MillisecondsPeriod. Dopo la scadenza di questo intervallo, l'oggetto timer viene rieseguito e il chiamante fornito funzione netTimerCallback viene eseguita una sola volta in IRQL = DISPATCH_LEVEL non appena un processore diventa disponibile.

Nota A partire da Windows 7, è possibile ridurre il consumo di energia chiamando NdisSetCoalescableTimerObject invece di NdisSetTimerObject se non è richiesta la precisione esatta del timer.
 
Per altre informazioni sul comportamento del timer, vedere KeSetTimerEx.

Per annullare un timer, chiamare la funzione NdisCancelTimerObject.

Fabbisogno

Requisito Valore
client minimo supportato Supportato in NDIS 6.0 e versioni successive.
piattaforma di destinazione Universale
intestazione ndis.h (include Ndis.h)
libreria Ndis.lib
IRQL <= DISPATCH_LEVEL
regole di conformità DDI Irql_Timer_Function(ndis), periodicTimer(ndis)

Vedere anche

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback