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

 
Предыдущий Следующий
ERROR_INVALID_SUB_AUTHORITY ERROR_INVALID_SID

ERROR_INVALID_ACL

ERROR_INVALID_ACL (1336, 0x00000538) означает, что список управления доступом имеет недопустимую двоичную структуру. Это ошибка структуры данных, а не обычное решение об отказе в доступе.

Что проверяет Windows

ACL содержит номер редакции, общий размер и количество записей управления доступом. IsValidAcl проверяет редакцию и убеждается, что количество записей помещается в объявленный размер ACL. Поэтому эту ошибку может вызвать неправильно инициализированный буфер, неверная длина или повреждение памяти.

Как предотвратить

  • Создавайте новые ACL с помощью InitializeAcl и добавляйте записи через документированные API ACL, а не записывайте двоичные поля напрямую.
  • Рассчитайте и сохраняйте размер буфера, необходимый для ACL, включая каждую ACE и SID.
  • Проверяйте ACL, полученный извне или десериализованный, до его присоединения к дескриптору безопасности.
  • Сохраняйте буфер ACL действительным всё время, пока на него ссылается дескриптор безопасности.

См. документацию Microsoft по IsValidAcl и списки управления доступом.


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