CreateFile操作驱动器的权限问题

mqchange 2015-04-30 01:28:58
开发环境:win7 64位
开发工具:VS2010
开发背景:AxtiveX插件(DLL项目)
问题描述:
在使用C++代码获取硬盘序列号的时候,使用到了CreateFile函数。主要用到了CreateFile、DeviceIoControl函数。把关键代码提取到一个Win32工程下时:
问题1:生成的exe程序,可以在本机直接双击运行获取到序列号,但是在别的机器就需要使用管理员权限(XP系统除外),是为什么?
问题2:如果是exe程序: 可以设置UAC的执行级别为administrator,或者右键使用管理员权限运行,获取序列号。但是如果要在DLL工程中怎么办? (**现在的目的就是想如何在代码里实现普通用户操作驱动器的问题(不考虑XP)?**)
说明:
尝试使用过 http://bbs.csdn.net/topics/250018148 的解决方案没有解决问题,也尝试在代码里提权(AdjustTokenPrivileges),也没有解决问题。
...全文
420 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vaintwyt 2015-05-04
  • 打赏
  • 举报
回复
我之前也遇到过类似的问题,当时的做法是: DLL(普通权限)-> COM组件(exe) 然后在COM组件里面去操作驱动。这样可以解决DLL直接操作驱动,需要管理员权限的问题。 楼主说的问题1,有点疑惑,为啥在别的机器,就需要管理员权限?
赵4老师 2015-04-30
  • 打赏
  • 举报
回复
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧