指定された UMS 完了リストからユーザーモードスケジューリング (UMS) ワーカースレッドを取得する。
DequeueUmsCompletionListItems UmsCompletionList, WaitTimeOut, UmsThreadList
UmsCompletionList : [intptr] ワーカースレッドを取得する完了リストへのポインタ。 WaitTimeOut : [int] 取得操作のタイムアウト間隔(ミリ秒)。完了リストにワーカースレッドがキューされていなくても、間隔が経過すると関数は戻る。WaitTimeOut パラメータが 0 の場合、ワーカースレッドが利用可能になるのを待たずに完了リストをチェックする。WaitTimeOut パラメータが INFINITE の場合、関数のタイムアウト間隔は決して経過しない。ただし、これは関数が 1 つ以上のワーカースレッドが利用可能になるまでブロックされるため推奨されない。 UmsThreadList : [var] UMS_CONTEXT 変数へのポインタ。出力時、このパラメータは UMS スレッドコンテキストのリスト内の最初の UMS スレッドコンテキストへのポインタを受け取る。WaitTimeOut パラメータで指定したタイムアウトまでにワーカースレッドが利用可能にならない場合、このパラメータは NULL に設定される。
(プラグイン / モジュール : kernel32.dll)
指定された UMS 完了リストからユーザーモードスケジューリング (UMS) ワーカースレッドを取得する。 [戻り値] 関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには GetLastError を呼ぶ。発生し得るエラー値には次のものが含まれる。 (以下省略) [備考] システムは、UMS ワーカースレッドが作成されたとき、または以前にブロックされていたワーカースレッドのブロックが解除されたときに、UMS ワーカースレッドを完了リストにキューする。DequeueUmsCompletionListItems 関数は、指定された完了リスト内のすべてのスレッドコンテキストのリストへのポインタを取得する。GetNextUmsListItem 関数を使うと、UMS スレッドコンテキストをリストからスケジューラ自身のレディスレッドキューにポップできる。スケジューラはアプリケーションが選んだ優先度に基づいて実行するスレッドを選択する責任がある。DequeueUmsCompletionListItems が提供するリストから直接 UMS スレッドを実行したり、リストが完全に空になる前にレディスレッドキューに移したスレッドを実行したりしてはならない。これはアプリケーションで予測不能な動作を引き起こす可能性がある。複数の呼び出し側が共有完了リストからスレッドを取得しようとした場合、最初の呼び出し側だけがスレッドを取得する。後続の呼び出し側に対しては DequeueUmsCompletionListItems は成功を返すが、UmsThreadList パラメータは NULL に設定される。
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |