В чем разница между PID и HANDLE процесса?

327
28 сентября 2017, 15:03

В чем между ними разница и что можно сделать с процессом имея либо PID либо HANDLE?

Answer 1

PID — это Process ID (идентификатор процесса), он уникален в пределах системы, т.е. одновременно не существует двух процессов с одинаковыми PID. Используется для идентификации процесса извне.

HANDLE — условно, адрес, по которому хранится информация по процессу, например такая как: время запуска, имя файла, ассоциированного с процессом, и даже тот же самый PID. Будучи однажды получен, HANDLE требует закрытия через CloseHandle(). Используется внутри программы, нет особого смысла в передаче наружу. В общем случае, тип HANDLE может идентифицировать разные ресурсы, далеко не только процессы. В winnt.h описан как указатель на void (т.е. на любой тип):

typedef PVOID HANDLE;

Так как зная PID можно получить HANDLE и наоборот, сделать с процессом можно всё что угодно, но должны быть соответствующие привилегии.

READ ALSO
Генерация чисел c++

Генерация чисел c++

Имеется следующий код:

189
Какой именно enter нажат?

Какой именно enter нажат?

Как определить, какой из двух enter'ов нажат(num pad или основной)?

238
Как создать dll?

Как создать dll?

Добрый вечер - установил visual studio 2017 почти со всеми дополнениями:Не ставил Node и ASPПодскажите как мне создать dll для C++?Не могу найти Win32 вкладку...

265