Что означает код ошибки Windows 1300 (ERROR_NOT_ALL_ASSIGNED)?

 
Предыдущий Следующий
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 и изменение привилегий в маркере.


Нужно найти другой код? Найти другой код состояния или ошибки.