SetThreadStackGuarantee, fonction (processthreadsapi.h)
Définit la taille minimale de la pile associée au thread ou à la fibre appelant qui sera disponible pendant toute exception de dépassement de capacité de la pile. Cela est utile pour gérer les exceptions de dépassement de capacité de la pile ; l’application peut utiliser en toute sécurité le nombre d’octets spécifié lors de la gestion des exceptions.
Syntaxe
BOOL SetThreadStackGuarantee(
[in, out] PULONG StackSizeInBytes
);
Paramètres
[in, out] StackSizeInBytes
Taille de la pile, en octets. Au retour, cette valeur est définie sur la taille de la pile précédente, en octets.
Si ce paramètre est égal à 0 (zéro), la fonction réussit et le paramètre contient la taille de la pile actuelle.
Si la taille spécifiée est inférieure à la taille actuelle, la fonction réussit mais ignore cette requête. Par conséquent, vous ne pouvez pas utiliser cette fonction pour réduire la taille de la pile.
Cette valeur ne peut pas être supérieure à la taille de la pile réservée.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est zéro (0). Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Si la fonction réussit, l’application peut gérer les exceptions EXCEPTION_STACK_OVERFLOW possibles à l’aide de la gestion structurée des exceptions. Pour reprendre l’exécution après avoir géré un dépassement de capacité de la pile, vous devez effectuer certaines étapes de récupération. Si vous utilisez le compilateur Microsoft C/C++, appelez la fonction _resetstkoflw . Si vous utilisez un autre compilateur, consultez la documentation du compilateur pour plus d’informations sur la récupération des dépassements de capacité de la pile.
Pour définir la garantie de pile pour une fibre, vous devez d’abord appeler la fonction SwitchToFiber pour exécuter la fibre. Après avoir défini la garantie pour cette fibre, elle est utilisée par la fibre, quel que soit le thread qui exécute la fibre.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista, Windows XP Professionnel Édition x64 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008, Windows Server 2003 avec SP1 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | processthreadsapi.h (inclure Windows.h sur Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |