| Предыдущий | Следующий |
| STG_E_INVALIDHEADER | STG_E_UNKNOWN |
STG_E_INVALIDNAME
Точная граница отказа
HRESULT отмечает конкретную границу COM Structured Storage / OLE persistence: Structured Storage: Structured Storage / invalidname. Причину ищут на первом вызове, вернувшем код, а не на последующем UI-сообщении или автоматическом повторе.
В исходном EN-описании ключевое условие сформулировано так: The requested Structured Storage stream or storage name violates the format or API naming rules.
. Используйте эту формулировку как границу: если фактическое состояние ей не соответствует, ищите соседний HRESULT, а не расширяйте диагноз.
Вторая проверка из документации: STG_E_INVALIDNAME concerns the name of a storage or stream inside a Structured Storage container. It does not necessarily mean that the Windows filename is invalid. The CFB directory stores element names with its own rules, and the Structured Storage APIs impose restrictions on names supplied to methods such as IStorag
. Она полезна для контролируемого сравнения failing/working trace и относится именно к этому результату.
Диагностический снимок
- storage/stream/property-set identity и STGM flags.
- path/provider, transaction generation и file hash.
- IStorage/IStream/IPropertyStorage operation и first native HRESULT.
Метка результата для корреляции: Structured Storage / invalidname. Сохраняйте значения, которые различают этот переход от соседних кодов; секреты, приватные ключи и полный licensing payload в журналы не помещайте.
Контрольный тест
Отделите format/header/name/parameter/lock/path failures от CSS/DVD region/key states и firmware-slot operations. Соседние STG_E коды имеют разные владельцы.
Code-specific ориентир: Microsoft documents a maximum of 31 characters for a newly created storage name and reserves control characters U+0000 through U+001F when they occur as the first character of a compound-file stream or storage name.
. В тесте оставьте object identity и операцию прежними и меняйте только один prerequisite, связанный с этой формулировкой.
- Измените один подтверждённый input, policy, storage или device prerequisite.
- Повторите исходную операцию и сравните первый HRESULT и устойчивое состояние после завершения.
- Запишите , UTC-время, вызывающий API и identity объекта до повторов.
- Сопоставьте evidence с условием «Structured Storage: Structured Storage / invalidname» и ближайшим отличающимся состоянием.
Критерий восстановления
Исправьте только доказанный storage/device/format prerequisite и повторите исходную COM/storage operation на свежем объекте.
Для финальной проверки сохраните ещё один исходный маркер: Log the exact Unicode name, character count, and method receiving it; do not rely on a display string that hides control characters.
. Успех означает, что исходное условие больше не воспроизводится на той же операции, а не только исчезло внешнее уведомление.
Технические ссылки
- Microsoft: IStorage::CreateStorage naming rules.
- Microsoft: MS-CFB specification.
- libolecf compound-file documentation.
Нужно найти другой код? Найти другой код состояния или ошибки.
