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