SetProcessInformation

指定したプロセスに対する情報を設定する。

SetProcessInformation hProcess, ProcessInformationClass, ProcessInformation, ProcessInformationSize

hProcess : [intptr] プロセスへのハンドル。このハンドルには PROCESS_SET_INFORMATION アクセス権が必要である。詳細は「プロセスのセキュリティとアクセス権」を参照。
ProcessInformationClass : [int] 設定する情報の種類を指定する [PROCESS_INFORMATION_CLASS](./ne-processthreadsapi-process_information_class.md) 列挙のメンバ。
ProcessInformation : [intptr] ProcessInformationClass パラメータで指定した情報の種類を含むオブジェクトへのポインタ。ProcessInformationClass が ProcessMemoryPriority の場合は MEMORY_PRIORITY_INFORMATION 構造体を指さなければならない。ProcessPowerThrottling の場合は PROCESS_POWER_THROTTLING_STATE 構造体を、ProcessLeapSecondInfo の場合は PROCESS_LEAP_SECOND_INFO 構造体を指さなければならない。
ProcessInformationSize : [int] ProcessInformation パラメータが指す構造体のサイズ (バイト単位)。ProcessInformationClass が ProcessMemoryPriority の場合は sizeof(MEMORY_PRIORITY_INFORMATION)、ProcessPowerThrottling の場合は sizeof(PROCESS_POWER_THROTTLING_STATE)、ProcessLeapSecondInfo の場合は sizeof(PROCESS_LEAP_SECOND_INFO) でなければならない。

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

解説

指定したプロセスに対する情報を設定する。

[戻り値]
関数が成功した場合、戻り値は非ゼロである。失敗した場合はゼロである。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]

システム性能向上のため、アプリケーションはバックグラウンド操作や、近い将来再アクセスされる見込みのないファイル・データにアクセスするスレッドの既定のメモリ優先度を下げる目的で、SetProcessInformation
関数と ProcessMemoryPriority
を使用すべきである。例えばファイルインデックス作成アプリケーションは、インデックス作成タスクを行うプロセスに低い既定優先度を設定することができる。**メモリ優先度**
はページがプロセスのワーキングセット内にトリムされるまでの時間を決めるのに役立つ。プロセスのメモリ優先度はそのスレッドがワーキングセットに追加する物理ページの既定優先度を決定する。メモリマネージャがワーキングセットをトリムする際は高優先度ページより低優先度ページが先にトリムされる。これによりシステム全体の性能が改善される。**ProcessPowerThrottling**
はプロセスにスロットリングポリシーを有効化し、最適性能が不要な場面で性能と電力効率のバランスを取るのに使える。プロセスが
PROCESS_POWER_THROTTLING_EXECUTION_SPEED を有効化すると、そのプロセスは EcoQoS
に分類される。システムは CPU 周波数の低減やより電力効率の良いコアの使用などの戦略で電力効率を高めようとする。EcoQoS
は作業がフォアグラウンド
ユーザー体験に寄与しない場合に使用すべきで、バッテリ持続時間の延長、発熱およびファンノイズ低減をもたらす。性能クリティカルまたはフォアグラウンドユーザー体験には
EcoQoS を使用すべきでない (Windows 11 より前は EcoQoS レベルは存在せず、プロセスは LowQoS
とラベル付けされていた)。アプリケーションが PROCESS_POWER_THROTTLING_EXECUTION_SPEED
を明示的に有効化しない場合、システムは独自ヒューリスティックにより QoS レベルを自動推定する。詳細は「Quality of
Service」を参照。プロセスが PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION
を有効化すると、そのプロセスが行った現在のタイマー分解能要求は無視される。プロセスに属するタイマーはもはや高いタイマー分解能で満期を迎える保証がなくなり、電力効率が向上しうる。PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION
を明示的に無効化すると、システムはプロセスによる過去のタイマー分解能要求を記憶して尊重する。Windows 11
では既定で、ウィンドウ所有プロセスが完全に隠蔽・最小化・エンドユーザーから不可視となり、かつ音声を出さない場合、Windows
はタイマー分解能要求を自動的に無視することがあり、既定のシステム分解能より高い分解能を保証しない。

情報

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