Я сделал простую глупую запись в журнал вместо отладки моего минидрайвера.
Тестирование вашего минидрайвера с помощью certutil
очень просто:
certutil.exe -SCInfo
Идея отладки минидрайвера смещена.Для windows 10 есть 5 секундный тайм-аут для работы с картой.Если вы не опросите карту в течение 5 секунд, вы получите сброс карты с помощью операционной системы.
Вот как выглядит ошибка:
Карта в устройстве чтения смарт-карт 'Generic EMV Smartcard Reader 0 'был сброшен, потому что приложение удерживало исключительную транзакцию на карте в течение 5 секунд без активности.Если эта ошибка повторяется, приложение может работать неправильно.
Вот что Microsoft говорит об этом:
Транзакции со смарт-картой в WindowsServer 2012, Windows 8 и Windows RT: если транзакция удерживается на карте более 5 секунд, и на карте не выполняется никаких операций, карта сбрасывается.Это отличается от поведения в предыдущих выпусках.
Для исправной отладки вы должны ввести отдельный поток, который опрашивает состояние вашей карты с помощью SCardStatus
или SCardGetAttrib
, как Gemalto делает
Чтобы избежать сброса системой смарт-карты после 5-секундного тайм-аута, Gemalto рекомендует регулярно вызывать прозрачную функцию, такую как SCardStatus или SCardGetAttrib, используя таймер, после вызова SCardBeginTransaction.Это изменение также относится к системам Windows 8, RT и Server 2012.