Что означает код HRESULT 0x80280058 (TPM_E_BAD_HANDLE)?

 
Предыдущий Следующий
TPM_E_DAA_WRONG_W TPM_E_BAD_DELEGATE

TPM_E_BAD_HANDLE

Объект и состояние

Значение 0X80280058 возникает на границе TPM 1.2 command decoder, authorization and state machine; конкретная проверка для этого случая — некорректный / дескриптор. Диагностику начинайте с producer, object generation и входного state, а не с последнего пользовательского сообщения.

Перед clear, ownership change, NV rewrite или key deletion сохраните состояние и минимальный failing command: destructive recovery может уничтожить evidence и защищённые данные.

Конкретные признаки из исходного EN-описания

  • It specifically answers whether a TPM 1.2 command handle does not identify a valid object, session, counter or other resource for that command.
  • In contrast, TPM_E_INVALID_AUTHHANDLE is limited to authorization sessions, while it is a broader handle failure.
  • To remediate it, stop persisting volatile handles and refresh them after flush, context close, service restart, sleep or reboot.
  • The one-variable check is to create a fresh object of the required type and use the returned handle immediately in the same context.

Минимальный trace

  • TPM 1.2 ordinal и handle/session generation.
  • ключ/структура/flags/algorithm fields, проверяемые командой.
  • authorization/locality/state и первый raw response.

Key, delegation, DAA, migration и NV ошибки относятся к разным state machines TPM 1.2; одинаковый facility не делает их одним классом причины.

Причинная граница

Сделайте минимальный before/after test для «некорректный / дескриптор» и не меняйте одновременно policy, input и lifecycle-state: такой recovery не доказывает причинную связь.

Сопоставьте отклонённое поле «некорректный / дескриптор» с TPM 1.2 structure/command contract. Не исправляйте сразу authorization, ownership и key template: это разные проверки.

Подтверждение результата

Исправьте только prerequisite «некорректный / дескриптор» — structure, key/session, authorization, locality или persistent state — и повторите исходный TPM 1.2 command на контролируемом устройстве.

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


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