1

我正在为自定义 USB 设备编写 Windows 设备驱动程序,但是当用户程序作为域用户运行时,我无法从我的用户程序(使用 CreateFile)打开设备。如果我以本地用户或管理员(或“运行身份”管理员)身份运行,我可以正常打开驱动程序,但作为域用户GetLastError返回 5(拒绝访问)。

我原本本地用户也有这个问题,发现我必须在.inf文件中添加以下SDDL条目,这解决了本地用户的问题:

HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)(A;;GRGW;;;BU)

从这个参考: http: //msdn.microsoft.com/en-us/library/windows/hardware/ff563667 (v=vs.85).aspx

当我发现域用户没有访问权限时,我认为只需将他们添加到此 SDDL 条目即可授予他们访问权限,但它似乎不起作用:我仍然拒绝访问。我什至尝试过极端的解决方案,例如为所有用户(所有人(WD)、未经身份验证的用户等)提供完全访问权限,但这也不起作用,这让我认为问题出在其他地方;即其他东西拒绝域用户访问,这优先于驱动程序 inf 中 SDDL 条目中的许可。

所以我的问题是,让域用户(或所有用户)访问连接到驱动程序需要什么?或者有没有其他解决这个问题的方法(比如连接驱动作为服务,然后从用户程序访问这个服务)?

4

1 回答 1

0

HKR,,Security,,"D:P(A;;GA;;;WD)"

设置每个人都可以访问,试试吧!

于 2016-05-06T08:52:04.640 回答