Função SetThreadpoolCallbackLibrary (winbase.h)
Garante que a DLL especificada permaneça carregada desde que haja retornos de chamada pendentes.
Sintaxe
void SetThreadpoolCallbackLibrary(
[in, out] PTP_CALLBACK_ENVIRON pcbe,
[in] PVOID mod
);
Parâmetros
[in, out] pcbe
Uma estrutura TP_CALLBACK_ENVIRON que define o ambiente de retorno de chamada. A função InitializeThreadpoolEnvironment retorna essa estrutura.
[in] mod
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.
O pool de threads pressupõe a propriedade da referência de biblioteca fornecida a essa função. O chamador não deve chamar FreeLibrary em um identificador de módulo depois de passá-lo para essa função.
Essa função é implementada como uma função embutida.
Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0600 ou superior.
Requisitos
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | winbase.h (incluir Windows.h) |
Confira também
FreeLibraryWhenCallbackReturns
InitializeThreadpoolEnvironment