【发布时间】:2019-09-25 05:28:37
【问题描述】:
我正在开发一个安装现有 Windows 驱动程序(.sys 文件)以在运行时创建虚拟 com 端口的应用程序。我想知道是否可以在没有管理员权限的用户的情况下安装这样的驱动程序。
我了解如果我将驱动程序相关信息存储在注册表中的 HKEY_CURRENT_USER 而不是 HKEY_LOCAL_MACHINE 这不需要管理员权限,并且我的应用程序在运行时创建和销毁端口是有益的,因此不需要端口永久创建。
一些快速测试表明,在没有以管理员权限运行时,对函数 SetupDiCreateDeviceInfo() 的调用会失败并显示“错误 5 - 访问被拒绝”。有没有办法解决这个问题?
谢谢。
PS。我希望这个问题足够清楚,但是,如果不是这种情况或需要代码示例,请告诉我。
【问题讨论】:
-
内核驱动程序可以不受限制地访问系统。因此,修改“HKLM\System\CurrentControlSet\Services”,即安装它们的密钥,需要管理员访问权限。对于 SeLoadDriverPrivilege,直接加载驱动程序还需要管理员权限。
-
这就是我的怀疑。非常感谢您澄清这一点。
标签: windows device-driver admin-rights