-
-
如何隐藏磁盘
-
发表于:
2009-11-11 16:33
7667
-
当插入一个U盘的时候,我想把此U盘隐藏,同时虚拟出一个等大小的虚拟磁盘来操作
对这个磁盘操作就相当于操作U盘
试过用DefineDosDevice来做,可以隐藏。但有一个问题,当隐藏后再显示出来的时候,点击任务栏右下角“安全删除xxx”时有时候卸载成功,有时候失败,失败后磁盘的图标上出来一个红色的问号
用WinObj看了下
假如第一次插入的时候设备名在GLOABL??为\Device\Harddisk1\DP(1)0-0+7
当经过隐藏,再显示出来,此时设备名在Sessions\0\DosDevices\xxxx目录下,显示还是\Device\Harddisk1\DP(1)0-0+7
卸载U盘,再重新插入(这个时候卸载是成功的)
这时候设备名已经在GLOABL??下变成\Device\Harddisk1\DP(1)0-0+9了,而由于卸载U盘的时候没有删除Sessions \0\DosDevices\xxxx目录下的符号链接,导致第二次插入的时候,再去QueryDosDevice 得到的设备名为Sessions\0\DosDevices\xxxx目录下上一次没有删除的设备名\Device\Harddisk1 \DP(1)0-0+7。这时候隐藏磁盘由于设备名不一至而失败,卸载也失败。
可以看出原因基本是由于卸载U盘时没有删掉Sessions\0\DosDevices\xxxx目录下的符号链接导致的
不知道除了这个方法在驱动里面怎么做?
用IRPTrace观察也下没看出什么来
望指点
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课