Что означает код HRESULT 0x80290103 (TPMAPI_E_INVALID_OUTPUT_POINTER)?

 
Предыдущий Следующий
TPMAPI_E_TOO_MUCH_DATA TPMAPI_E_INVALID_PARAMETER

TPMAPI_E_INVALID_OUTPUT_POINTER

Что именно произошло

Для TPMAPI_E_INVALID_OUTPUT_POINTER (0X80290103) рабочая граница — неверный / выходной / указатель. Код относится к Windows TPM API, measured-boot/TCG data и TPM command preparation. Сохраняйте первый native return и identity объекта: именно они определяют, проверяется ли здесь input, capability, ownership, lifecycle или transport.

Authorization и policy фиксируйте как scope/identity без секрета. Не записывайте owner auth, private key material или полный sensitive blob в диагностический лог.

Фрагменты исходного EN-описания

  • It indicates that the caller supplied an invalid location for an API result, size, or returned object.
  • Verify every output pointer, buffer address, and associated size argument before the call.
  • Ensure that output storage remains valid until the TPM API operation returns.
  • Use the API ownership rules when releasing any result allocated by the TPM API.

Данные для первого снимка

  • TPM API method, context handle и operation correlation ID.
  • input structure type/length, algorithm и flags.
  • TBS/service state и первый native TPMAPI result.

TPMAPI может отклонить structure ещё до TBS/TPM command. Поэтому format/length/PCR/key validation нельзя автоматически считать аппаратной ошибкой TPM.

Контрольные признаки

Сделайте минимальный before/after experiment для «неверный / выходной / указатель». Не меняйте одновременно provider, input и state — такой тест не показывает, что именно исправило результат.

Отделите локальную проверку TPMAPI «неверный / выходной / указатель» от TBS transport error и от самого TPM response code; фиксируйте первый слой, вернувший ошибку.

Исправление

Пересоздайте только отклонённую TPM/TCG structure через поддерживаемый API, сохранив тот же TPM и operation context; ручное редактирование blob не является надёжным исправлением.

Технические ссылки


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