Параметры функции MiniDumpWriteDump(): зачем нам нужен дескриптор и идентификатор?

Я проверил определение метода MiniDumpWriteDump() на MSDN, как показано ниже:

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]

Дескриптор процесса, для которого должна быть сгенерирована информация.

ProcessId [in]

Идентификатор процесса, для которого должна быть сгенерирована информация.

Поскольку либо дескриптор процесса, либо идентификатор процесса могут идентифицировать процесс, зачем нам передавать их оба? Разве мы не можем вывести одно из них из другого? Так что между ними должны быть какие-то различия, каковы они?

Благодарю.

1 ответ

Я думаю, что это, вероятно, только по историческим причинам. Обратите внимание, что функция GetProcessId, которая позволяет получить PID из дескриптора процесса, не существовала до Windows Server 2003:

http://msdn.microsoft.com/en-us/library/ms683215%28v=vs.85%29.aspx

Другие вопросы по тегам