Идентификатор процесса - это номер, который однозначно идентифицирует процесс. Дескриптор процесса - это также число, которое однозначно идентифицирует объект ядра процесса.
Зачем нам они оба, если каждый из них может идентифицировать процесс.
Я думаю, что ответ может заключаться в соотношении отображения между процессом и объектом ядра процесса. Верно ли, что одному процессу может быть сопоставлено несколько объектов ядра процесса? И каждый объект ядра процесса имеет свой собственный дескриптор процесса. Чтобы каждый объект ядра процесса мог представлять разные режимы доступа или тому подобное.
Этот вопрос возник у меня, когда я использую функцию 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
);
] Таким образом, его параметры включают как идентификатор процесса, так и дескриптор процесса. Я просто не знаю, зачем нужны они оба.
Большое спасибо за понимание.