AvRtCreateThreadOrderingGroupExW

スレッド順序付けグループを作成し、サーバースレッドをタスクに関連付ける。(Unicode)

AvRtCreateThreadOrderingGroupExW Context, Period, ThreadOrderingGuid, Timeout, TaskName

Context : [intptr] コンテキストハンドルへのポインタ。
Period : [var] スレッド順序付けグループの周期を 100 ナノ秒単位で指定する値へのポインタ。スレッド順序付けグループ内の各スレッドはこの周期の間に 1 回実行される。すべてのスレッドが周期終了前に実行を完了した場合、周期の残りが経過するまでどのスレッドも待機し、その後再度実行される。このパラメータに指定可能な値はプラットフォームに依存するが、最小 500 マイクロ秒から最大 0x1FFFFFFFFFFFFFFF までの範囲を取りうる。500 マイクロ秒未満の場合は 500 マイクロ秒に設定される。最大値を超える場合は 0x1FFFFFFFFFFFFFFF に設定される。
ThreadOrderingGuid : [var] 作成するスレッド順序付けグループの一意識別子へのポインタ。この値がスレッド順序付けサービス内で一意でない場合、関数は失敗する。入力時に識別子が GUID_NULL の場合、スレッド順序付けサービスが一意識別子を生成して返す。
Timeout : [var] タイムアウト値へのポインタ。グループ内のすべてのスレッドは Period と Timeout の合計時間内に実行を完了する必要がある。スレッドが周期 + タイムアウト間隔内に処理を完了しない場合、そのスレッドはスレッド順序付けグループから削除される。親スレッドが周期 + タイムアウト間隔内に処理を完了しない場合、スレッド順序付けグループは破棄される。このパラメータに指定可能な値はプラットフォームに依存するが、最小 500 マイクロ秒から最大 0x1FFFFFFFFFFFFFFF までの範囲を取りうる。500 マイクロ秒未満の場合は 500 マイクロ秒に設定される。最大値を超える場合は 0x1FFFFFFFFFFFFFFF に設定される。このパラメータが NULL または 0 の場合、既定値は Period の 5 倍となる。THREAD_ORDER_GROUP_INFINITE_TIMEOUT を指定した場合、グループは無限のタイムアウト間隔で作成される。これはデバッグ目的に有用である。
TaskName : [wstr] タスクの名前。

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

解説

スレッド順序付けグループを作成し、サーバースレッドをタスクに関連付ける。(Unicode)

[戻り値]
関数が成功すると、戻り値は 0 以外となる。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには
GetLastError を呼び出す。指定された識別子のスレッド順序付けグループが既に存在する場合、関数は失敗し、LastError を
ERROR_ALREADY_EXISTS に設定する。

[備考]
呼び出し元のスレッドが親スレッドとみなされる。各スレッド順序付けグループには 1 つの親スレッドが存在する。各親スレッドは 0
個以上の先行スレッドおよび 0
個以上の後続スレッドを持てる。クライアントスレッドはスレッド順序付けグループに参加でき、AvRtJoinThreadOrderingGroup
関数を使用して自身が先行か後続かを指定する。親スレッドは各周期の間に実行されるコードを、AvRtWaitOnThreadOrderingGroup
関数で制御されるループ内に配置する。スレッド順序付けグループを削除するには AvRtDeleteThreadOrderingGroup
関数を呼び出す。スレッドは複数のスレッド順序付けグループを作成でき、また複数のグループに参加できる。ただし、同一グループに複数回参加することはできない。スレッド順序付けグループの親スレッドおよびクライアントスレッドは高い優先度で実行される。しかし、グループを管理するサーバースレッドは通常優先度で実行される。そのため、他に高優先度のスレッドが実行されている場合には、あるクライアントスレッドから別のスレッドへの切り替えに遅延が生じることがある。この関数の
TaskName パラメータは、サーバースレッドに関連付けられるタスクを指定する。

情報

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