Что означает код HRESULT 0x8001013A (CO_E_ACESINWRONGORDER)?

 
Предыдущий Следующий
CO_E_EXCEEDSYSACLLIMIT CO_E_INCOMPATIBLESTREAMVERSION

CO_E_ACESINWRONGORDER

Что означает CO_E_ACESINWRONGORDER

CO_E_ACESINWRONGORDER означает, что ACL содержит ACE в порядке, который не соответствует ожидаемой канонической последовательности: deny-правила должны располагаться перед соответствующими allow-правилами. Ошибка относится к структуре security descriptor, а не к отсутствию конкретного разрешения.

Что проверить

  • Сохраните исходный binary security descriptor и его SDDL до любой нормализации.
  • Просмотрите порядок ACE, включая inherited entries и object-specific ACE.
  • Если descriptor строится программно, проверьте этапы добавления deny/allow и последующей canonicalization.

Как исправить

Пересоберите ACL через штатные access-control API, сохранив исходные права и inheritance semantics. Не решайте проблему глобальным ослаблением LaunchPermission или AccessPermission: порядок ACE и объём предоставленных прав — разные вопросы.

Технические ссылки


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