我在寫一個必須處理智能卡讀卡器的Windows服務。列出使用智能卡讀卡器的進程
很多時候,當我嘗試連接到插入智能卡,SCardConnect()
失敗SCARD_E_SHARING_VIOLATION
這基本上意味着:
智能卡不能因爲其他未完成的連接進行訪問。
不夠公平。
我想至少有一個其他進程試圖同時訪問智能。但是有沒有辦法確定它是哪個進程?
我在寫一個必須處理智能卡讀卡器的Windows服務。列出使用智能卡讀卡器的進程
很多時候,當我嘗試連接到插入智能卡,SCardConnect()
失敗SCARD_E_SHARING_VIOLATION
這基本上意味着:
智能卡不能因爲其他未完成的連接進行訪問。
不夠公平。
我想至少有一個其他進程試圖同時訪問智能。但是有沒有辦法確定它是哪個進程?
在你的地方,我會嘗試用Process Explorer查看打開的文件句柄,如果你訪問智能卡閱讀器,你的應用程序。要做到這一點,你應該選擇你的過程,並按Ctrl-H(菜單「視圖」/「低窗格視圖」/「漢斯」)。在知道智能卡讀卡器的設備名稱後,如果收到SCARD_E_SHARING_VIOLATION
錯誤,您將能夠找出使用設備的其他進程。您應該只使用Ctrl-F(菜單「查找」/「查找句柄或DLL ...」)來查找文件句柄。
我們已經注意到運行HP Protect Tools的惠普機器上存在這個問題,並且尚未能解決這個問題(缺少卸載HP保護工具) - 您使用的是HP嗎? – Damien 2010-10-19 17:09:47