Дескриптора и идентификаторы процессов
При создании нового процесса функцией CreateProcess возвращается обработка нового процесса и его основного потока. Эти дескрипторы создаются с правами полного доступа и могут использоваться при проверке доступа к безопасности в любой из функций, которые принимают дескриптор потоков или процессов. Эти дескрипторы могут наследоваться дочерними процессами в зависимости от флага наследования, указанного при создании. Дескриптор действителен до закрытия, даже после завершения процесса или потока, который они представляют.
Функция createProcessтакже возвращает идентификатор, который однозначно идентифицирует процесс во всей системе. Процесс может использовать функцию GetCurrentProcessId для получения собственного идентификатора процесса (также известного как идентификатор процесса или PID). Идентификатор действителен с момента создания процесса до завершения процесса. Процесс может использовать функцию Process32First для получения идентификатора процесса родительского процесса.
Если у вас есть идентификатор процесса, можно получить дескриптор процесса, вызвав функцию OpenProcess. OpenProcess позволяет указать права доступа дескриптора и наследовать его.
Процесс может использовать функцию GetCurrentProcess для получения псевдо дескриптора в собственный объект процесса. Этот псевдо-дескриптор действителен только для вызывающего процесса; Его нельзя наследовать или дублировать для использования другими процессами. Чтобы получить реальный дескриптор процесса, вызовите функцию DuplicateHandle.