我正在创建一个UMDF驱动程序,它需要改变液晶背光的亮度。
以下代码行在控制台应用程序中工作,并成功地返回设备的句柄:
HANDLE hDevice = CreateFile(L"\\\\.\\LCD", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);但是,当我在驱动程序中使用完全相同的代码时,它返回INVALID_HANDLE_VALUE,GetLastError()给出代码5,即‘访问被拒绝’
驱动程序正在使用标准的x64 WDKRemoteUser配置文件在Windows 7计算机上远程调试。
有人知道问题出在哪里吗?我是否需要设置权限,如果需要,如何设置?
发布于 2012-10-25 09:41:33
听起来好像你需要模拟驱动程序客户端。
UMDF驱动程序通常在LocalService帐户下运行,无法访问需要用户凭据(如受保护文件或其他受保护资源)的文件或资源。UMDF驱动程序通常对客户端应用程序和设备之间的命令和数据进行操作。因此,大多数UMDF驱动程序不访问受保护的资源。 该框架提供了模拟功能,允许驱动程序模拟驱动程序的客户端,并获得客户端对受保护资源的访问权限。
https://stackoverflow.com/questions/13052684
复制相似问题