Windows 7 DLL函数需要提升权限

时间:2012-08-22 20:44:55

标签: windows dll driver privileges administrator

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

我一整天都在搜索Google,试图找到原因,但我找不到任何信息,或者我没有找到合适的条款。我只是想确定我是否能够以提升的权限运行或者是否就是这样。那么Windows 7是否限制与直接访问硬件的驱动程序进行通信?它与DLL文件的位置有关吗?它与安装驱动程序的方式有关吗?是否与他们构建DLL的方式有关?

任何解释我遇到这种情况的原因的信息都会很棒。

1 个答案:

答案 0 :(得分:0)

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

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

Of SDs, ACLs & INFs: The INs and OUTs of Device Object Protection

SuperUser: What are Windows ACLs?

MSDN: Access Control

MSDN: Applying Security Descriptors on the Device Object

SysInternals: WinObj tool