通过DeviceIoControl中的IOCTL_DISK_GET_PARTITION_INFO功能获得某个分区的信息,与通过DeviceIoControl中的IOCTL_DISK_GET_DRIVE_LAYOUT功能获得的IDE(本地磁盘)各个分区的信息比较,可以区别移动硬盘和IDE.
我的问题是:DeviceIoControl只能在有管理员权限的用户下执行,如何能让其在user等非管理员下运行?或者有没有别的函数能完成这一功能??

解决方案 »

  1.   

    特约codewarrior(会思考的草) 参与
      

  2.   

    codewarrior(会思考的草)考研去了,半年不上CSDN了。很怀念呀。
      

  3.   

    如果没有管理员权限,那么连CreateFile都不可以,DeviceIoControl也就无效了。尝试黑掉系统吧。
      

  4.   

    GetDriveType()只能正确识别U盘,无法识别移动硬盘.我已经测试过
      

  5.   

    老大,你真的想黑掉系统?就是把user的权限提升到管理员。有点夸张
      

  6.   

    在user下,好多API没法用,尤其是kernel的东西。不然也不会那么多程序来提高自己的权限。
      

  7.   

    那在User的权限下,有没有别的方法来区分移动硬盘和IDE呢?
      

  8.   

    听说2000下可以用SetupAPI函数族可以实现,而且不需要管理员权限,有人知道怎么做吗?
    欢迎大家积极探讨.
      

  9.   

    它们分别属于不同的设备类吧,不一样的,用setup函数族先枚举接口信息看看。
      

  10.   

    SetupAPI族也是通过查找注册表实现的,2000下记得user是不能直接访问注册表的,因此才有这么一族函数。实在不行写个软驱动吧。