Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membuat atau membuka objek timer yang dapat ditunda.
Untuk menentukan masker akses untuk objek, gunakan fungsi
Sintaksis
HANDLE CreateWaitableTimerW(
[in, optional] LPSECURITY_ATTRIBUTES lpTimerAttributes,
[in] BOOL bManualReset,
[in, optional] LPCWSTR lpTimerName
);
Parameter
[in, optional] lpTimerAttributes
Penunjuk ke struktur SECURITY_ATTRIBUTES yang menentukan deskriptor keamanan untuk objek timer baru dan menentukan apakah proses turunan dapat mewarisi handel yang dikembalikan.
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] bManualReset
Jika parameter ini TRUE, timer adalah timer pemberitahuan pengaturan ulang manual. Jika tidak, timer adalah timer sinkronisasi.
[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.
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
Handel yang dikembalikan oleh CreateWaitableTimer dibuat dengan hak akses TIMER_ALL_ACCESS; ini dapat digunakan dalam fungsi apa pun yang memerlukan handel ke objek timer, asalkan pemanggil telah diberikan akses. Jika timer dibuat dari layanan atau utas yang meniru pengguna yang berbeda, Anda dapat menerapkan deskriptor keamanan ke timer saat membuatnya, atau mengubah deskriptor keamanan default untuk proses pembuatan dengan mengubah DACL defaultnya. Untuk informasi selengkapnya, lihat Keamanan Objek Sinkronisasi dan Hak Akses.
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 CreateWaitableTimer 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 OpenWaitableTimer ataufungsi CreateWaitableTimer.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0400 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Untuk mengaitkan timer dengan jendela, gunakan fungsi SetTimer.
Contoh
Untuk contoh yang menggunakan CreateWaitableTimer, lihat Menggunakan Objek Timer yang Dapat Ditunggu.
Persyaratan
| Syarat | Nilai |
|---|---|
| klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
| server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
| Platform Target |
Windows |
| Header |
synchapi.h (termasuk Windows.h) |
| Pustaka |
Kernel32.lib |
| DLL |
Kernel32.dll |
Lihat juga
Nama Objek
Fungsi Sinkronisasi
Objek Timer yang Dapat Ditunda