CreateFiberEx

ファイバオブジェクトを割り当て、スタックを割り当て、指定された開始アドレス(通常はファイバ関数)から実行を開始するように設定する。この関数はファイバをスケジュールしない。(CreateFiberEx)

CreateFiberEx dwStackCommitSize, dwStackReserveSize, dwFlags, lpStartAddress, lpParameter

dwStackCommitSize : [int] スタックの初期コミットサイズ(バイト単位)。このパラメータがゼロの場合、新しいファイバは実行ファイルの既定コミットスタックサイズを使用する。詳細は Thread Stack Size を参照。
dwStackReserveSize : [int] スタックの初期予約サイズ(バイト単位)。このパラメータがゼロの場合、新しいファイバは実行ファイルの既定予約スタックサイズを使用する。詳細は Thread Stack Size を参照。
dwFlags : [int] このパラメータがゼロの場合、x86 システムで浮動小数点状態は切り替えられず、ファイバが浮動小数点演算を使うとデータが破損する可能性がある。FIBER_FLAG_FLOAT_SWITCH の場合、ファイバに対して浮動小数点状態が切り替えられる。Windows XP: FIBER_FLAG_FLOAT_SWITCH フラグはサポートされない。
lpStartAddress : [int] ファイバが実行するアプリケーション定義の関数へのポインタ。ファイバの開始アドレスを表す。新しく作成されたファイバの実行は、別のファイバがこのアドレスで SwitchToFiber 関数を呼ぶまで開始されない。ファイバコールバック関数の詳細は FiberProc を参照。
lpParameter : [intptr] ファイバに渡される変数へのポインタ。ファイバは GetFiberData マクロを使ってこのデータを取得できる。

(プラグイン / モジュール : kernel32.dll)

解説

ファイバオブジェクトを割り当て、スタックを割り当て、指定された開始アドレス(通常はファイバ関数)から実行を開始するように設定する。この関数はファイバをスケジュールしない。(CreateFiberEx)

[戻り値]
関数が成功した場合、戻り値はファイバのアドレス。関数が失敗した場合、戻り値は NULL。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
プロセスが作成できるファイバの数は利用可能な仮想メモリによって制限される。既定では、各ファイバは 1
メガバイトの予約スタック領域を持つ。したがって、最大 2028
個のファイバを作成できる。既定のスタックサイズを減らせば、より多くのファイバを作成できる。ただし、代替戦略で要求を処理したほうがアプリケーションのパフォーマンスは向上する。スレッドが
SwitchToFiber 関数でファイバをスケジュールする前に、スレッドに関連付けられたファイバがあるように
ConvertThreadToFiber
関数を呼ぶ必要がある。この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT を 0x0400
以降として定義する。詳細は Using the Windows Headers を参照。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs