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

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

Процесс может получить идентификатор и дескриптор нового дочернего процесса из структуры PROCESS_INFORMATION. Разумеется, закрытие дескриптора дочернего процесса не приводит к уничтожению самого процесса; становится невозможным лишь доступ к нему со стороны родительского процесса. Для получения идентификационной информации о текущем процессе служат две функции. 

HANDLE GetCurrentProcess(VOID)

DWORD GetCurrentProcessId(VOID) 

В действительности функция GetCurrentProcess возвращает псевдодескриптор (pseudohandle), который не является наследуемым. Это значение может использоваться вызывающим процессом всякий раз, когда ему требуется его собственный дескриптор. Реальный дескриптор процесса создается на основе идентификатора (ID) процесса, включая и тот, который возвращается функцией GetCurrentProcessID, путем использования функции OpenProcess. Как и в случае любого разделяемого объекта, при отсутствии надлежащих разрешений доступа попытка открытия объекта процесса окажется неуспешной. 

HANDLE OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId)

Возвращаемое значение: в случае успешного завершения — дескриптор процесса, иначе — NULL. 

Параметры

dwDesiredAccess — определяет права доступа к процессу. Некоторые из возможных значений этого параметра перечислены ниже.

• SYNCHRONIZE — разрешается использование дескриптора процесса в функциях ожидания завершения процесса, которые описываются далее в этой главе.

• PROCESS_ALL_ACCESS — устанавливаются все флаги доступа к процессу.

• PROCESS_TERMINATE — делает возможным завершение процесса с использованием функции TerminateProcess.

• PROCESS_QUERY_INFORMATION — разрешает использование дескриптора процесса в функциях GetExitCodeProcess и GetPriorityClass для получения информации о процессе.

bInheritHandle — позволяет указать, является ли новый дескриптор наследуемым. Параметр dwProcessID является идентификатором процесса, запрашивающего дескриптор.

Наконец, выполняющийся процесс может определить полный путь доступа к файлу исполняемого модуля, который использовался для его запуска, с помощью функций GetModuleFileName или GetModuleFileNameEx, при вызове которых значение параметра hModule должно устанавливаться равным NULL. При вызове этой функции из DLL будет возвращено имя файла DLL, а не .ЕХЕ-файла, который использует эту библиотеку DLL. 

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Идентификаторы приложений

Из книги Сущность технологии СОМ. Библиотека программиста автора Бокс Дональд

Идентификаторы приложений В версии COM под Windows NT 4.0 введено понятие приложений COM (COM applications). Приложения COM идентифицируются с помощью GUID (называемых в этом контексте AppID – идентификаторы приложения) и представляют серверный процесс для одного или более классов. Каждый CLSID


R.2.3 Идентификаторы

Из книги Справочное руководство по C++ автора Страустрап Бьярн

R.2.3 Идентификаторы Идентификатор - это последовательность букв и цифр произвольной длины. Первый символ должен быть буквой, символ подчеркивания _ считается буквой. Прописные и строчные буквы различаются. Все символы


Идентификаторы

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Идентификаторы Идентификаторы – это имена констант, переменных, типов, свойств, процедур, функций, программ и программных модулей. Могут быть длиной до 255 символов, начинаться с символа или знака подчеркивания; могут содержать символы, цифры и знаки подчеркивания и не


3.3. Идентификаторы пользователя и группы

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

3.3. Идентификаторы пользователя и группы Система Linux чем-то похожа на монархическое государство: в нем существует один суперпользователь — root, которому все подчиняется, и определенное число обыкновенных пользователей. Это значит, что если вы попробуете удалить один из


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

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Идентификаторы процессов Процесс может получить идентификатор и дескриптор нового дочернего процесса из структуры PROCESS_INFORMATION. Разумеется, закрытие дескриптора дочернего процесса не приводит к уничтожению самого процесса; становится невозможным лишь доступ к нему со


Идентификаторы безопасности

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

Идентификаторы безопасности Для идентификации пользователей и групп Windows использует идентификаторы SID. Программа может отыскивать SID по учетному имени (account name), которое может относиться к пользователю, группе, домену и так далее. Учетное имя может относиться и к


Идентификаторы объектов

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Идентификаторы объектов При принятии решения об использовании данного сертификата для конкретной цели и доверии к нему пользователь может ориентироваться на указатель ППС в сертификате формата X.509 версии 3. Таким указателем, характеризующим политику применения


Идентификаторы

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

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


Идентификаторы

Из книги Операционная система UNIX автора Робачевский Андрей М.

Идентификаторы Идентификаторы именуют переменные и функции. С каждым идентификатором ассоциируется тип, который задается при его объявлении. Значение объекта, именуемого идентификатором, зависит от типа следующим образом:1) Идентификаторы переменных целого и


Идентификаторы с разделителями в SQL-92

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Идентификаторы с разделителями в SQL-92 В базах данных диалекта 3 Firebird поддерживает соглашение ANSI SQL о необязательных идентификаторах с разделителями. Для использования зарезервированных слов, строк, чувствительных к регистру, или пробелов в именах объектов заключите имя


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

Из книги автора

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


Идентификаторы и имена в IPC

Из книги автора

Идентификаторы и имена в IPC Как было показано, отсутствие имен у каналов делает их недоступными для независимых процессов. Этот недостаток устранен у FIFO, которые имеют имена. Другие средства межпроцессного взаимодействия, являющиеся более сложными, требуют


Идентификаторы

Из книги автора

Идентификаторы Идентификаторами называются имена, которые обозначают переменные, функции и объекты. Некоторые имена являются ключевыми или зарезервированными и не могут использоваться в качестве идентификатора, так как имеют особый смысл. О них будет рассказано