| Предыдущий | Следующий |
| ERROR_INVALID_OWNER | ERROR_NO_IMPERSONATION_TOKEN |
ERROR_INVALID_PRIMARY_GROUP
ERROR_INVALID_PRIMARY_GROUP (1308, 0x0000051C) означает, что SID, переданный как основная группа дескриптора безопасности, нельзя назначить в этом контексте. Основная группа — это метаданные дескриптора безопасности, а не владелец объекта и не его список управления доступом.
Почему это поле часто не требуется
Маркеры доступа Windows содержат SID основной группы по умолчанию, который может использоваться для дескрипторов безопасности, создаваемых от имени этого маркера. Большинству прикладного кода вообще не требуется задавать основную группу объекта. Необязательная установка GROUP_SECURITY_INFORMATION может превратить допустимое обновление владельца или ACL в завершившуюся ошибкой операцию.
Как исследовать
- Не изменяйте основную группу, если целевой объект и протокол явно не требуют этого.
- Получайте нужное значение из допустимого маркера доступа или корректно разрешённого SID учётной записи либо группы, а не создавайте SID вручную.
- Проверьте SID до передачи и убедитесь, что текущему контексту безопасности разрешено его назначать.
- Проверьте значение
SECURITY_INFORMATIONфлаги, чтобы вSetSecurityInfo.
См. документацию Microsoft по маркерах доступа и передавались только те поля владельца, DACL, SACL или группы, которые действительно требуется изменить. SetSecurityInfo.
Нужно найти другой код? Найти другой код состояния или ошибки.