| Предыдущий | Следующий |
| NTE_SIGNATURE_FILE_BAD | NTE_PROV_DLL_NOT_FOUND |
NTE_PROVIDER_DLL_FAIL
NTE_PROVIDER_DLL_FAIL следует интерпретировать на границе загрузки поставщика . Модуль поставщика найден, но его инициализация завершилась сбоем до получения пригодного криптографического контекста или интерфейса хранилища ключей.
Где выбирается это состояние
При этом результате результат выбирается до получения пригодного контекста поставщика. Отделяйте регистрацию поставщика от обычной загрузки DLL: настроенное имя CSP/KSP, архитектура процесса, тип поставщика, путь модуля, зависимости и точка входа инициализации — разные факты. Скопированная DLL, которая просто загружается, не доказывает согласованность зарегистрированной установки.
Проверки, специфичные для кода:
- Зафиксируйте имя поставщика, его тип или имя KSP, разрядность процесса и первый сбойный API.
- Проверьте журналы загрузчика и приложения на сбой зависимой DLL, точки входа, подписи или инициализации.
- Воспроизведите ситуацию диагностической утилитой производителя поставщика под той же учётной записью службы или пользователя.
Контролируемое воспроизведение
Используйте заведомо исправного встроенного программного поставщика как контроль, сохраняя ту же операцию и идентичность. Если контроль успешен, исследуйте регистрацию, упаковку, разрядность, зависимости или инициализацию производственного поставщика. Если оба пути одинаково завершаются сбоем на том же вводе, сначала проверяйте контракт вызывающей стороны, а не заменяйте файлы поставщика.
Соседние результаты и вводящие в заблуждение исправления
Это отличается от NTE_PROV_DLL_NOT_FOUND: здесь модуль найден, но завершается сбоем при загрузке или инициализации. Не исправляйте это копированием произвольной DLL рядом с приложением: так можно скрыть проблему регистрации или зависимости и обойти модель установки и подписи Windows.
Что считается реальным исправлением
Для этого результата заново получите поставщика в исходной архитектуре процесса и контексте безопасности, затем выполните одну настоящую операцию с ключом; простой LoadLibrary-подобный тест недостаточен.
Технические ссылки
Эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных загрузки поставщика.
Нужно найти другой код? Найти другой код состояния или ошибки.