CreateProcess包含PROCESS_INFORMATION结构,该结构指定为创建的进程选择的进程ID。
如何指定创建过程时要使用的进程ID?
答案 0 :(得分:6)
您根本无法指定进程ID。它由操作系统选择。
想象一下,您可以指定进程ID。操作系统必须锁定其内部进程列表结构,以便查找进程ID是否已存在。如果没有,为了防止任何其他进程创建具有相同的ID。这当然会增加内核的复杂性,而程序员却没有真正的收获。
如果不指定进程ID,操作系统可以原子地递增计数器以确定下一个进程ID,这样更容易,更快。
答案 1 :(得分:-1)
在CreateProcess函数中,PROCESS_INFORMATION不是输入参数。它是函数的输出参数。因此,无论您尝试分配哪个进程ID,内核都会覆盖该参数。 检查https://msdn.microsoft.com/en-us/library/windows/desktop/ms682512(v=vs.85).aspx中的示例用法。