Fonction SetSystemTimeAdjustment (sysinfoapi.h)

Active ou désactive les ajustements d’heure périodiques de l’horloge de l’heure du système. Lorsqu’ils sont activés, ces ajustements d’heure peuvent être utilisés pour synchroniser l’heure de la journée avec d’autres sources d’informations d’heure.

Syntaxe

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

Paramètres

[in] dwTimeAdjustment

Cette valeur représente le nombre d’unités de 100 nanosecondes ajoutées à l’heure du système pour chaque période lpTimeIncrement qui passe réellement. Appelez GetSystemTimeAdjustment pour obtenir la valeur lpTimeIncrement . Consultez la section Remarques.

Remarque  

Actuellement, les machines Windows Vista et Windows 7 perdent tous les ajustements de temps définis moins de 16.

 

[in] bTimeAdjustmentDisabled

Mode d’ajustement de l’heure que le système doit utiliser. Les ajustements périodiques du temps système peuvent être désactivés ou activés.

La valeur TRUE spécifie que l’ajustement de temps périodique doit être désactivé. Lorsqu’elle est désactivée, la valeur de dwTimeAdjustment est ignorée et le système peut ajuster l’heure de la journée à l’aide de ses propres mécanismes de synchronisation d’heure internes. Ces mécanismes internes de synchronisation de l’heure peuvent entraîner une modification de l’heure de la journée pendant le cours normal de l’opération système, ce qui peut inclure des sauts dans le temps notables jugés nécessaires par le système.

La valeur FALSE spécifie que l’ajustement périodique de l’heure doit être activé et sera utilisé pour ajuster l’heure de la journée. Le système n’interfère pas avec le schéma d’ajustement de l’heure et ne tente pas de synchroniser l’heure de la journée par lui-même.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. La fonction peut échouer si l’appelant ne possède pas le privilège SE_SYSTEMTIME_NAME.

Remarques

Les fonctions GetSystemTimeAdjustment et SetSystemTimeAdjustment prennent en charge des algorithmes qui synchronisent l’horloge de l’heure de la journée, signalée via GetSystemTime et GetLocalTime, avec une autre source d’heure à l’aide d’un ajustement d’heure périodique.

La fonction SetSystemTimeAdjustment prend en charge deux modes de synchronisation de temps :

Mode Comportement
Time-Adjustment Désactivé Pour ce mode, bTimeAdjustmentDisabled a la valeur TRUE. Dans ce mode, la valeur de dwTimeAdjustment est ignorée et le système peut ajuster l’heure de la journée à l’aide de ses propres mécanismes de synchronisation d’heure internes. Ces mécanismes internes de synchronisation de l’heure peuvent entraîner une modification de l’heure de la journée pendant le cours normal de l’opération système, ce qui peut inclure des sauts dans le temps notables jugés nécessaires par le système.
Time-Adjustment Activé Pour ce mode, bTimeAdjustmentDisabled a la valeur FALSE. Pour chaque période lpTimeIncrement qui passe réellement, dwTimeAdjustment est ajouté à l’heure de la journée. La période de temps représentée par lpTimeIncrement peut être déterminée en appelant GetSystemTimeAdjustment. La valeur lpTimeIncrement est corrigée par le système au démarrage et ne change pas pendant le fonctionnement du système et est complètement indépendante de la résolution d’interruption d’horloge interne du système à un moment donné. Dans ce cas, la valeur lpTimeIncrement exprime simplement une période pendant laquelle dwTimeAdjustment sera appliqué à l’horloge de l’heure du système.

Si la valeur dwTimeAdjustment est plus petite que lpTimeIncrement, l’horloge du jour avance à un rythme plus lent que la normale. Si la valeur dwTimeAdjustment est supérieure à celle de lpTimeIncrement, l’horloge du jour avance à un rythme plus rapide que la normale. Le degré d’exécution de l’heure de la journée dépend de la distance dans laquelle la valeur dwTimeAdjustment est supérieure ou inférieure à la valeur lpTimeIncrement . Si dwTimeAdjustment est égal à lpTimeIncrement, l’heure du jour avance à vitesse normale.

 

Une application doit disposer d’un privilège au moment du système (le privilège SE_SYSTEMTIME_NAME) pour que cette fonction réussisse. Le privilège SE_SYSTEMTIME_NAME est désactivé par défaut. Utilisez la fonction AdjustTokenPrivileges pour activer le privilège avant d’appeler SetSystemTimeAdjustment, puis pour désactiver le privilège après l’appel SetSystemTimeAdjustment . Pour plus d’informations, consultez Exécution avec des privilèges spéciaux.

Spécifications

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête sysinfoapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

AjusterTokenPrivileges

GetLocalTime

GetSystemTime

GetSystemTimeAdjustment

Temps système

Fonctions de temps