Что означает код HRESULT 0x80040E70 (SEC_E_INVALIDOWNER)?

 
Предыдущий Следующий
SEC_E_INVALIDACCESSENTRYLIST SEC_E_INVALIDACCESSENTRY

SEC_E_INVALIDOWNER

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

SEC_E_INVALIDOWNER означает, что операция безопасности получила владельца, которого нельзя назначить данному объекту в текущем контексте. Ошибка относится не просто к текстовому имени: обычно важны SID и правила назначения владельца для конкретного типа объекта.

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

  • Сохраните SID предполагаемого владельца, исходный security descriptor и тип объекта.
  • Если входным значением было имя, проверьте результат преобразования имени в SID; display name не заменяет security principal.
  • Убедитесь, что вызывающий контекст имеет право назначить именно этого владельца и что SID допустим для выбранного provider.

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

Передайте допустимый SID и изменяйте только поле owner, не перестраивая без необходимости DACL или SACL. Если владелец должен назначаться привилегированным кодом, проверьте соответствующую привилегию до вызова API.

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

Повторное чтение security descriptor должно показывать ожидаемый SID владельца без непреднамеренных изменений остальных полей.

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


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