Share via


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

DestroyThreadpoolEnvironment

FreeLibraryWhenCallbackReturns

InitializeThreadpoolEnvironment

SetThreadpoolCallbackCleanupGroup

SetThreadpoolCallbackPool

SetThreadpoolCallbackPriority

SetThreadpoolCallbackRunsLong

Pools de threads