Fungsi InitOnceBeginInitialize (synchapi.h)
Memulai inisialisasi satu kali.
Sintaks
BOOL InitOnceBeginInitialize(
[in, out] LPINIT_ONCE lpInitOnce,
[in] DWORD dwFlags,
[out] PBOOL fPending,
[out, optional] LPVOID *lpContext
);
Parameter
[in, out] lpInitOnce
Penunjuk ke struktur inisialisasi satu kali.
[in] dwFlags
Parameter ini dapat memiliki nilai 0, atau satu atau beberapa bendera berikut.
[out] fPending
Jika fungsi berhasil, parameter ini menunjukkan status inisialisasi saat ini.
Jika parameter ini TRUE dan dwFlags berisi INIT_ONCE_CHECK_ONLY, inisialisasi tertunda dan data konteks tidak valid.
Jika parameter ini FALSE, inisialisasi telah selesai dan pemanggil dapat mengambil data konteks dari parameter lpContext .
Jika parameter ini TRUE dan dwFlags tidak berisi INIT_ONCE_CHECK_ONLY, inisialisasi telah dimulai dan pemanggil dapat melakukan tugas inisialisasi.
[out, optional] lpContext
Parameter opsional yang menerima data yang disimpan dengan struktur inisialisasi satu kali setelah berhasil. Bit INIT_ONCE_CTX_RESERVED_BITS data berurutan rendah selalu nol.
Nilai kembali
Jika INIT_ONCE_CHECK_ONLY tidak ditentukan dan fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Jika INIT_ONCE_CHECK_ONLY ditentukan dan inisialisasi telah selesai, nilai yang dikembalikan adalah TRUE.
Jika tidak, nilai yang dikembalikan adalah FALSE.
Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi ini dapat digunakan untuk inisialisasi satu kali sinkron atau asinkron. Untuk inisialisasi satu kali asinkron, gunakan bendera INIT_ONCE_ASYNC . Untuk menentukan fungsi panggilan balik yang akan dijalankan selama inisialisasi satu kali yang sinkron, lihat fungsi InitOnceExecuteOnce .
Jika fungsi ini berhasil, utas dapat membuat objek sinkronisasi dan menentukan dalam parameter lpContext dari fungsi InitOnceComplete .
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0600 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Objek inisialisasi satu kali tidak dapat dipindahkan atau disalin. Proses tidak boleh mengubah objek inisialisasi, dan sebaliknya harus memperlakukannya sebagai buram logis. Hanya gunakan fungsi inisialisasi satu kali untuk mengelola objek inisialisasi satu kali.
Contoh
Untuk contoh yang menggunakan fungsi ini, lihat Menggunakan Inisialisasi One-Time
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | synchapi.h (termasuk Windows.h pada Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |