Что означает код HRESULT 0x800300FC (STG_E_INVALIDNAME)?

 
Предыдущий Следующий
STG_E_INVALIDHEADER STG_E_UNKNOWN

STG_E_INVALIDNAME

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

STG_E_INVALIDNAME означает, что имя stream или storage недопустимо по правилам Structured Storage. Эти правила относятся к внутренним элементам compound file и не совпадают с обычными ограничениями имени файла в NTFS.

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

  • Сохраните точное Unicode-имя до UI-нормализации, escaping и преобразования регистра.
  • Проверьте длину и символы, запрещённые или зарезервированные спецификацией Structured Storage.
  • Убедитесь, что producer не подставляет в имя внутреннего элемента полный файловый путь или пользовательскую строку без проверки.

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

Исправьте имя на стороне кода, создающего stream/storage, и сохраняйте однозначное соответствие с исходным объектом. Переименование внешнего backing file не меняет имя внутреннего элемента.

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

Compound file открывается другим совместимым Structured Storage reader, а созданный элемент доступен под тем же допустимым Unicode-именем.

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


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