다음을 통해 공유


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

참고 항목

ConvertThreadToFiber

FiberProc

섬유

GetFiberData

프로세스 및 스레드 함수

SwitchToFiber