Windowsでは、0はプロセスの有効なPIDですか、それともOSによって予約されていますか? 予約済みかどうかを示すドキュメントへのリンクを提供していただければ幸いです。感謝!
3 に答える
タスク マネージャーを開きます - プロセス タブに切り替えます (おそらく [表示]、[列の表示] をクリックして、PID 列を有効にします)。
PID 0 はシステム アイドル プロセスです。そのプロセスは実際にはプロセスではなく、決して終了しないため、常にそうであると思います。
私が利用できるドキュメントはありませんが、これが常に当てはまると確信しています。
どこにも記載されていませんが、カーネル ハンドル テーブルがどのように機能するかが問題になります。この同じオブジェクトが、プロセス ハンドルとプロセス/スレッド ID の両方に使用されます。ハンドル値がすべて 0x4 で始まることがあり、PsInitialSystemProcess は最初に作成されるプロセスであるため、PID は 4 になります。アイドル プロセスは実際にはプロセスではないため、開くことはできません。おそらく、ほとんどの意図と目的に対して PID はありませんが、ほとんどのツールはそれを 0 と見なします。
0 の PID は、システム (Windows カーネル) に 4 の PID が予約されているのと同様に、アイドル状態の「疑似プロセス」に予約されています。
それが指定されている場所に関するドキュメントは見つかりませんが、API (Perf Counters、WMI) を介してプロセスをクエリすると、PID 0 のアイドル プロセスが常に表示されます。