列出使用智能卡读卡器的进程

时间:2010-10-13 09:10:14

标签: windows winapi process smartcard smartcard-reader

我正在编写一个必须处理智能卡读卡器的Windows服务。

通常,当我尝试连接到插入的智能卡时,SCardConnect()会失败并显示SCARD_E_SHARING_VIOLATION,这基本上意味着:

  

由于其他未完成的连接,无法访问智能卡。

足够公平。

我想至少有一个其他进程试图同时访问Smart。但有没有办法确定它是哪个过程?

1 个答案:

答案 0 :(得分:3)

如果您访问智能卡读卡器,我会尝试使用Process Explorer查看您的应用程序打开的文件句柄。要执行此操作,您应选择您的过程并按 Ctrl-H (菜单“查看”/“低窗格视图”/“Handes”)。在您知道智能卡读卡器的设备名称后,如果收到SCARD_E_SHARING_VIOLATION错误,您将能够找到使用该设备的其他进程。您应该只使用 Ctrl-F (菜单“查找”/“查找句柄或DLL ...”)来查找文件句柄。