Fungsi KeInitializeSemaphore (wdm.h)
Rutinitas KeInitializeSemaphore menginisialisasi objek semaphore dengan jumlah tertentu dan menentukan batas atas yang dapat dicapai oleh hitungan.
Sintaks
void KeInitializeSemaphore(
[out] PRKSEMAPHORE Semaphore,
[in] LONG Count,
[in] LONG Limit
);
Parameter
[out] Semaphore
Penunjuk ke objek dispatcher jenis semaphore, yang pemanggilnya menyediakan penyimpanan.
[in] Count
Menentukan nilai jumlah awal yang akan ditetapkan ke semaphore. Nilai ini harus positif. Nilai bukan nol menetapkan status awal semaphore ke sinyal.
[in] Limit
Menentukan nilai jumlah maksimum yang dapat dicapai semaphore. Nilai ini harus positif. Ini menentukan berapa banyak utas tunggu yang memenuhi syarat untuk eksekusi ketika semaphore diatur ke status yang disinyalkan dan karenanya dapat mengakses sumber daya yang dilindungi semaphore.
Nilai kembali
Tidak ada
Keterangan
Objek semaphore diinisialisasi dengan jumlah dan batas awal yang ditentukan.
Penyimpanan untuk objek semaphore harus residen: dalam ekstensi perangkat objek perangkat yang dibuat driver, di ekstensi pengontrol objek pengontrol yang dibuat driver, atau di kumpulan yang tidak dialokasikan oleh pemanggil.
Untuk informasi selengkapnya tentang objek semaphore, lihat Objek Semaphore.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm) |