| Предыдущий | Следующий |
| ERROR_INVALID_LABEL | ERROR_SOME_NOT_MAPPED |
ERROR_NOT_ALL_ASSIGNED
ERROR_NOT_ALL_ASSIGNED (1300, 0x00000514) — специальный результат «успех с предупреждением» функции AdjustTokenPrivileges: вызов завершился успешно, но маркер не содержал одну или несколько запрошенных привилегий.
Почему одного логического результата недостаточно
AdjustTokenPrivileges может включать или отключать привилегии, уже присутствующие в маркере доступа. Она не может добавить отсутствующую привилегию. Windows может изменить доступные привилегии и всё равно установить последнюю ошибку в ERROR_NOT_ALL_ASSIGNED; в некоторых случаях ни одна из запрошенных привилегий не изменяется.
Правильная обработка
- Вызовите
GetLastErrorсразу после успешного вызоваAdjustTokenPrivileges. - Завершите операцию ошибкой либо используйте намеренно спроектированный путь с ограниченными возможностями, если требуемая привилегия не назначена.
- Проверьте фактический маркер с помощью
GetTokenInformation; эффективным может быть маркер олицетворения потока, а не маркер процесса. - Не предполагайте, что запуск с повышенными правами может добавить в маркер любую привилегию. Назначение определяется учётной записью и системной политикой.
См. документацию Microsoft по AdjustTokenPrivileges и изменение привилегий в маркере.
Нужно найти другой код? Найти другой код состояния или ошибки.