Параметры функции 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