В чем разница между идентификатором процесса и дескриптором процесса

Идентификатор процесса - это номер, который однозначно идентифицирует процесс. Дескриптор процесса - это также число, которое однозначно идентифицирует объект ядра процесса.

Зачем нам они оба, если каждый из них может идентифицировать процесс.

Я думаю, что ответ может заключаться в соотношении отображения между процессом и объектом ядра процесса. Верно ли, что одному процессу может быть сопоставлено несколько объектов ядра процесса? И каждый объект ядра процесса имеет свой собственный дескриптор процесса. Чтобы каждый объект ядра процесса мог представлять разные режимы доступа или тому подобное.

Этот вопрос возник у меня, когда я использую функцию 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
);

] Таким образом, его параметры включают как идентификатор процесса, так и дескриптор процесса. Я просто не знаю, зачем нужны они оба.

Большое спасибо за понимание.

6
задан smwikipedia 8 November 2010 в 02:25
поделиться