Перечислите процессы, которые используют смарт -карты
-
29-09-2019 - |
Вопрос
Я пишу сервис Windows, который должен обрабатывать смарт -карты.
Очень часто, когда я пытаюсь подключиться к вставленной смарт -карте, SCardConnect()
терпит неудачу с SCARD_E_SHARING_VIOLATION
что в основном означает:
Смарт -карта не может быть доступна из -за других выдающихся подключений.
Справедливо.
Я предполагаю, что еще минимум один процесс пытается одновременно получить доступ к Smart. Но есть ли способ определить, какой это процесс (ES)?
Решение
На вашем месте я бы попробовал с Процесс -исследователь чтобы посмотреть на ручки файла, открытые ваше приложение Если вы получаете доступ к читателям смарт -карт. Для этого вы должны выбрать свой процесс и нажать Ctrl-H (Меню «Просмотр»/«Низкий вид вида»/«Руки»). После того, как вы узнаете название устройства смарт -карт, вы сможете узнать Другие процессы, которые используют устройство Если вы получите SCARD_E_SHARING_VIOLATION
ошибка. Вы должны просто использовать Ctrl-F (Меню "Найти"/"Найти ручку или dll ..."), чтобы найти ручку файла.