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
FreeLibraryWhenCallbackReturns
InitializeThreadpoolEnvironment