EnterUmsSchedulingMode

呼び出し側スレッドをユーザーモードスケジューリング (UMS) スケジューラスレッドに変換する。

EnterUmsSchedulingMode SchedulerStartupInfo

SchedulerStartupInfo : [var] スレッドの UMS 属性を指定する UMS_SCHEDULER_STARTUP_INFO 構造体へのポインタ。完了リストや UmsSchedulerProc エントリポイント関数を含む。

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

解説

呼び出し側スレッドをユーザーモードスケジューリング (UMS) スケジューラスレッドに変換する。

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
アプリケーションの UMS スケジューラは、UMS スレッドを実行するために使用される各プロセッサごとに 1 つの UMS
スケジューラスレッドを作成する。スケジューラは通常、スケジューラスレッドのアフィニティを単一プロセッサに設定し、そのプロセッサをそのスケジューラスレッドの使用のために実質的に予約する。スレッドアフィニティの詳細は
Multiple Processors を参照。UMS スケジューラスレッドが作成されたとき、システムは
EnterUmsSchedulingMode 関数の呼び出しで指定された UmsSchedulerProc
エントリポイント関数を呼ぶ。アプリケーションのスケジューラはスケジューラスレッドのアプリケーション固有の初期化を完了し、実行する UMS
ワーカースレッドを選択する責任がある。アプリケーションのスケジューラは、ワーカースレッドの UMS スレッドコンテキストで
ExecuteUmsThread を呼び出して実行する UMS ワーカースレッドを選択する。ワーカースレッドは
UmsThreadYield
を呼び出して制御を譲るか、ブロックするか、終了するまで実行される。その後、スケジューラスレッドは別のワーカースレッドを実行できる。スケジューラスレッドは、すべてのワーカースレッドが自然な停止点に到達するまで(つまり、すべてのワーカースレッドが譲歩、ブロック、または終了するまで)実行を続けるべきである。

情報

プラグイン / モジュール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