TpSetCallbackRaceWithDll 函数 (winnt.h)
确保只要有未完成的回调,指定的 DLL 就保持加载状态。
语法
void TpSetCallbackRaceWithDll(
[in, out] PTP_CALLBACK_ENVIRON CallbackEnviron,
[in] PVOID DllHandle
);
参数
[in, out] CallbackEnviron
定义回调环境的 TP_CALLBACK_ENVIRON 结构。 InitializeThreadpoolEnvironment 函数返回此结构。
[in] DllHandle
DLL 的句柄。
返回值
无
备注
如果回调可能获取加载程序锁,则应调用此函数。 这可以防止在 DllMain 中的一个线程等待回调结束,而另一个正在执行回调的线程尝试获取加载程序锁时发生死锁。
如果可能卸载包含回调的 DLL,DllMain 中的清理代码必须在释放对象之前取消未完成的回调。
使用指定回调库的TP_CALLBACK_ENVIRON管理创建的回调会占用一些处理量。 应考虑其他选项,以确保在执行回调时不会卸载库,或确保可能正在执行的回调不会获取加载程序锁。
此函数作为内联函数实现。
要求
目标平台 | Windows |
标头 | winnt.h |
另请参阅
TpSetCallbackActivationContext
TpSetCallbackFinalizationCallback