Каков максимальный идентификатор процесса в Windows?

Каков максимальный идентификатор процесса, который я могу получить, вызывая DWORD GetProcessId(HANDLE) или DWORD GetCurrentProcessId()? Он не задокументирован на странице документации API.

Ответы

Ответ 1

В соответствии с Push-Limits of Windows: процессы и потоки сообщение блога Марком Руссиновичем количество процессов ограничено доступной памятью. Таким образом, теоретически максимальный идентификатор процесса близок к DWORD_MAX (pids делятся на 4).

Ответ 2

Я не смог найти официальный отчет, но поскольку он хранится и возвращается как DWORD, вы должны предположить, что он может использовать весь 32-битный диапазон. В практических системах я никогда не видел PID, превышающий ~ 200 000, хотя, поскольку Windows повторно использует PID, они редко становятся больше.