Fungsi OpenSemaphoreW (synchapi.h)
Membuka objek bernama semaphore yang sudah ada.
Sintaks
HANDLE OpenSemaphoreW(
[in] DWORD dwDesiredAccess,
[in] BOOL bInheritHandle,
[in] LPCWSTR lpName
);
Parameter
[in] dwDesiredAccess
Akses ke objek semaphore. Fungsi gagal jika pendeskripsi keamanan objek yang ditentukan tidak mengizinkan akses yang diminta untuk proses panggilan. Untuk daftar hak akses, lihat Sinkronisasi Keamanan Objek dan Hak Akses.
[in] bInheritHandle
Jika nilai ini TRUE, proses yang dibuat oleh proses ini akan mewarisi handel. Jika tidak, proses tidak mewarisi handel ini.
[in] lpName
Nama semaphore yang akan dibuka. Perbandingan nama peka huruf besar/kecil.
Fungsi ini dapat membuka objek di namespace privat. Untuk informasi selengkapnya, lihat Namespace Objek.
Layanan Terminal: Nama dapat memiliki awalan "Global" atau "Lokal" untuk secara eksplisit membuka 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.
Catatan Pengalihan pengguna cepat diimplementasikan menggunakan sesi Layanan Terminal. Pengguna pertama yang masuk menggunakan sesi 0, pengguna berikutnya untuk masuk menggunakan sesi 1, dan sebagainya. Nama objek kernel harus mengikuti pedoman yang diuraikan untuk Layanan Terminal sehingga aplikasi dapat mendukung beberapa pengguna.
Menampilkan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah handel ke objek semaphore.
Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi OpenSemaphore memungkinkan beberapa proses untuk membuka handel dari objek semaphore yang sama. Fungsi ini hanya berhasil jika beberapa proses telah membuat semaphore dengan menggunakan fungsi CreateSemaphore . Proses panggilan dapat menggunakan handel yang dikembalikan dalam fungsi apa pun yang memerlukan handel ke objek semaphore, seperti fungsi tunggu, tunduk pada batasan akses yang ditentukan dalam parameter dwDesiredAccess .
Handel dapat diduplikasi dengan menggunakan fungsi DuplicateHandle . Gunakan fungsi CloseHandle untuk menutup handel. Sistem menutup handel secara otomatis ketika proses berakhir. Objek semaphore dihancurkan ketika pegangan terakhirnya telah ditutup.
Persyaratan
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | synchapi.h (sertakan Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |