Share via


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