SetSystemTimeAdjustment-Funktion (sysinfoapi.h)
Aktiviert oder deaktiviert periodische Zeitanpassungen an der Tageszeituhr des Systems. Wenn sie aktiviert sind, können diese Zeitanpassungen verwendet werden, um die Tageszeit mit einer anderen Quelle von Zeitinformationen zu synchronisieren.
Syntax
BOOL SetSystemTimeAdjustment(
[in] DWORD dwTimeAdjustment,
[in] BOOL bTimeAdjustmentDisabled
);
Parameter
[in] dwTimeAdjustment
Dieser Wert stellt die Anzahl von 100 Nanosekundeneinheiten dar, die der Systemzeit für jeden tatsächlich verstrichenen lpTimeIncrement-Zeitraum hinzugefügt werden. Rufen Sie GetSystemTimeAdjustment auf, um den LpTimeIncrement-Wert abzurufen. Siehe Bemerkungen.
Derzeit verlieren Windows Vista- und Windows 7-Computer alle Zeitanpassungen, die kleiner als 16 festgelegt sind.
[in] bTimeAdjustmentDisabled
Der Vom System zu verwendende Zeitanpassungsmodus. Regelmäßige Systemzeitanpassungen können deaktiviert oder aktiviert werden.
Der Wert TRUE gibt an, dass die periodische Zeitanpassung deaktiviert werden soll. Wenn er deaktiviert ist, wird der Wert von dwTimeAdjustment ignoriert, und das System kann die Tageszeit mithilfe eigener interner Zeitsynchronisierungsmechanismen anpassen. Diese internen Zeitsynchronisierungsmechanismen können dazu führen, dass sich die Tageszeituhr während des normalen Verlaufs des Systembetriebs ändert, was zu spürbaren Zeitsprüngen führen kann, die vom System als notwendig erachtet werden.
Der Wert FALSE gibt an, dass die regelmäßige Zeitanpassung aktiviert werden soll und zum Anpassen der Tageszeituhr verwendet wird. Das System beeinträchtigt das Zeitanpassungsschema nicht und versucht nicht, die Tageszeit selbst zu synchronisieren.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich 0.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Eine Möglichkeit, wie die Funktion fehlschlagen kann, ist, wenn der Aufrufer nicht über das SE_SYSTEMTIME_NAME-Recht verfügt.
Hinweise
Die Funktionen GetSystemTimeAdjustment und SetSystemTimeAdjustment unterstützen Algorithmen, die die Über GetSystemTime und GetLocalTime gemeldete Tageszeituhr mit einer anderen Zeitquelle mithilfe einer regelmäßigen Zeitanpassung synchronisieren.
Die SetSystemTimeAdjustment-Funktion unterstützt zwei Zeitsynchronisierungsmodi:
Mode | Verhalten |
---|---|
Time-Adjustment Deaktiviert | Für diesen Modus ist bTimeAdjustmentDisabled auf TRUE festgelegt. In diesem Modus wird der Wert von dwTimeAdjustment ignoriert, und das System kann die Tageszeit mithilfe eigener interner Zeitsynchronisierungsmechanismen anpassen. Diese internen Zeitsynchronisierungsmechanismen können dazu führen, dass sich die Tageszeituhr während des normalen Verlaufs des Systembetriebs ändert, was zu spürbaren Zeitsprüngen führen kann, die vom System als notwendig erachtet werden. |
Time-Adjustment aktiviert |
Für diesen Modus ist bTimeAdjustmentDisabled auf FALSE festgelegt. Für jeden tatsächlich verstrichenen lpTimeIncrement-Zeitraum wird dwTimeAdjustment der Tageszeit hinzugefügt. Der durch lpTimeIncrement dargestellte Zeitraum kann durch Aufrufen von GetSystemTimeAdjustment bestimmt werden. Der lpTimeIncrement-Wert wird vom System beim Start festgelegt und ändert sich während des Systembetriebs nicht und ist völlig unabhängig von der internen Unterbrechungsauflösung des Systems zu einem bestimmten Zeitpunkt. In diesem Fall gibt der lpTimeIncrement-Wert einfach einen Zeitraum aus, für den dwTimeAdjustment auf die Tageszeituhr des Systems angewendet wird.
Wenn der dwTimeAdjustment-Wert kleiner als lpTimeIncrement ist, wird die Tageszeituhr langsamer als normal. Wenn der dwTimeAdjustment-Wert größer als lpTimeIncrement ist, wird die Tageszeituhr schneller als normal voranschreiten. Der Grad, in dem die Tageszeit schneller oder langsamer ausgeführt wird, hängt davon ab, wie weit der dwTimeAdjustment-Wert über oder unter dem lpTimeIncrement-Wert liegt. Wenn dwTimeAdjustmentgleich lpTimeIncrement ist, wird die Tageszeituhr mit normaler Geschwindigkeit vorangestellt. |
Eine Anwendung muss über Systemzeitberechtigungen (das SE_SYSTEMTIME_NAME-Berechtigung) verfügen, damit diese Funktion erfolgreich ist. Die SE_SYSTEMTIME_NAME-Berechtigung ist standardmäßig deaktiviert. Verwenden Sie die Funktion AdjustTokenPrivileges , um die Berechtigung vor dem Aufrufen von SetSystemTimeAdjustment zu aktivieren und die Berechtigung nach dem Aufruf "SetSystemTimeAdjustment " zu deaktivieren. Weitere Informationen finden Sie unter Ausführen mit speziellen Berechtigungen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | sysinfoapi.h (einschließlich Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |