windows – 进程ID和进程句柄之间的区别是什么

进程ID是唯一标识进程的编号.进程句柄也是唯一标识进程内核对象的数字.

为什么我们都需要它们,因为它们中的任何一个都可以识别过程.

我认为答案可能在于进程和进程内核对象之间的映射关系.是否可以将多个进程内核对象映射到单个进程?每个进程内核对象都有自己的进程句柄.这样每个进程内核对象都可以表示不同的访问模式或类似的东西.

当我使用MiniDumpWriteDump()函数时出现了这个问题,这个函数声明如下:

BOOL WINAPI MiniDumpWriteDump(
  __in  HANDLE hProcess,
  __in  DWORD ProcessId,
  __in  HANDLE hFile,
  __in  MINIDUMP_TYPE DumpType,
  __in  PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
  __in  PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
  __in  PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);

所以它的参数包括进程ID和进程句柄.我只是不知道为什么有必要让他们两个.

非常感谢您的见解.

最佳答案
流程句柄是

>任意
>获得它的内部流程.私有,不能在线程/进程之间共享
>它也具有安全访问权限

进程ID是

>独特
>通用,公共,因此可以在线程/进程之间共享

转载注明原文:windows – 进程ID和进程句柄之间的区别是什么 - 代码日志