Debugging MiniDumpWriteDump()函数';s参数:为什么我们需要一个句柄和一个ID?

Debugging MiniDumpWriteDump()函数';s参数:为什么我们需要一个句柄和一个ID?,debugging,dump,minidump,minidumpwritedump,Debugging,Dump,Minidump,Minidumpwritedump,我检查了MSDN上minidumpWriteDomainp()方法的定义,如下所示: BOOL WINAPI MiniDumpWriteDump( __in HANDLE hProcess, __in DWORD ProcessId, __in HANDLE hFile, __in MINIDUMP_TYPE DumpType, __in PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, __in PMINIDUM

我检查了MSDN上minidumpWriteDomainp()方法的定义,如下所示:

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
);
参数:

hProcess[in]

要为其生成信息的进程的句柄

进程ID[in]

要为其生成信息的进程的标识符

既然进程句柄或进程ID都可以标识进程,为什么我们需要同时传递它们呢我们不能从另一个中推断出一个吗?所以它们之间应该有一些区别,它们是什么


谢谢。

我想这可能只是出于历史原因。请注意,在Windows Server 2003之前不存在GetProcessId函数,该函数允许您从进程句柄获取PID:


但这根本不能回答这个问题,是吗?哪些(历史)原因需要两者兼而有之?