SetThreadInformation

指定したスレッドの情報を設定する。

SetThreadInformation hThread, ThreadInformationClass, ThreadInformation, ThreadInformationSize

hThread : [intptr] スレッドのハンドル。THREAD_SET_INFORMATION アクセス権が必要。詳細は Thread Security and Access Rights を参照。
ThreadInformationClass : [int] 設定する情報のクラス。サポートされるのは ThreadMemoryPriority と ThreadPowerThrottling のみ。
ThreadInformation : [intptr] ThreadInformationClass が指定する種別の情報を含む構造体へのポインタ。ThreadMemoryPriority の場合は MEMORY_PRIORITY_INFORMATION を、ThreadPowerThrottling の場合は THREAD_POWER_THROTTLING_STATE を指す。
ThreadInformationSize : [int] ThreadInformation が指す構造体のサイズ(バイト単位)。ThreadMemoryPriority の場合は sizeof(MEMORY_PRIORITY_INFORMATION)、ThreadPowerThrottling の場合は sizeof(THREAD_POWER_THROTTLING_STATE) でなければならない。

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

解説

指定したスレッドの情報を設定する。

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

[備考]

システム性能を改善するため、バックグラウンド処理を行うスレッドや、すぐには再アクセスされないファイル・データへアクセスするスレッドに対しては、SetThreadInformation
の ThreadMemoryPriority
を使ってメモリ優先度を下げるとよい。たとえばマルウェア対策ソフトはファイルスキャンを行うスレッドの優先度を下げることがある。**メモリ優先度**
は、ページがプロセスのワーキングセットからトリミングされるまでの時間を決定する。スレッドのメモリ優先度は、そのスレッドがプロセスワーキングセットに追加する物理ページの最低優先度を決定する。メモリマネージャはワーキングセットをトリミングする際、優先度の低いページから先にトリミングする。これにより優先度の高いページがトリミングされてページフォールトを起こす可能性が下がり、システム全体の性能が改善する。**ThreadPowerThrottling**
はスレッドにスロットリングポリシーを有効化し、最高性能が不要な場合に性能と電力効率のバランスを取るために使える。THREAD_POWER_THROTTLING_EXECUTION_SPEED
を有効化したスレッドは EcoQoS と分類される。システムは CPU
周波数の低下や省電力コアの利用などにより電力効率を高めようとする。EcoQoS
は前面ユーザー体験に寄与しない作業に使うべきで、バッテリ寿命が延び、発熱とファン音が低減する。性能重視や前面ユーザー体験には使うべきではない。(Windows
11 以前は EcoQoS は存在せず LowQoS と呼ばれていた。) アプリケーションが
THREAD_POWER_THROTTLING_EXECUTION_SPEED
を明示的に有効化しない場合、システムは独自のヒューリスティクスで QoS レベルを推定する。詳細は Quality of Service
を参照。

情報

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