What does HRESULT 0x8009700C (MSSIPOTF_E_TABLE_CHECKSUM) mean?

 
Previous Next
MSSIPOTF_E_FILETOOSMALL MSSIPOTF_E_FILE_CHECKSUM

MSSIPOTF_E_TABLE_CHECKSUM

One table does not match its directory checksum

MSSIPOTF_E_TABLE_CHECKSUM is local to one table record. The table directory stores a checksum for the table bytes identified by that record. A mismatch can reveal damaged data, a stale checksum after editing, or an offset/length that now selects the wrong bytes.

It differs from MSSIPOTF_E_FILE_CHECKSUM, which is based on the entire font and the checkSumAdjustment field in head. Correcting only the file-wide adjustment can conceal neither a damaged table nor a stale per-table directory checksum.

How to investigate

  • Identify the failing tag, then verify its offset and length before recomputing its checksum.
  • Compare the table payload with the source build to distinguish corruption from an intentional edit.
  • After rebuilding the directory checksum, recalculate the font-wide checksum adjustment and re-sign if applicable.

References


Looking for a different code? Search another status or error code.