| Предыдущий | Следующий |
| STG_E_ABNORMALAPIEXIT | STG_E_INVALIDNAME |
STG_E_INVALIDHEADER
Где возникает HRESULT
HRESULT отмечает конкретную границу COM Structured Storage / OLE persistence: Structured Storage: Structured Storage / invalidheader. Причину ищут на первом вызове, вернувшем код, а не на последующем UI-сообщении или автоматическом повторе.
В исходном EN-описании ключевое условие сформулировано так: The file does not have a valid Compound File Binary Format header for Structured Storage.
. Используйте эту формулировку как границу: если фактическое состояние ей не соответствует, ищите соседний HRESULT, а не расширяйте диагноз.
Вторая проверка из документации: STG_E_INVALIDHEADER means Structured Storage rejected the file as a valid Compound File Binary Format container at the header stage. The first possibility is simple: the application was given the wrong file type, such as a modern Office ZIP package, plain text, HTML error page, zero-byte placeholder, or a file renamed
. Она полезна для контролируемого сравнения failing/working trace и относится именно к этому результату.
Evidence для расследования
- storage/stream/property-set identity и STGM flags.
- path/provider, transaction generation и file hash.
- IStorage/IStream/IPropertyStorage operation и first native HRESULT.
Метка результата для корреляции: Structured Storage / invalidheader. Сохраняйте значения, которые различают этот переход от соседних кодов; секреты, приватные ключи и полный licensing payload в журналы не помещайте.
Проверка гипотезы
Отделите format/header/name/parameter/lock/path failures от CSS/DVD region/key states и firmware-slot operations. Соседние STG_E коды имеют разные владельцы.
Code-specific ориентир: The CFB specification defines a fixed header and format fields that tell a reader how to interpret sectors and allocation data.
. В тесте оставьте object identity и операцию прежними и меняйте только один prerequisite, связанный с этой формулировкой.
- Запишите , UTC-время, вызывающий API и identity объекта до повторов.
- Сопоставьте evidence с условием «Structured Storage: Structured Storage / invalidheader» и ближайшим отличающимся состоянием.
- Измените один подтверждённый input, policy, storage или device prerequisite.
- Повторите исходную операцию и сравните первый HRESULT и устойчивое состояние после завершения.
Подтверждение результата
Исправьте только доказанный storage/device/format prerequisite и повторите исходную COM/storage operation на свежем объекте.
Для финальной проверки сохраните ещё один исходный маркер: Verify file size, origin, and signature; compare against a known-good copy when available.
. Успех означает, что исходное условие больше не воспроизводится на той же операции, а не только исчезло внешнее уведомление.
Технические ссылки
- Microsoft: MS-CFB header and format.
- Apache POI: OLE 2/POIFS support.
- olefile: overview of OLE compound files.
Нужно найти другой код? Найти другой код состояния или ошибки.