1

我在 Kontron 评估板上运行 Windows 7,并且在与他们的驱动程序之一交谈时遇到问题,而没有以管理员身份以提升的权限运行我的应用程序。该驱动程序允许我们读取和写入板上的 GPIO 引脚。在 system32 目录中安装了一个驱动程序和几个 DLL,它们公开了我们用来与驱动程序对话的 API。当我在没有提升权限的情况下运行我的测试应用程序时,初始化板的 API 调用失败。当我以提升的权限运行我的测试应用程序时,API 调用通过。Kontron 驱动程序附带的测试应用程序在运行之前都会提示以提升的权限运行,但我不明白为什么需要提升的权限。

我整个早上都在搜索谷歌试图找到原因,但我找不到任何信息,或者我没有搜索正确的术语。我只是想确定我是否能够绕过以提升的特权运行,或者是否就是这样。那么 Windows 7 对直接访问硬件的驱动程序是否有限制?它与DLL文件的位置有关吗?这与他们安装驱动程序的方式有关吗?这是否与他们构建 DLL 的方式有关?

任何解释我为什么会遇到这种情况的信息都会很棒。

4

1 回答 1

0

根据 Harry 的评论,我查看了 Windows 访问控制列表 (ACL)。设备驱动程序负责设置设备对象的访问权限。在我的情况下,驱动程序似乎在运行时设置它们,因为驱动程序的 INF 文件中没有指定任何安全设置。

以下是一些包含更多信息的链接:

SD、ACL 和 INF:设备对象保护的 IN 和 OUT

超级用户:什么是 Windows ACL?

MSDN:访问控制

MSDN:在设备对象上应用安全描述符

SysInternals:WinObj 工具

于 2012-08-23T13:31:58.733 回答