Bagikan melalui


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)

Lihat juga

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForsingleObject