Fungsi SetThreadpoolCallbackLibrary (winbase.h)
Memastikan bahwa DLL yang ditentukan tetap dimuat selama ada panggilan balik yang luar biasa.
Sintaks
void SetThreadpoolCallbackLibrary(
[in, out] PTP_CALLBACK_ENVIRON pcbe,
[in] PVOID mod
);
Parameter
[in, out] pcbe
Struktur TP_CALLBACK_ENVIRON yang menentukan lingkungan panggilan balik. Fungsi InitializeThreadpoolEnvironment mengembalikan struktur ini.
[in] mod
Handel ke DLL.
Menampilkan nilai
Tidak ada
Keterangan
Anda harus memanggil fungsi ini jika panggilan balik mungkin memperoleh kunci loader. Ini mencegah kebuntuan terjadi ketika satu utas di DllMain menunggu panggilan balik berakhir, dan utas lain yang menjalankan panggilan balik mencoba memperoleh kunci pemuat.
Jika DLL yang berisi panggilan balik mungkin dibongkar, kode pembersihan di DllMain harus membatalkan panggilan balik yang beredar sebelum merilis objek.
Mengelola panggilan balik yang dibuat dengan TP_CALLBACK_ENVIRON yang menentukan pustaka panggilan balik agak intensif pemrosesan. Anda harus mempertimbangkan opsi lain untuk memastikan bahwa pustaka tidak dibongkar saat panggilan balik dijalankan, atau untuk menjamin bahwa panggilan balik yang mungkin dijalankan tidak memperoleh kunci pemuat.
Kumpulan utas mengasumsikan kepemilikan referensi pustaka yang disediakan untuk fungsi ini. Pemanggil tidak boleh memanggil FreeLibrary pada handel modul setelah meneruskannya ke fungsi ini.
Fungsi ini diimplementasikan sebagai fungsi sebaris.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0600 atau lebih tinggi.
Persyaratan
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 | winbase.h (termasuk Windows.h) |
Lihat juga
FreeLibraryWhenCallbackReturns
InitializeThreadpoolEnvironment