【发布时间】:2013-07-25 22:45:20
【问题描述】:
调用DWORD GetProcessId(HANDLE) 或DWORD GetCurrentProcessId() 可以获得的最大进程ID 是多少?它没有记录在 API 的文档页面上。
【问题讨论】:
标签: windows winapi process pid
调用DWORD GetProcessId(HANDLE) 或DWORD GetCurrentProcessId() 可以获得的最大进程ID 是多少?它没有记录在 API 的文档页面上。
【问题讨论】:
标签: windows winapi process pid
根据 Mark Russinovich 的 Pushing the Limits of Windows: Processes and Threads 博客文章,进程数仅受可用内存的限制。所以理论上最大进程 id 是DWORD_MAX 对齐到 4: 0xFFFFFFFC(因为 pid/tid 值在 Windows 上对齐到 4)。
【讨论】:
我找不到关于它的官方声明,但由于它以 DWORD 形式存储和返回,因此您应该假设它可以使用整个 32 位范围。在实际系统中,我从未见过大于 ~200,000 的 PID - 因为 Windows 将重用 PID,它们很少会变大。
【讨论】: