Функция SetThreadStackGuarantee (processthreadsapi.h)
Задает минимальный размер стека, связанного с вызывающим потоком или волокном, который будет доступен во время любых исключений переполнения стека. Это полезно для обработки исключений переполнения стека; приложение может безопасно использовать указанное количество байтов во время обработки исключений.
Синтаксис
BOOL SetThreadStackGuarantee(
[in, out] PULONG StackSizeInBytes
);
Параметры
[in, out] StackSizeInBytes
Размер стека в байтах. При возврате этому значению присваивается размер предыдущего стека в байтах.
Если этот параметр равен 0 (ноль), функция выполняется успешно, а параметр содержит размер текущего стека.
Если указанный размер меньше текущего, функция выполняется успешно, но игнорирует этот запрос. Поэтому эту функцию нельзя использовать для уменьшения размера стека.
Это значение не может быть больше зарезервированного размера стека.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция завершается сбоем, возвращаемое значение равно 0 (ноль). Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Если функция выполнена успешно, приложение может обрабатывать возможные EXCEPTION_STACK_OVERFLOW исключения с помощью структурированной обработки исключений. Чтобы возобновить выполнение после обработки переполнения стека, необходимо выполнить определенные действия по восстановлению. Если вы используете компилятор Microsoft C/C++, вызовите функцию _resetstkoflw . Если вы используете другой компилятор, дополнительные сведения о восстановлении после переполнения стека см. в документации по компилятору.
Чтобы задать гарантию стека для волокна, необходимо сначала вызвать функцию SwitchToFiber для выполнения волокон. После установки гарантии для этого волокна оно используется волокном независимо от того, какой поток выполняет волокно.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista, Windows XP Professional x64 Edition [только классические приложения] |
Минимальная версия сервера | Windows Server 2008, Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения] |
Целевая платформа | Windows |
Header | processthreadsapi.h (включая Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |