Bagikan melalui


Fungsi CreateWaitableTimerExW (synchapi.h)

Membuat atau membuka objek timer yang dapat ditunda dan mengembalikan handel ke objek.

Sintaksis

HANDLE CreateWaitableTimerExW(
  [in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
  [in, optional] LPCWSTR               lpTimerName,
  [in]           DWORD                 dwFlags,
  [in]           DWORD                 dwDesiredAccess
);

Parameter

[in, optional] lpTimerAttributes

Penunjuk ke struktur SECURITY_ATTRIBUTES. Jika parameter ini null, handel timer tidak dapat diwariskan oleh proses turunan.

Jika lpTimerAttributesNULL, objek timer mendapatkan deskriptor keamanan default dan handel tidak dapat diwariskan. ACL dalam deskriptor keamanan default untuk timer berasal dari token utama atau peniruan identitas pembuat.

[in, optional] lpTimerName

Nama objek timer. Nama ini terbatas pada karakter MAX_PATH. Perbandingan nama peka huruf besar/kecil.

Jika lpTimerName null, objek timer dibuat tanpa nama.

Jika lpTimerName cocok dengan nama peristiwa, semaphore, mutex, pekerjaan, atau objek pemetaan file yang ada, fungsi gagal dan GetLastError mengembalikan ERROR_INVALID_HANDLE. Ini terjadi karena objek ini memiliki namespace yang sama.

Nama dapat memiliki awalan "Global" atau "Lokal" untuk secara eksplisit membuat objek di namespace layanan global atau sesi. Sisa nama dapat berisi karakter apa pun kecuali karakter garis miring terbelakang (\). Untuk informasi selengkapnya, lihat Namespace Objek Kernel. Peralihan pengguna cepat diimplementasikan menggunakan sesi Layanan Terminal. Nama objek kernel harus mengikuti panduan yang diuraikan untuk Layanan Terminal sehingga aplikasi dapat mendukung beberapa pengguna.

Objek dapat dibuat di namespace privat. Untuk informasi selengkapnya, lihat Object Namespaces.

[in] dwFlags

Parameter ini bisa 0 atau nilai berikut.

Nilai Arti
CREATE_WAITABLE_TIMER_MANUAL_RESET
0x00000001
Timer harus diatur ulang secara manual. Jika tidak, sistem secara otomatis mengatur ulang timer setelah merilis satu utas tunggu.
CREATE_WAITABLE_TIMER_HIGH_RESOLUTION
0x00000002
Membuat timer resolusi tinggi. Gunakan nilai ini untuk situasi kritis waktu ketika penundaan kedaluwarsa singkat pada urutan beberapa milidetik tidak dapat diterima. Nilai ini didukung di Windows 10, versi 1803, dan yang lebih baru.

[in] dwDesiredAccess

Masker akses untuk objek timer. Untuk daftar hak akses, lihat Synchronization Object Security and Access Rights.

Mengembalikan nilai

Jika fungsi berhasil, nilai pengembalian adalah handel ke objek timer. Jika objek pengatur waktu bernama ada sebelum panggilan fungsi, fungsi mengembalikan handel ke objek yang ada dan GetLastError mengembalikan ERROR_ALREADY_EXISTS.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

Setiap utas proses panggilan dapat menentukan handel objek pengatur waktu dalam panggilan ke salah satu fungsi tunggu .

Beberapa proses dapat memiliki handel ke objek timer yang sama, memungkinkan penggunaan objek untuk sinkronisasi antarproses.

  • Proses yang dibuat oleh fungsi CreateProcess dapat mewarisi handel ke objek timer jika parameter lpTimerAttributes CreateWaitableTimerEx memungkinkan pewarisan.
  • Proses dapat menentukan handel objek timer dalam panggilan ke fungsi DuplicateHandle. Handel yang dihasilkan dapat digunakan oleh proses lain.
  • Proses dapat menentukan nama objek timer dalam panggilan ke fungsi OpenWaitableTimer atau CreateWaitableTimerEx.

Gunakan fungsi CloseHandle untuk menutup handel. Sistem menutup handel secara otomatis ketika proses berakhir. Objek timer dihancurkan ketika handel terakhirnya telah ditutup.

Untuk mengaitkan timer dengan jendela, gunakan fungsi SetTimer.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header synchapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

closeHandle

Fungsi Sinkronisasi

Objek Timer yang Dapat Ditunda