SetThreadStackGuarantee 함수(processthreadsapi.h)
스택 오버플로 예외 중에 사용할 수 있는 호출 스레드 또는 파이버와 연결된 스택의 최소 크기를 설정합니다. 스택 오버플로 예외를 처리하는 데 유용합니다. 애플리케이션은 예외 처리 중에 지정된 바이트 수를 안전하게 사용할 수 있습니다.
구문
BOOL SetThreadStackGuarantee(
[in, out] PULONG StackSizeInBytes
);
매개 변수
[in, out] StackSizeInBytes
스택의 크기(바이트)입니다. 반환 시 이 값은 이전 스택의 크기(바이트)로 설정됩니다.
이 매개 변수가 0이면 함수가 성공하고 매개 변수에 현재 스택의 크기가 포함됩니다.
지정된 크기가 현재 크기보다 작으면 함수는 성공하지만 이 요청을 무시합니다. 따라서 이 함수를 사용하여 스택 크기를 줄일 수 없습니다.
이 값은 예약된 스택 크기보다 클 수 없습니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
함수가 성공하면 애플리케이션은 구조적 예외 처리를 사용하여 가능한 EXCEPTION_STACK_OVERFLOW 예외를 처리할 수 있습니다. 스택 오버플로를 처리한 후 실행을 다시 시작하려면 특정 복구 단계를 수행해야 합니다. Microsoft C/C++ 컴파일러를 사용하는 경우 _resetstkoflw 함수를 호출합니다. 다른 컴파일러를 사용하는 경우 스택 오버플로에서 복구하는 방법에 대한 자세한 내용은 컴파일러에 대한 설명서를 참조하세요.
파이버에 대한 스택 보장을 설정하려면 먼저 SwitchToFiber 함수를 호출하여 파이버를 실행해야 합니다. 이 섬유에 대한 보증을 설정한 후에는 섬유를 실행하는 스레드에 관계없이 섬유에서 사용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista, Windows XP Professional x64 Edition [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008, Windows Server 2003 SP1 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | processthreadsapi.h(Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2에 Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |