Что означает код HRESULT 0x8009700C (MSSIPOTF_E_TABLE_CHECKSUM)?

 
Предыдущий Следующий
MSSIPOTF_E_FILETOOSMALL MSSIPOTF_E_FILE_CHECKSUM

MSSIPOTF_E_TABLE_CHECKSUM

Одна таблица не соответствует контрольной сумме в каталоге

MSSIPOTF_E_TABLE_CHECKSUM относится к одной записи таблицы. Каталог хранит контрольную сумму байтов таблицы, определённой этой записью. Несовпадение может указывать на повреждённые данные, устаревшую сумму после редактирования или смещение и длину, которые теперь выбирают неверные байты.

Это отличается от MSSIPOTF_E_FILE_CHECKSUM, основанной на всём файле шрифта и поле checkSumAdjustment в head. Исправление только общей поправки контрольной суммы не скроет ни повреждённую таблицу, ни устаревшую сумму отдельной записи каталога.

Как провести диагностику

  • Определите проблемный тег, затем проверьте его смещение и длину до пересчёта контрольной суммы.
  • Сравните данные таблицы с исходной сборкой, чтобы отличить повреждение от намеренного изменения.
  • После перестроения суммы записи каталога пересчитайте общую поправку шрифта и при необходимости подпишите заново.

Ссылки


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