Дескрипторы и идентификаторы процесса


Когда новый процесс создается функцией CreateProcess, она возвращает дескрипторы нового процесса и его первичного потока. Эти дескрипторы создаются с полными правами доступа, и - как субъекты, проверяемые системой безопасности доступа - могут быть использованы в любой из функций, которые принимают дескрипторы потока или процесса. Эти дескрипторы могут быть унаследованы дочерними процессами, в зависимости от установки флажка наследования, когда они создаются. Дескрипторы допустимы до тех пор, пока не закроются, даже после того как процесс или поток, который они обозначают, завершил свою работу.

Функция CreateProcess также возвращает и идентификатор, который уникально идентифицирует процесс повсюду в системе. Процесс может использовать функцию GetCurrentProcessId, чтобы получить свой собственный идентификатор. Идентификатор допустим с момента, когда процесс создан, и до тех пор, пока процесс не завершит свою работу.

Если у Вас есть идентификатор процесса, Вы можете получить дескриптор процесса путем вызова функции OpenProcess. OpenProcess разрешает Вам определить права доступа дескриптора и может ли он быть унаследованным.

Процесс может использовать функцию GetCurrentProcess, чтобы получить псевдодескриптор своего собственного объекта процесса. Этот псевдодескриптор допустим только для вызывающего процесса; он не может быть унаследован или продублирован для использования другими процессами. Чтобы получать действительный дескриптор процесса, вызовите функцию DuplicateHandle.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz