Funzione KeSetTimer (wdm.h)
La routine KeSetTimer imposta l'intervallo assoluto o relativo in cui un oggetto timer deve essere impostato su uno stato segnalato e, facoltativamente, fornisce una routine CustomTimerDpc da eseguire al termine di tale intervallo.
Sintassi
BOOLEAN KeSetTimer(
[in, out] PKTIMER Timer,
[in] LARGE_INTEGER DueTime,
[in, optional] PKDPC Dpc
);
Parametri
[in, out] Timer
Puntatore a un oggetto timer inizializzato con KeInitializeTimer o KeInitializeTimerEx.
[in] DueTime
Specifica il tempo assoluto o relativo in cui scade il timer. 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 viene espressa nelle unità temporali 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] Dpc
Puntatore a un oggetto DPC inizializzato da KeInitializeDpc. Questo parametro è facoltativo e,
Valore restituito
Se l'oggetto timer era già presente nella coda timer di sistema, KeSetTimer restituisce TRUE.
Commenti
La routine KeSetTimer esegue le operazioni seguenti:
Calcola l'ora di scadenza.
Imposta il timer su uno stato non segnalato.
Inserisce l'oggetto timer nella coda timer di sistema.
Se l'oggetto timer era già nella coda timer, viene annullato in modo implicito prima di essere impostato sulla nuova ora di scadenza. Una chiamata a KeSetTimer prima della scadenza precedente di DueTime annulla sia il timer che la chiamata al Dpc, se presente, associata alla chiamata precedente.
Se viene specificato il parametro Dpc, un oggetto DPC è associato all'oggetto timer. Al termine del timer, l'oggetto timer viene rimosso dalla coda timer di sistema e lo stato viene impostato su segnalato. Se un oggetto DPC è stato associato al timer quando è stato impostato, l'oggetto DPC viene inserito nella coda DPC del sistema da eseguire non appena le condizioni consentite dopo la scadenza dell'intervallo di timer.
I tempi di scadenza vengono misurati rispetto all'orologio di sistema e l'accuratezza con cui il sistema operativo può rilevare quando scade un timer è limitato dalla granularità dell'orologio di sistema. Per altre informazioni, vedere Accuratezza timer.
Una sola istanza di un determinato oggetto DPC può essere accodata in qualsiasi momento. Per evitare potenziali condizioni di gara, il DPC passato a KeSetTimer non deve essere passato a KeInsertQueueDpc.
I driver devono annullare tutti i timer attivi nelle routine di scaricamento . Usare KeCancelTimer per annullare tutti i timer.
I chiamanti di KeSetTimer possono specificare una scadenza per un timer. Per impostare un timer ricorrente usare KeSetTimerEx.
Per altre informazioni sugli oggetti timer, vedere Oggetti timer e schede di rete.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDDIs(storport), IrqlKeDispatchLte(wdm) |