Fungsi InitializeCriticalSection (synchapi.h)

Menginisialisasi objek bagian penting.

Sintaks

void InitializeCriticalSection(
  [out] LPCRITICAL_SECTION lpCriticalSection
);

Parameter

[out] lpCriticalSection

Penunjuk ke objek bagian penting.

Nilai kembali

Fungsi ini tidak mengembalikan nilai.

Windows Server 2003 dan Windows XP: Dalam situasi memori rendah, InitializeCriticalSection dapat meningkatkan pengecualian STATUS_NO_MEMORY . Dimulai dengan Windows Vista, pengecualian ini dihilangkan dan InitializeCriticalSection selalu berhasil, bahkan dalam situasi memori rendah.

Keterangan

Utas dari satu proses dapat menggunakan objek bagian penting untuk sinkronisasi pengecualian bersama. Tidak ada jaminan tentang urutan di mana utas akan mendapatkan kepemilikan dari bagian kritis, namun, sistem akan adil untuk semua utas.

Proses ini bertanggung jawab untuk mengalokasikan memori yang digunakan oleh objek bagian penting, yang dapat dilakukannya dengan mendeklarasikan variabel jenis CRITICAL_SECTION. Sebelum menggunakan bagian penting, beberapa utas proses harus menginisialisasi objek.

Setelah objek bagian penting diinisialisasi, utas proses dapat menentukan objek dalam fungsi EnterCriticalSection, TryEnterCriticalSection, atau LeaveCriticalSection untuk menyediakan akses eksklusif bersama ke sumber daya bersama. Untuk sinkronisasi serupa antara alur proses yang berbeda, gunakan objek mutex.

Objek bagian penting tidak dapat dipindahkan atau disalin. Proses ini juga tidak boleh memodifikasi objek, tetapi harus memperlakukannya sebagai buram logis. Gunakan hanya fungsi bagian penting untuk mengelola objek bagian penting. Setelah Anda selesai menggunakan bagian penting, panggil fungsi DeleteCriticalSection .

Objek bagian penting harus dihapus sebelum dapat diinisialisasi ulang. Menginisialisasi bagian penting yang telah diinisialisasi menghasilkan perilaku yang tidak terdefinisi.

Persyaratan

Persyaratan Nilai
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 (termasuk Windows.h pada Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

CreateMutex

Objek Bagian Kritis

DeleteCriticalSection

EnterCriticalSection

InitializeCriticalSectionAndSpinCount

LeaveCriticalSection

Fungsi Sinkronisasi

TryEnterCriticalSection

Api Vertdll tersedia di enklave VBS