Функция OpenProcessToken (processthreadsapi.h)

Функция OpenProcessToken открывает маркер доступа , связанный с процессом.

Синтаксис

BOOL OpenProcessToken(
  [in]  HANDLE  ProcessHandle,
  [in]  DWORD   DesiredAccess,
  [out] PHANDLE TokenHandle
);

Параметры

[in] ProcessHandle

Дескриптор процесса, маркер доступа которого открыт. Процесс должен иметь разрешение на доступ PROCESS_QUERY_LIMITED_INFORMATION. Дополнительные сведения см. в разделе Обработка прав на безопасность и доступ .

[in] DesiredAccess

Указывает маску доступа , указывающую запрошенные типы доступа к маркеру доступа. Эти запрошенные типы доступа сравниваются со списком управления доступом на уровне пользователей (DACL) маркера, чтобы определить, какой доступ предоставляется или запрещается.

Список прав доступа для маркеров доступа см. в разделе Права доступа для объектов Access-Token.

[out] TokenHandle

Указатель на дескриптор, который идентифицирует вновь открытый маркер доступа при возврате функции.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

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

Комментарии

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

Если проверяемый процесс был запущен другой учетной записью, для процесса проверки необходимо включить привилегию SE_DEBUG_NAME. Дополнительные сведения см. в разделе Константы привилегий (авторизация).

Чтобы закрыть дескриптор маркера доступа, возвращенный с помощью параметра TokenHandle , вызовите CloseHandle.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header processthreadsapi.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

Управление доступом

Базовые функции контроль доступа

AccessCheck

AdjustTokenGroups

AdjustTokenPrivileges

CloseHandle

GetCurrentProcessToken

GetCurrentThreadEffectiveToken

GetCurrentThreadToken

GetTokenInformation

OpenThreadToken

SetTokenInformation