Partager via


SetThreadpoolCallbackLibrary, fonction (winbase.h)

Garantit que la DLL spécifiée reste chargée tant qu’il y a des rappels en attente.

Syntaxe

void SetThreadpoolCallbackLibrary(
  [in, out] PTP_CALLBACK_ENVIRON pcbe,
  [in]      PVOID                mod
);

Paramètres

[in, out] pcbe

Structure TP_CALLBACK_ENVIRON qui définit l’environnement de rappel. La fonction InitializeThreadpoolEnvironment retourne cette structure.

[in] mod

Handle de la DLL.

Valeur de retour

None

Remarques

Vous devez appeler cette fonction si un rappel peut acquérir le verrou du chargeur. Cela empêche un interblocage lorsqu’un thread dans DllMain attend la fin du rappel et qu’un autre thread qui exécute le rappel tente d’acquérir le verrou du chargeur.

Si la DLL contenant le rappel peut être déchargée, le code de nettoyage dans DllMain doit annuler les rappels en attente avant de libérer l’objet.

La gestion des rappels créés avec un TP_CALLBACK_ENVIRON qui spécifie une bibliothèque de rappels est un traitement quelque peu intensif. Vous devez envisager d’autres options pour vous assurer que la bibliothèque n’est pas déchargée pendant l’exécution des rappels, ou pour garantir que les rappels en cours d’exécution n’acquièrent pas le verrou du chargeur.

Le pool de threads assume la propriété de la référence de bibliothèque fournie à cette fonction. L’appelant ne doit pas appeler FreeLibrary sur un handle de module après l’avoir passé à cette fonction.

Cette fonction est implémentée en tant que fonction inline.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT comme 0x0600 ou une version ultérieure.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)

Voir aussi

DestroyThreadpoolEnvironment

FreeLibraryWhenCallbackReturns

InitializeThreadpoolEnvironment

SetThreadpoolCallbackCleanupGroup

SetThreadpoolCallbackPool

SetThreadpoolCallbackPriority

SetThreadpoolCallbackRunsLong

Pools de threads