| Предыдущий | Следующий |
| CO_E_SERVER_STOPPING | MEM_E_INVALID_LINK |
MEM_E_INVALID_ROOT
Что означает MEM_E_INVALID_ROOT
MEM_E_INVALID_ROOT (0x80080009) — Указан недопустимый указатель на корневой блок.
Контекст результата 0x80080009 — подсистема «COM/WinRT» и область «контракт вызываемого interface, аргументы и state объекта». Условие «указан недопустимый указатель на корневой блок» указывает на тему «mem, недопустимый, root», а не на общий отказ всего компонента.
Что проверить и как подтвердить исправление
Сначала проверьте допустимость и структуру входных данных первого неуспешного вызова. Для 0x80080009 в условии «указан недопустимый указатель на корневой блок» сверьте тип, размер, диапазон, маску флагов и принадлежность каждого дескриптора текущему объекту именно по контракту первого неуспешного метода.
Для воспроизведения 0x80080009 сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите HRESULT, IStorage, IStream. По теме «mem, недопустимый, root» для 0x80080009 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.
Коррекция для 0x80080009 должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0x80080009 и сообщения «указан недопустимый указатель на корневой блок» общий сброс допустим лишь как контроль, но не как доказательство причины.
Подтвердите изменение повтором исходной операции: результат 0x80080009 не должен возникать на исправном объекте, но прежний отрицательный контроль обязан оставаться предсказуемым.
Документация для результата 0x80080009: Microsoft Open Specifications: HRESULT values · Structured Storage · IStorage.
Нужно найти другой код? Найти другой код состояния или ошибки.
