TpSetCallbackRaceWithDll, fonction (winnt.h)
Garantit que la DLL spécifiée reste chargée tant qu’il y a des rappels en attente.
Syntaxe
void TpSetCallbackRaceWithDll(
[in, out] PTP_CALLBACK_ENVIRON CallbackEnviron,
[in] PVOID DllHandle
);
Paramètres
[in, out] CallbackEnviron
Structure TP_CALLBACK_ENVIRON qui définit l’environnement de rappel. La fonction InitializeThreadpoolEnvironment retourne cette structure.
[in] DllHandle
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.
Cette fonction est implémentée en tant que fonction inline.
Configuration requise
Plateforme cible | Windows |
En-tête | winnt.h |
Voir aussi
TpSetCallbackActivationContext
TpSetCallbackFinalizationCallback