加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从UMDF驱动程序调用CreateFile时出现“访问被拒绝”错误(C)

发布时间:2020-12-16 07:01:49 所属栏目:百科 来源:网络整理
导读:我正在创建一个UMDF驱动程序,需要改变LCD背光的亮度. 以下代码行在Console App中工作,并成功返回设备的句柄: HANDLE hDevice = CreateFile(L"\.LCD",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0); 但是,当
我正在创建一个UMDF驱动程序,需要改变LCD背光的亮度.

以下代码行在Console App中工作,并成功返回设备的句柄:

HANDLE hDevice = CreateFile(L"\.LCD",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0);

但是,当我在驱动程序中使用完全相同的代码时,它返回INVALID_HANDLE_VALUE,GetLastError()给出代码5,即“访问被拒绝”

使用标准WDKRemoteUser配置文件在x64 Windows 7计算机上远程调试驱动程序.

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

解决方法

听起来好像你需要 impersonate the drivers client.

UMDF drivers typically run under the LocalService account and cannot
access files or resources that require user credentials,such as
protected files or other protected resources. A UMDF driver typically
operates on commands and data that flow between a client application
and a device. Therefore,most UMDF drivers do not access protected
resources.

The framework provides an impersonation capability that allows drivers to impersonate the driver’s client and obtain the client’s access rights to protected resources.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读