| Предыдущий | Следующий |
| STATUS_INTERNAL_ERROR | STATUS_BAD_DESCRIPTOR_FORMAT |
STATUS_GENERIC_NOT_MAPPED
Общие права не были преобразованы для типа объекта
Общие биты являются заполнителями, смысл которых зависит от защищаемого объекта. Перед проверкой доступа или объектно-специфичной операцией вызывающий код должен преобразовать их через правильную GENERIC_MAPPING. Использование сопоставления файла для раздела реестра, службы, процесса или пользовательского объекта создаёт неверную эффективную маску.
Сохраните как исходную, так и преобразованную маску. Не очищайте общие биты безусловно: это незаметно удаляет запрошенные права. Для пользовательских типов объектов определите и протестируйте полное сопоставление и применяйте его согласованно к маскам желаемого доступа и маскам ACE там, где этого требует API.
Что проверить
- Определите, какие общие биты остались и к какому типу объекта выполняется доступ.
- Примените MapGenericMask с правильной GENERIC_MAPPING для типа объекта.
- Убедитесь, что последующий уровень не добавляет общие биты обратно в уже преобразованную маску.
Ссылки
- Microsoft: MapGenericMask
- Microsoft: AccessCheck
- Microsoft: модель управления доступом
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.
