Share via


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

TpDestroyCallbackEnviron

TpInitializeCallbackEnviron

TpSetCallbackActivationContext

TpSetCallbackCleanupGroup

TpSetCallbackFinalizationCallback

TpSetCallbackLongFunction

TpSetCallbackNoActivationContext

TpSetCallbackPersistent

TpSetCallbackPriority

TpSetCallbackThreadpool