4

我正在创建一个需要更改 LCD 背光亮度的 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,即“访问被拒绝”

正在使用标准 WDKRemoteUser 配置文件在 x64 Windows 7 机器上远程调试驱动程序。

有谁知道问题可能是什么?我是否需要设置权限,如果需要,如何设置?

4

1 回答 1

2

听起来好像您需要模拟驱动程序客户端。

UMDF 驱动程序通常在 LocalService 帐户下运行,并且无法访问需要用户凭据的文件或资源,例如受保护的文件或其他受保护的资源。UMDF 驱动程序通常对在客户端应用程序和设备之间流动的命令和数据进行操作。因此,大多数 UMDF 驱动程序不访问受保护的资源。

该框架提供了一种模拟能力,允许驱动程序模拟驱动程序的客户端并获得客户端对受保护资源的访问权限。

于 2012-10-25T09:41:33.080 回答