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 scade il timer. Se il valore del parametro DueTime è negativo, la scadenza è relativa all'ora di sistema corrente. In caso contrario, l'ora di scadenza è assoluta. L'ora di scadenza viene 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 apportate all'ora di sistema.

[in, optional] MillisecondsPeriod

Intervallo di tempo periodico, in millisecondi, trascorso tra ogni attivazione del timer 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.

Commenti

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 la funzione NetTimerCallback fornita dal chiamante viene eseguita una sola volta in IRQL = DISPATCH_LEVEL non appena un processore diventa disponibile.

Se nel parametro MillisecondsPeriod 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 accodato e la funzione NetTimerCallback fornita dal chiamante 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 anziché 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 .

Requisiti

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)

Vedi anche

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback