Condividi tramite


Funzione SetSystemTimeAdjustment (sysinfoapi.h)

Abilita o disabilita le regolazioni temporali periodiche all'ora del giorno del sistema. Se abilitata, tali regolazioni temporali possono essere usate per sincronizzare l'ora del giorno con un'altra origine di informazioni sull'ora.

Sintassi

BOOL SetSystemTimeAdjustment(
  [in] DWORD dwTimeAdjustment,
  [in] BOOL  bTimeAdjustmentDisabled
);

Parametri

[in] dwTimeAdjustment

Questo valore rappresenta il numero di unità a 100 nanosecondi aggiunte al time-of-day del sistema per ogni periodo di tempo lpTimeIncrement che passa effettivamente. Chiamare GetSystemTimeAdjustment per ottenere il valore lpTimeIncrement . Vedere la sezione Osservazioni.

Nota  

Attualmente, i computer Windows Vista e Windows 7 perderanno qualsiasi regolazione temporale impostata meno di 16.

 

[in] bTimeAdjustmentDisabled

Modalità di regolazione del tempo che il sistema deve usare. Le regolazioni del tempo di sistema periodico possono essere disabilitate o abilitate.

Un valore true specifica che la regolazione temporale periodica deve essere disabilitata. Se disabilitato, il valore di dwTimeAdjustment viene ignorato e il sistema può modificare l'ora del giorno usando i propri meccanismi di sincronizzazione temporale interna. Questi meccanismi di sincronizzazione dell'ora interna possono causare la modifica dell'ora del giorno durante il normale corso dell'operazione di sistema, che può includere i salti evidenti nel tempo, come considerato necessario dal sistema.

Un valore false specifica che la regolazione temporale periodica deve essere abilitata e verrà usata per regolare l'ora del giorno. Il sistema non interferirà con lo schema di regolazione del tempo e non tenterà di sincronizzare l'ora del giorno in modo autonomo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError. Un modo in cui la funzione può non riuscire è se il chiamante non possiede il privilegio di SE_SYSTEMTIME_NAME.

Commenti

Le funzioni GetSystemTimeAdjustment e SetSystemTimeAdjustment supportano algoritmi che sincronizzano l'ora del giorno, segnalata tramite GetSystemTime e GetLocalTime, con un'altra origine temporale usando una regolazione temporale periodica.

La funzione SetSystemTimeAdjustment supporta due modalità di sincronizzazione del tempo:

Mode Comportamento
Time-Adjustment disabilitato Per questa modalità, bTimeAdjustmentDisabled è impostato su TRUE. In questa modalità il valore di dwTimeAdjustment viene ignorato e il sistema può modificare l'ora del giorno usando i propri meccanismi di sincronizzazione del tempo interno. Questi meccanismi di sincronizzazione dell'ora interna possono causare la modifica dell'ora del giorno durante il normale corso dell'operazione di sistema, che può includere i salti evidenti nel tempo, come considerato necessario dal sistema.
Time-Adjustment abilitato Per questa modalità, bTimeAdjustmentDisabled è impostato su FALSE. Per ogni periodo di tempo lpTimeIncrement che effettivamente passa, dwTimeAdjustment verrà aggiunto all'ora del giorno. Il periodo di tempo rappresentato da lpTimeIncrement può essere determinato chiamando GetSystemTimeAdjustment. Il valore lpTimeIncrement viene fisso dal sistema all'avvio e non cambia durante l'operazione di sistema ed è completamente indipendente dalla risoluzione dell'interruzione dell'orologio interno del sistema in qualsiasi momento. Dato questo, il valore lpTimeIncrement esprime semplicemente un periodo di tempo per il quale dwTimeAdjustment verrà applicato all'ora del giorno del sistema.

Se il valore dwTimeAdjustment è minore di lpTimeIncrement, l'orologio temporale del giorno verrà anticipato a una frequenza più lenta rispetto alla normale. Se il valore dwTimeAdjustment è maggiore di lpTimeIncrement, l'ora del giorno avanza a una velocità più veloce rispetto alla normale. Il grado in cui l'ora del giorno verrà eseguita più velocemente o più lenta dipende dalla distanza del valore dwTimeAdjustment superiore o inferiore al valore lpTimeIncrement . Se dwTimeAdjustment è uguale a lpTimeIncrement, l'ora del giorno avanza a velocità normale.

 

Un'applicazione deve avere privilegi di sistema (privilegi di SE_SYSTEMTIME_NAME) per la riuscita di questa funzione. Il privilegio SE_SYSTEMTIME_NAME è disabilitato per impostazione predefinita. Utilizzare la funzione AdjustTokenPrivileges per abilitare il privilegio prima di chiamare SetSystemTimeAdjustment e quindi disabilitare il privilegio dopo la chiamata SetSystemTimeAdjustment . Per altre informazioni, vedere Esecuzione con privilegi speciali.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione sysinfoapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

RegolaTokenPrivileges

GetLocalTime

GetSystemTime

GetSystemTimeAdjustment

Ora di sistema

Funzioni temporali