Bagikan melalui


Fungsi SetSystemTimeAdjustment (sysinfoapi.h)

Mengaktifkan atau menonaktifkan penyesuaian waktu berkala pada jam waktu hari sistem. Ketika diaktifkan, penyesuaian waktu tersebut dapat digunakan untuk menyinkronkan waktu hari dengan beberapa sumber informasi waktu lainnya.

Sintaks

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

Parameter

[in] dwTimeAdjustment

Nilai ini menunjukkan jumlah 100 unit nanodetik yang ditambahkan ke sistem time-of-day untuk setiap periode waktu lpTimeIncrement yang benar-benar berlalu. Panggil GetSystemTimeAdjustment untuk mendapatkan nilai lpTimeIncrement . Lihat keterangan.

Catatan  

Saat ini, komputer Windows Vista dan Windows 7 akan kehilangan penyesuaian waktu yang ditetapkan kurang dari 16.

 

[in] bTimeAdjustmentDisabled

Mode penyesuaian waktu yang digunakan sistem. Penyesuaian waktu sistem berkala dapat dinonaktifkan atau diaktifkan.

Nilai TRUE menentukan bahwa penyesuaian waktu berkala akan dinonaktifkan. Ketika dinonaktifkan, nilai dwTimeAdjustment diabaikan, dan sistem dapat menyesuaikan waktu hari menggunakan mekanisme sinkronisasi waktu internalnya sendiri. Mekanisme sinkronisasi waktu internal ini dapat menyebabkan jam waktu sehari berubah selama operasi sistem normal, yang dapat mencakup lompatan waktu yang nyata seperti yang dianggap perlu oleh sistem.

Nilai FALSE menentukan bahwa penyesuaian waktu berkala akan diaktifkan, dan akan digunakan untuk menyesuaikan jam waktu sehari. Sistem tidak akan mengganggu skema penyesuaian waktu, dan tidak akan mencoba menyinkronkan waktu hari sendiri.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Salah satu cara fungsi dapat gagal adalah jika pemanggil tidak memiliki hak istimewa SE_SYSTEMTIME_NAME.

Keterangan

Fungsi GetSystemTimeAdjustment dan SetSystemTimeAdjustment mendukung algoritma yang menyinkronkan jam waktu sehari, yang dilaporkan melalui GetSystemTime dan GetLocalTime, dengan sumber waktu lain menggunakan penyesuaian waktu berkala.

Fungsi SetSystemTimeAdjustment mendukung dua mode sinkronisasi waktu:

Mode Aktivitas
Time-Adjustment Dinonaktifkan Untuk mode ini, bTimeAdjustmentDisabled diatur ke TRUE. Dalam mode ini, nilai dwTimeAdjustment diabaikan, dan sistem dapat menyesuaikan waktu hari menggunakan mekanisme sinkronisasi waktu internalnya sendiri. Mekanisme sinkronisasi waktu internal ini dapat menyebabkan jam waktu sehari berubah selama operasi sistem normal, yang dapat mencakup lompatan waktu yang nyata seperti yang dianggap perlu oleh sistem.
Time-Adjustment Diaktifkan Untuk mode ini, bTimeAdjustmentDisabled diatur ke FALSE. Untuk setiap periode waktu lpTimeIncrement yang benar-benar berlalu, dwTimeAdjustment akan ditambahkan ke waktu dalam sehari. Periode waktu yang diwakili oleh lpTimeIncrement dapat ditentukan dengan memanggil GetSystemTimeAdjustment. Nilai lpTimeIncrement diperbaiki oleh sistem saat dimulai dan tidak berubah selama operasi sistem dan sepenuhnya independen dari resolusi interupsi jam internal sistem pada waktu tertentu. Mengingat hal ini, nilai lpTimeIncrement hanya mengekspresikan periode waktu di mana dwTimeAdjustment akan diterapkan pada jam waktu sehari sistem.

Jika nilai dwTimeAdjustment lebih kecil dari lpTimeIncrement, jam waktu sehari akan maju pada tingkat yang lebih lambat dari biasanya. Jika nilai dwTimeAdjustment lebih besar dari lpTimeIncrement, jam waktu sehari akan maju pada tingkat yang lebih cepat dari biasanya. Tingkat waktu jam sehari akan berjalan lebih cepat atau lebih lambat tergantung pada seberapa jauh nilai dwTimeAdjustment berada di atas atau di bawah nilai lpTimeIncrement . Jika dwTimeAdjustment sama dengan lpTimeIncrement, jam waktu sehari akan maju pada kecepatan normal.

 

Aplikasi harus memiliki hak istimewa waktu sistem (hak istimewa SE_SYSTEMTIME_NAME) agar fungsi ini berhasil. Hak istimewa SE_SYSTEMTIME_NAME dinonaktifkan secara default. Gunakan fungsi AdjustTokenPrivileges untuk mengaktifkan hak istimewa sebelum memanggil SetSystemTimeAdjustment, lalu untuk menonaktifkan hak istimewa setelah panggilan SetSystemTimeAdjustment . Untuk informasi selengkapnya, lihat Menjalankan dengan Hak Istimewa Khusus.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header sysinfoapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

AdjustTokenPrivileges

GetLocalTime

GetSystemTime

GetSystemTimeAdjustment

Waktu Sistem

Fungsi Waktu