Função TpSetCallbackRaceWithDll (winnt.h)
Garante que a DLL especificada permaneça carregada desde que haja retornos de chamada pendentes.
Sintaxe
void TpSetCallbackRaceWithDll(
[in, out] PTP_CALLBACK_ENVIRON CallbackEnviron,
[in] PVOID DllHandle
);
Parâmetros
[in, out] CallbackEnviron
Uma estrutura TP_CALLBACK_ENVIRON que define o ambiente de retorno de chamada. A função InitializeThreadpoolEnvironment retorna essa estrutura.
[in] DllHandle
Um identificador para a DLL.
Valor retornado
Nenhum
Comentários
Você deverá chamar essa função se um retorno de chamada puder adquirir o bloqueio do carregador. Isso impede que um deadlock ocorra quando um thread em DllMain está aguardando o retorno de chamada terminar e outro thread que está executando o retorno de chamada tenta adquirir o bloqueio do carregador.
Se a DLL que contém o retorno de chamada puder ser descarregada, o código de limpeza em DllMain deverá cancelar retornos de chamada pendentes antes de liberar o objeto.
O gerenciamento de retornos de chamada criados com um TP_CALLBACK_ENVIRON que especifica uma biblioteca de retorno de chamada é um pouco intensivo em processamento. Você deve considerar outras opções para garantir que a biblioteca não seja descarregada enquanto os retornos de chamada estão em execução ou para garantir que os retornos de chamada que podem estar sendo executados não adquiram o bloqueio do carregador.
Essa função é implementada como uma função embutida.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | winnt.h |
Confira também
TpSetCallbackActivationContext
TpSetCallbackFinalizationCallback