CreateFiberEx 함수(winbase.h)
파이버 개체를 할당하고, 스택을 할당하고, 지정된 시작 주소(일반적으로 파이버 함수)에서 시작하도록 실행을 설정합니다. 이 함수는 파이버를 예약하지 않습니다.
구문
LPVOID CreateFiberEx(
[in] SIZE_T dwStackCommitSize,
[in] SIZE_T dwStackReserveSize,
[in] DWORD dwFlags,
[in] LPFIBER_START_ROUTINE lpStartAddress,
[in, optional] LPVOID lpParameter
);
매개 변수
[in] dwStackCommitSize
스택의 초기 커밋 크기(바이트)입니다. 이 매개 변수가 0이면 새 파이버가 실행 파일에 대한 기본 커밋 스택 크기를 사용합니다. 자세한 내용은 스레드 스택 크기를 참조하세요.
[in] dwStackReserveSize
스택의 초기 예약 크기(바이트)입니다. 이 매개 변수가 0이면 새 파이버가 실행 파일에 대해 기본 예약 스택 크기를 사용합니다. 자세한 내용은 스레드 스택 크기를 참조하세요.
[in] dwFlags
이 매개 변수가 0이면 x86 시스템의 부동 소수점 상태가 전환되지 않으며 파이버가 부동 소수점 산술 연산을 사용하는 경우 데이터가 손상될 수 있습니다. 이 매개 변수가 FIBER_FLAG_FLOAT_SWITCH 경우 파이버에 대해 부동 소수점 상태가 전환됩니다.
Windows XP: FIBER_FLAG_FLOAT_SWITCH 플래그는 지원되지 않습니다.
[in] lpStartAddress
파이버에서 실행할 애플리케이션 정의 함수에 대한 포인터이며 파이버의 시작 주소를 나타냅니다. 새로 만든 파이버의 실행은 다른 파이버가 이 주소로 SwitchToFiber 함수를 호출할 때까지 시작되지 않습니다. 파이버 콜백 함수에 대한 자세한 내용은 FiberProc을 참조하세요.
[in, optional] lpParameter
파이버에 전달되는 변수에 대한 포인터입니다. 파이버는 GetFiberData 매크로를 사용하여 이 데이터를 검색할 수 있습니다.
반환 값
함수가 성공하면 반환 값은 파이버의 주소입니다.
함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
프로세스에서 만들 수 있는 파이버 수는 사용 가능한 가상 메모리에 의해 제한됩니다. 기본적으로 모든 파이버에는 1MB의 예약된 스택 공간이 있습니다. 따라서 최대 2028개의 섬유를 만들 수 있습니다. 기본 스택 크기를 줄이면 더 많은 파이버를 만들 수 있습니다. 그러나 요청을 처리하기 위한 대체 전략을 사용하는 경우 애플리케이션의 성능이 향상됩니다.
스레드가 SwitchToFiber 함수를 사용하여 파이버를 예약하려면 먼저 스레드와 연결된 파이버가 있도록 ConvertThreadToFiber 함수를 호출해야 합니다.
이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0400 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |