Что означает код NTSTATUS 0xC00000E6 (STATUS_GENERIC_NOT_MAPPED)?

 
Предыдущий Следующий
STATUS_INTERNAL_ERROR STATUS_BAD_DESCRIPTOR_FORMAT

STATUS_GENERIC_NOT_MAPPED

Общие права не были преобразованы для типа объекта

Общие биты являются заполнителями, смысл которых зависит от защищаемого объекта. Перед проверкой доступа или объектно-специфичной операцией вызывающий код должен преобразовать их через правильную GENERIC_MAPPING. Использование сопоставления файла для раздела реестра, службы, процесса или пользовательского объекта создаёт неверную эффективную маску.

Сохраните как исходную, так и преобразованную маску. Не очищайте общие биты безусловно: это незаметно удаляет запрошенные права. Для пользовательских типов объектов определите и протестируйте полное сопоставление и применяйте его согласованно к маскам желаемого доступа и маскам ACE там, где этого требует API.

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

  • Определите, какие общие биты остались и к какому типу объекта выполняется доступ.
  • Примените MapGenericMask с правильной GENERIC_MAPPING для типа объекта.
  • Убедитесь, что последующий уровень не добавляет общие биты обратно в уже преобразованную маску.

Ссылки


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