|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
AdjustTokenPrivileges
The AdjustTokenPrivileges function enables or disables privileges in the specified access token. Enabling or disabling privileges in an access token requires TOKEN_ADJUST_PRIVILEGES access.
BOOL AdjustTokenPrivileges(
HANDLE TokenHandle, // handle to token that contains privileges BOOL DisableAllPrivileges, // flag for disabling all privileges PTOKEN_PRIVILEGES NewState, // pointer to new privilege information DWORD BufferLength, // size, in bytes, of the PreviousState buffer PTOKEN_PRIVILEGES PreviousState, // receives original state of changed privileges PDWORD ReturnLength // receives required size of the PreviousState buffer );
Parameters
TokenHandle
Identifies the access token that contains the privileges to be modified.
DisableAllPrivileges
Specifies whether the function disables all of the token's privileges. If this value is TRUE, the function disables all privileges and ignores the NewState parameter. If it is FALSE, the function modifies privileges based on the information pointed to by the NewState parameter.
NewState
Pointer to a TOKEN_PRIVILEGES structure that specifies an array of privileges and their attributes. If the DisableAllPrivileges parameter is FALSE, AdjustTokenPrivileges enables or disables these privileges for the token. If you set the SE_PRIVILEGE_ENABLED attribute for a privilege, the function enables that privilege; otherwise, it disables the privilege. If DisableAllPrivileges is TRUE, the function ignores this parameter.
BufferLength
Specifies the size, in bytes, of the buffer pointed to by the PreviousState parameter. This parameter can be NULL if the PreviousState parameter is NULL.
PreviousState
Pointer to a buffer that the function fills with a TOKEN_PRIVILEGES structure containing the previous state of any privileges the function modifies. The token must be open for TOKEN_QUERY access to use this parameter. This parameter can be NULL. If you specify a buffer that is too small to receive the complete list of modified privileges, the function fails and does not adjust any privileges. In this case, the function sets the variable pointed to by the ReturnLength parameter to the number of bytes required to hold the complete list of modified privileges.
ReturnLength
Pointer to a variable that receives the required size, in bytes, of the buffer pointed to by the PreviousState parameter. This parameter can be NULL if PreviousState is NULL.
Return Values
If the function succeeds, the return value is nonzero. To determine whether the function adjusted all of the specified privileges, call GetLastError, which returns one of the following values when the function succeeds:
Value Description ERROR_SUCCESS The function adjusted all specified privileges. ERROR_NOT_ALL_ASSIGNED The token does not have one or more of the privileges specified in the NewState parameter. The function may succeed with this error value even if no privileges were adjusted. The PreviousState parameter indicates the privileges that were adjusted.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
The AdjustTokenPrivileges function cannot add new privileges to the access token. It can only enable or disable the token's existing privileges. To determine the token's privileges, call the GetTokenInformation function. Note that the NewState parameter can specify privileges that the token does not have, without causing the function to fail. In this case, the function adjusts the privileges that the token does have, ignores the other privileges, and returns success. Call the GetLastError function to determine whether the function adjusted all of the specified privileges. The PreviousState parameter indicates the privileges that were adjusted.
The PreviousState parameter retrieves a TOKEN_PRIVILEGES structure containing the the original state of the adjusted privileges. To restore the original state, pass the PreviousState pointer as the NewState parameter in a subsequent call to the AdjustTokenPrivileges function
See Also
AdjustTokenGroups, GetTokenInformation, OpenProcessToken, OpenThreadToken, SetTokenInformation, TOKEN_PRIVILEGES
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
AdjustTokenPrivileges
Функция AdjustTokenPrivileges приспосабливается или выводит из строя привилегии в определенный признак доступа. Включение или блокируя привилегии в признаке доступа требует доступ TOKEN_ADJUST_PRIVILEGES.
BOOL AdjustTokenPrivileges(
РУЧКА TokenHandle, // оперируется в признак, который содержит привилегии BOOL DisableAllPrivileges, // флаг для блокировки всех привилегий PTOKEN_PRIVILEGES NewState, // указателя в новую информацию привилегии DWORD BufferLength, // размера, в байтах, буфера PreviousState PTOKEN_PRIVILEGES PreviousState, // оригинального состояния приемников измененных приемников привилегий PDWORD ReturnLength // требовавшихся размер буфера PreviousState );
Параметры
TokenHandle
Идентифицирует признак доступа, который содержит привилегии, которые нужно модифицироваться.
DisableAllPrivileges
Определяет выводит из строя функция все символические привилегии. Если эта величина является ИСТИНОЙ, функция выводит из строя все привилегии и игнорирует параметр NewState. Если это - ЛОЖЬ, функция модифицирует привилегии основанные в информации указанной, чтобы параметром NewState.
NewState
Указатель в структуру TOKEN_PRIVILEGES, которая определяет массив привилегий и их атрибутов. Если параметр DisableAllPrivileges - ЛОЖЬ, AdjustTokenPrivileges приспосабливается или выводит из строя эти привилегии для признака. Если Вы установили бы атрибут SE_PRIVILEGE_ENABLED для привилегии, функция приспосабливается эту привилегию; в противном случае, это выводит из строя привилегию. Если DisableAllPrivileges - ИСТИНА, функция игнорирует этот параметр.
BufferLength
Определяет размер, в байтах, буфера указанного, чтобы параметром PreviousState. Этот параметр может быть НЕДЕЙСТВИТЕЛЕН если параметр PreviousState НЕДЕЙСТВИТЕЛЕН.
PreviousState
Указатель в буфер, что функция заполняет структурой TOKEN_PRIVILEGES, содержащей предшествующее состояние любых привилегий функция модифицируется. Признак должен быть открытым для доступа TOKEN_QUERY, чтобы использовать этот параметр. Этот параметр может быть НЕДЕЙСТВИТЕЛЕН. Если Вы определяете буфер, который слишком небольшой, чтобы получать полный список модифицировать привилегий, функция терпит неудачу и не регулирует любые привилегии. В этом случае, функция устанавливает переменную указанную, чтобы параметром ReturnLength в количество байтов требовавшихся, чтобы держать полный список модифицировать привилегий.
ReturnLength
Указатель в переменную, которая получает необходимый размер, в байтах, буфера указанного, чтобы параметром PreviousState. Этот параметр может быть НЕДЕЙСТВИТЕЛЕН если PreviousState НЕДЕЙСТВИТЕЛЕН.
Обратные Величины
Если функция добивается успеха, обратная величина ненулевая. Для того, чтобы определять независимо функцию скорректированную все определившее привилегии, назовите GetLastError, который возвращает одно из следующего величин когда функция получает:
Описание Величины ERROR_SUCCESS функция корректировала все определенные привилегии. ERROR_NOT_ALL_ASSIGNED признак нет имеет одна или более из привилегий определенных в параметре NewState. Функция может добиться успеха с этой величиной ошибки даже если бы никакие привилегии не были скорректированы. Параметр PreviousState указывает привилегии, которые были скорректированы.
Если функция терпит неудачу, обратная величина нулевая. Для того, чтобы расширять информацию ошибки, назовите GetLastError.
Замечания
Функция AdjustTokenPrivileges не может добавить новые привилегии к признаку доступа. Это может только приспособиться или выводить из строя символические существующие привилегии. Для того, чтобы определять символические привилегии, назовите функцию GetTokenInformation. Отметьте, что параметр NewState может определить привилегии, что признак нет имеет, не вызывая функцию, чтобы терпеть неудачу. В этом случае, функция регулирует привилегии, которые признак имеет, игнорирует другие привилегии и возвращает успех. Назовите функцию GetLastError, чтобы определять независимо функцию скорректированную все определившее привилегии. Параметр PreviousState указывает привилегии, которые были скорректированы.
Параметр PreviousState извлекает структуру TOKEN_PRIVILEGES, содержащую оригинальное состояние скорректированных привилегий. Для того, чтобы восстанавливать оригинальное состояние, передайте указатель PreviousState как параметр NewState на последующем вызове в функцию AdjustTokenPrivileges
Смотри Также
AdjustTokenGroups, GetTokenInformation, OpenProcessToken, OpenThreadToken, SetTokenInformation, TOKEN_PRIVILEGES
|
|
|
|
| |