Функция AdjustTokenPrivileges
Declare Function AdjustTokenPrivileges Lib "advapi32" _
(ByVal TokenHandle As Long, _
ByVal DisableAllPrivileges As Long, _
NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Long, _
PreviousState As TOKEN_PRIVILEGES, _
ReturnLength As Long) As Long
Функция AdjustTokenPrivileges запрещает или делает доступным привилегии для заданного маркера доступа (access token). Функция AdjustTokenPrivileges не может добавлять новые привилегии в маркер доступа. Она может только включать или отключать уже существующие привилегии в маркере. Для получения информации о имеющихся в маркере доступах привилегиях, можно воспользоваться функцией GetTokenInformation
Возвращаемое значение
В успешном случае функция возвращает ненулевое значение. Для получения подробной информации о том добавила ли функция указанные привилегии нужно вызвать функцию GetLastError, которая вернет одно из следующих значений.
ERROR_SUCCESS | Функция добавила все указанные ей привилегии |
ERROR_NOT_ALL_ASSIGNED | Маркер не обладает одной или более привилегиями указанными в параметре NewState |
В случае ошибки функция возвращает 0 (для получения кода ошибки используйте GetLastError)
Параметры
- TokenHandle
- Описатель маркера доступа (access token), привилегии которого должны быть изменены. Маркер доступа должен обладать привилегией TOKEN_ADJUST_PRIVILEGES. Если в параметре PreviousState используется ненулевое значение, маркер еще должен иметь доступ TOKEN_QUERY
- DisableAllPrivileges
- Этот параметр позволяет отключить все привилегии маркера доступа. Если в этот параметр передать значение TRUE, функция отключает все привилегии и при этом игнорируется параметр NewState. Если параметр передано значение FALSE, то функция изменяет текущие привилегии маркера доступа, используя информацию параметра NewState.
- NewState
- Указатель на структуру TOKEN_PRIVILEGES, содержащую набор привилегий и других атрибутов. Если параметру DisableAllPrivileges передано значение FALSE, функция включает или отключает привилегии в маркере доступа. А добавив атрибут SE_PRIVILEGE_ENABLED в структуре TOKEN_PRIVILEGES, функция включает привилегии. Ну а если параметр DisableAllPrivileges установлен в TRUE, то функция игнорирует текущий параметр
- BufferLength
- Размер буфера в байтах, указатель на который, передается в параметре PreviousState. Этот параметр может быть равен 0, если параметр PreviousState тоже установлен в 0
- PreviousState
- Указатель на буффер, который функция заполняет структурой TOKEN_PRIVILEGES. Структура содержит предыдущие установки тех привилегий, состояние которых изменила функция. Этот параметр может быть равен 0
- ReturnLength
- Указатель на переменную, содержащую требуемый размер в байтах, буфера, который передается в параметр PreviousState. Значение текущего параметра может быть равен 0, если параметр PreviousState так же равен 0
Пример
Смотри пример Программное выключение компьютера
Смотри также
LookupPrivilegeDisplayName, LookupPrivilegeName
Категория
Доступ
Реклама