首页
社区
课程
招聘
[求助]VISTA系统管理员登陆动态加载驱动问题。
发表于: 2007-11-10 13:15 7027

[求助]VISTA系统管理员登陆动态加载驱动问题。

2007-11-10 13:15
7027
如果说驱动要有数字签名才容许加载,否则系统会提示。但问题是连加载器默认方式启动都无法加载带有数字签名的驱动,已经是管理员登陆的情况下,结果还要鼠标右键特别选择 管理员特权运行,或者文件属性改为管理员权限属性,这样一来岂不是让用户摸不到头脑。管理员模式直接启动,还是有一部分R3函数被限制,开启服务,创建,启动等函数。如何解决这个问题?

语言表达没清楚,简单说是,管理员身份登陆系统,一部分RING3函数还是被限制,驱动加载程序还是需要特别选择 管理员特权 运行,直接点击是不会加载带有数字签名的驱动,换言之就是直接运行,还是有一部分RING3函数被限。可能这是UAC的一种特性,但事实上,测试的那个VSITA好像也关闭掉了UAC,所以这是让我感到怪异的保护模式。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
关注………………
2007-11-10 13:22
0
雪    币: 108
活跃值: (141)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
3
打个广告http://netroc682.spaces.live.com/blog/cns!B5DFB0F15D61E843!126.entry
简单来说,如果UAC是打开的,那么不管你驱动有没有签名,动态安装都需要管理员权限,因为和Service相关的函数需要。如果UAC关闭,动态安装的操作应该和XP下是一样的。
为了改善用户体验,一般有两个途径:
1、把你需要权限提升的模块作为单独程序,并且在manifest中标注需要权限,或者在模块名、资源等中间包含关键字。例如安装驱动的操作,可以由单独外部程序来做,在你需要动态更新的时候,就ShellExecute它,这样会自动弹出提升权限的确认对话框(要注意的是使用CreateProcess是直接失败,而不是要求权限,用CreateProcess的办法还在研究中……)。
2、使用COM组件。运行中提升权限可以将需要权限的代码放到一个COM组件中,可以运行时要求权限。这个没有实际做过,主要是讨厌COM。可以参考下MS的文档。
以上两个方法都是会谈出确认窗口的,由于安装卸载驱动的操作一般都比较少,隔离开之后你的主程序就不用每次都需要权限,也避免把用户搞得晕头转向。
2007-11-29 12:09
0
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
给M$钱,做HQTL啥的,就可以拿个数字签名,以后写驱动的苦了。
2007-11-29 13:22
0
游客
登录 | 注册 方可回帖
返回
//