Bagikan melalui


Fungsi TpSetCallbackRaceWithDll (winnt.h)

Memastikan bahwa DLL yang ditentukan tetap dimuat selama ada panggilan balik yang luar biasa.

Sintaks

void TpSetCallbackRaceWithDll(
  [in, out] PTP_CALLBACK_ENVIRON CallbackEnviron,
  [in]      PVOID                DllHandle
);

Parameter

[in, out] CallbackEnviron

Struktur TP_CALLBACK_ENVIRON yang menentukan lingkungan panggilan balik. Fungsi InitializeThreadpoolEnvironment mengembalikan struktur ini.

[in] DllHandle

Handel ke DLL.

Menampilkan nilai

Tidak ada

Keterangan

Anda harus memanggil fungsi ini jika panggilan balik mungkin memperoleh kunci pemuat. 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 terutang 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.

Fungsi ini diimplementasikan sebagai fungsi sebaris.

Persyaratan

   
Target Platform Windows
Header winnt.h

Lihat juga

TpDestroyCallbackEnviron

TpInitializeCallbackEnviron

TpSetCallbackActivationContext

TpSetCallbackCleanupGroup

TpSetCallbackFinalizationCallback

TpSetCallbackLongFunction

TpSetCallbackNoActivationContext

TpSetCallbackPersistent

TpSetCallbackPriority

TpSetCallbackThreadpool