Что означает код HRESULT 0x80090035 (NTE_DEVICE_NOT_FOUND)?

 
Предыдущий Следующий
NTE_ENCRYPTION_FAILURE NTE_USER_CANCELLED

NTE_DEVICE_NOT_FOUND

NTE_DEVICE_NOT_FOUND следует интерпретировать на границе отсутствующего криптографического устройства. Конфигурация поставщика ссылается на аппаратное или защитное устройство, которое в этой системе отсутствует, не перечисляется, не поддерживается или недоступно. Полезный диагностический вопрос — какой конкретный объект и операция заставили Windows выбрать этот HRESULT, а не работает ли в целом некий ключ, сертификат, учётная запись, файл или устройство.

Найдите первую сбойную границу

При этом результате поставщик опирается на ограниченное или отдельно управляемое устройство: смарт-карту, TPM, HSM, виртуальный токен, считыватель или удалённую службу ключей. Установка поставщика, обнаружение устройства, готовность, ёмкость объектов, состояние аутентификации и политика ключей — разные уровни, которые следует журналировать отдельно.

Полезные наблюдения вместо общих журналов

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

Проверки, специфичные для кода:

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

Постройте хронологию до изменения состояния

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

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

Воспроизведение без разрушительной очистки

Оставьте неизменными приложение, учётную запись и конфигурацию поставщика, меняя по одной переменной устройства: переподключите тот же токен, используйте другой считыватель или endpoint, затем заведомо исправный токен. Это покажет, следует ли состояние за аппаратурой, транспортом, middleware или хранимыми объектами.

  1. Сохраните исходный ввод, идентичность, выбор поставщика или протокола и первое возвращённое значение для этого результата.
  2. Используйте один заведомо исправный контроль, меняющий только подозреваемую часть пути поиска криптографического устройства.
  3. Где это безопасно, выполните обратное сравнение с заведомо исправным вводом на том же сбойном слое.
  4. Фиксируйте место первого расхождения в пути поиска устройства, а не оценивайте только итоговое сообщение приложения.

Чем это отличается от похожих сбоев

NTE_DEVICE_NOT_READY означает обнаруженное, но ещё не готовое устройство; этот код — что подходящее устройство вообще не найдено. Удаление объектов токена до экспорта меток, ID, сертификатов и политик может уничтожить единственные данные о переполнении или неудачной очистке после регистрации.

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

Регрессионная проверка

Для этого результата исходный поставщик должен обнаружить готовое устройство и выполнить целевую операцию при стабильном составе объектов; временный успех с несвязанным оборудованием является только данными для локализации. Сохраните регрессионный тест с нечувствительными идентификаторами и ожидаемыми результатами, включая один отрицательный контроль, который должен по-прежнему завершаться ошибкой.

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

Эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных обнаружения криптографического устройства.


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