进程句柄和标识符

CreateProcess 函数创建新进程时,将返回新进程的句柄及其主线程。 这些句柄是使用完全访问权限创建的,并且(受安全访问检查的约束)可用于接受线程或进程句柄的任何函数。 这些句柄可由子进程继承,具体取决于创建这些句柄时指定的继承标志。 句柄在关闭之前有效,即使进程或线程表示的进程或线程已终止。

CreateProcess 函数还返回唯一标识整个系统的进程的标识符。 进程可以使用 GetCurrentProcessId 函数获取其自己的进程标识符, (也称为进程 ID 或 PID) 。 从创建进程到进程终止为止,标识符有效。 进程可以使用 Process32First 函数获取其父进程的进程标识符。

如果有进程标识符,可以通过调用 OpenProcess 函数来获取进程句柄。 使用 OpenProcess 可以指定句柄的访问权限以及是否可以继承该句柄。

进程可以使用 GetCurrentProcess 函数检索其自己的进程对象的伪句柄。 此伪句柄仅对调用进程有效;无法继承或复制它供其他进程使用。 若要获取进程的实际句柄,请调用 DuplicateHandle 函数。