Функция ZwOpenProcess (ntddk.h)
Подпрограмма ZwOpenProcess открывает дескриптор для объекта процесса и задает права доступа к этому объекту.
Синтаксис
NTSYSAPI NTSTATUS ZwOpenProcess(
[out] PHANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PCLIENT_ID ClientId
);
Параметры
[out] ProcessHandle
Указатель на переменную типа HANDLE. Подпрограмма ZwOpenProcess записывает дескриптор процесса в переменную, на которую указывает этот параметр.
[in] DesiredAccess
Значение ACCESS_MASK , содержащее права доступа, запрошенные вызывающим объектом процесса.
[in] ObjectAttributes
Указатель на структуру OBJECT_ATTRIBUTES , указывающую атрибуты, применяемые к дескриптору объекта процесса. Поле ObjectName этой структуры должно иметь значение NULL. Дополнительные сведения см. в разделе "Примечания".
[in, optional] ClientId
Указатель на идентификатор клиента, который идентифицирует поток, процесс которого необходимо открыть. Этот параметр должен быть указателем на допустимый идентификатор клиента, отличный от NULL . Дополнительные сведения см. в разделе "Примечания".
Возвращаемое значение
ZwOpenProcess возвращает STATUS_SUCCESS, если вызов выполнен успешно. Возможные возвращаемые значения включают следующие коды состояния ошибок.
Код возврата | Описание |
---|---|
STATUS_INVALID_PARAMETER_MIX | Вызывающий объект либо предоставил имя объекта, либо не смог предоставить идентификатор клиента. |
STATUS_INVALID_CID | Указанный идентификатор клиента недопустим. |
STATUS_INVALID_PARAMETER | Запрошенные права доступа недопустимы для объекта процесса. |
STATUS_ACCESS_DENIED | Запрошенные права доступа не могут быть предоставлены. |
Комментарии
Параметр ClientId должен указывать на идентификатор клиента, определяющий поток, процесс которого должен быть открыт. Кроме того, поле ObjectName структуры, на которую указывает ObjectAttributes , должно иметь значение NULL.
Если вызов этой функции выполняется в пользовательском режиме, следует использовать имя NtOpenProcess вместо ZwOpenProcess.
Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы Собственные системные службы Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями подпрограмм NtXxx и ZwXxx см. в разделе Использование версий NT и Zw подпрограмм собственных системных служб.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ntddk.h (включая Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |