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

另请参阅

TpDestroyCallbackEnviron

TpInitializeCallbackEnviron

TpSetCallbackActivationContext

TpSetCallbackCleanupGroup

TpSetCallbackFinalizationCallback

TpSetCallbackLongFunction

TpSetCallbackNoActivationContext

TpSetCallbackPersistent

TpSetCallbackPriority

TpSetCallbackThreadpool