다음을 통해 공유


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

참고 항목

프로세스 및 스레드 함수

스레드 스택 크기

스레드

VBS Enclave에서 사용할 수 있는 Vertdll API