2

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

很多时候,当我尝试连接到插入的智能卡时,SCardConnect()失败SCARD_E_SHARING_VIOLATION基本上意味着:

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

很公平。

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

4

1 回答 1

3

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

于 2010-10-13T11:15:59.330 回答