| Предыдущий | Следующий |
| NTE_SILENT_CONTEXT | NTE_TEMPORARY_PROFILE |
NTE_TOKEN_KEYSET_STORAGE_FULL
NTE_TOKEN_KEYSET_STORAGE_FULL следует интерпретировать на границе ёмкости аппаратного токена. Смарт-карта, HSM, поставщик на основе TPM или другой защищённый токен не может выделить ещё один постоянный контейнер ключа в своём защищённом хранилище. Полезный диагностический вопрос — какой конкретный объект и операция заставили Windows выбрать этот HRESULT, а не работает ли в целом некий ключ, сертификат, учётная запись, файл или устройство.
Читайте результат на правильном уровне
При этом результате поставщик опирается на ограниченное или отдельно управляемое устройство: смарт-карту, TPM, HSM, виртуальный токен, считыватель или удалённую службу ключей. Установка поставщика, обнаружение устройства, готовность, ёмкость объектов, состояние аутентификации и политика ключей — разные уровни, которые следует журналировать отдельно.
Сформируйте запись инцидента
| Запишите | Почему это важно для данного кода |
|---|---|
| видимый поставщику идентификатор устройства, считыватель или endpoint, версии прошивки и драйвера и состояние соединения | При этом результате это показывает, следует ли состояние за аппаратурой, middleware или хранимыми объектами. |
| инвентаризация объектов токена, ёмкость или квота и признак постоянства целевого ключа | При этом результате это сохраняет данные о ёмкости и готовности устройства до очистки. |
| та же операция с другим заведомо исправным устройством через тот же middleware | При этом результате это отделяет установку поставщика от физической доступности устройства. |
Проверки, специфичные для кода:
- Перечислите существующие контейнеры и найдите заброшенные ключи регистрации, обновления или тестирования.
- Проверьте пределы ёмкости производителя токена, квоты объектов и случаи, когда сертификаты удалялись без удаления связанных объектов закрытого ключа.
- Перед удалением контейнеров сохраните или восстановите требуемый материал, затем выполните одну контролируемую попытку создания ключа.
Что включать в пакет для эскалации
Сопоставьте последнюю успешную операцию с установкой или обновлением поставщика, созданием или обновлением ключа, изменениями профиля или сеанса, подключением и отключением устройства, обновлением политик и первым неудачным вызовом. Для этого результата порядок важен: ошибка сразу после миграции ключа указывает на другую границу, чем сбой после смены учётной записи службы.
- Для этого результата подготовьте минимальный пример с именем API, поставщика, ключа или контейнера, флагами и размерами нечувствительных входных данных.
- Для этого пути сохраните события поставщика, устройства, профиля и ОС за период от последнего успеха до первого сбоя.
- Для этого пути сохраните заведомо исправный контрольный результат с той же идентичностью, архитектурой и выбором поставщика.
Используйте две оси сравнения
Оставьте неизменными приложение, учётную запись и конфигурацию поставщика, меняя по одной переменной устройства: переподключите тот же токен, используйте другой считыватель или endpoint, затем заведомо исправный токен. Это покажет, следует ли состояние за аппаратурой, транспортом, middleware или хранимыми объектами.
- Сохраните исходный ввод, идентичность, выбор поставщика или протокола и первое возвращённое значение для этого результата.
- Используйте один заведомо исправный контроль, меняющий только подозреваемую часть пути ёмкости аппаратного токена.
- Где это безопасно, выполните обратное сравнение с заведомо исправным вводом на том же сбойном слое.
- Фиксируйте место первого расхождения в пути ёмкости аппаратного токена, а не оценивайте только итоговое сообщение приложения.
Не смешивайте с соседним кодом
Это ёмкость постоянных объектов, а не обычная память процесса. NTE_OUT_OF_MEMORY или OSS_OUT_MEMORY относятся к выделению памяти хоста. Не удаляйте объекты токена до экспорта меток, ID, сертификатов и политик: можно уничтожить единственные данные о переполнении или неудачной очистке после регистрации.
Для ёмкости аппаратного токена также сохраняйте исходное числовое значение: соседние константы могут требовать существенно разного восстановления, даже если приложение показывает их все как ошибку аутентификации, сертификата или безопасности.
Проверка после изменения
Для этого результата исходный поставщик должен обнаружить готовое устройство и выполнить целевую операцию при стабильном составе объектов; временный успех с несвязанным оборудованием является только данными для локализации. Сохраните регрессионный тест с нечувствительными идентификаторами и ожидаемыми результатами, включая один отрицательный контроль, который должен по-прежнему завершаться ошибкой.
Технические ссылки
Эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных ёмкости аппаратного токена.
- Открытые спецификации Microsoft: значения HRESULT.
- Microsoft: CNG Key Storage Providers.
- NIST SP 800-57 Part 1: рекомендации по управлению ключами.
Нужно найти другой код? Найти другой код состояния или ошибки.