Win10 64bit系统中使用SCardEstablishContext返回0x8010001D

mf1983 2021-03-08 07:18:13
在win7 64bit下使用vs2019开发项目,其中有枚举PCSC读卡器并动态监视设备插拔的需求。
使用SCard这套API实现的设备枚举功能,在win7 64bit及win10 32bit上都没有问题。
当运行在Win10 64bit系统上时程序枚举不到PCSC读卡器。
搭建开发环境后发现SCardEstablishContext函数返回0x8010001D,查询错误码发现是smart card resource mananger没有启动
右键编译后exe文件以管理员身份运行也是同样的错误。
找到一个帖子:
https://docs.microsoft.com/zh-cn/archive/blogs/alejacma/scardestablishcontext-fails-with-scard_e_no_service-error
分析问题说:

SCardEstablishContext API is returning that error because it gets an Access Denied error when trying to open an event called "Global\Microsoft Smart Card Resource Manager Started" with OpenEvent API. The default security for that event on Vista and Windows 7 specifies that only SYSTEM, LOCAL SERVICE and INTERACTIVE users have access to it. NETWORK SERVICE or non-interactive users won’t be able to access the event.

Enabling "Allow service to interact with desktop" won't help.

按照帖子上的说明AddAceToObjectsSecurityDescriptor也失败,提示没有权想

有没有人遇到同样的问题?怎么解决的?

...全文
1404 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
piplu 2021-09-15
  • 打赏
  • 举报
回复

我也遇到同样的问题,请问楼主这个问题解决了吗? 可否分享一下解决方法。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧