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