Перечислите процессы, которые используют устройства чтения смарт-карт - PullRequest
2 голосов
/ 13 октября 2010

Я пишу службу Windows, которая должна обрабатывать устройства чтения смарт-карт.

Очень часто, когда я пытаюсь подключиться к вставленной смарт-карте, SCardConnect() завершается неудачно с SCARD_E_SHARING_VIOLATION, что в основном означает:

Невозможно получить доступ к смарт-карте из-за других незавершенных соединений.

Достаточно справедливо.

Я полагаю, что хотя бы один другой процесс пытается получить доступ кУмный одновременно.Но есть ли способ определить, какой это процесс (ы)?

1 Ответ

3 голосов
/ 13 октября 2010

На вашем месте я бы попробовал с Process Explorer посмотреть на дескрипторы файлов, открытые вашим приложением , если вы получите доступ к считывателям смарт-карт. Для этого вам нужно выбрать процесс и нажать Ctrl-H (меню «Вид» / «Вид нижней панели» / «Гандес»). После того, как вы узнаете имя устройства считывателя смарт-карт, вы сможете узнать другие процессы, которые используют устройство , если вы получите ошибку SCARD_E_SHARING_VIOLATION. Вам просто нужно использовать Ctrl-F (меню «Найти» / «Найти дескриптор или DLL ...»), чтобы найти дескриптор файла.

...