Что означает код HRESULT 0x80080009 (MEM_E_INVALID_ROOT)?

 
Предыдущий Следующий
CO_E_SERVER_STOPPING MEM_E_INVALID_LINK

MEM_E_INVALID_ROOT

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

MEM_E_INVALID_ROOT (0x80080009) означает, что корневой указатель структуры памяти не соответствует допустимому живому блоку, от которого должна начинаться цепочка или дерево объектов.

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

Зафиксируйте значение root pointer до первого неуспешного вызова, allocator/heap, в котором должен находиться корневой блок, его размер и ожидаемую сигнатуру. Проверьте, не был ли root освобождён раньше времени, заменён адресом дочернего блока или повреждён записью за границу соседнего allocation.

Для подтверждения исправления проверьте root через allocator diagnostics и пройдите структуру именно от него. Корневой блок должен принадлежать ожидаемому heap, оставаться живым на всём интервале операции и содержать допустимые ссылки на первый уровень дочерних элементов; подмена только одного downstream link не исправляет неверный root.

Справка: Windows heap functions · HeapValidate.


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