阅读:1745回复:4
请教:diskperf过滤驱动改装隐藏磁盘容量的问题。
目前想隐藏硬盘最后一部分容量,即最后一部分对系统不可见。
现在假设让系统只能看到前1/2的容量,包括各种在Windows系统上运行的分区软件。 在diskperf中DbgPrint看到系统刷新磁盘信息时只调用了下列IO Control IOCTL_DISK_GET_DRIVE_GEOMETRY IOCTL_DISK_GET_DRIVE_LAYOUT IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL_DISK_GET_PARTITION_INFO_EX IOCTL_SCSI_GET_ADDRESS IOCTL_STORAGE_GET_DEVICE_NUMBER IOCTL_STORAGE_GET_HOTPLUG_INFO IOCTL_STORAGE_GET_MEDIA_TYPES_EX IOCTL_STORAGE_PREDICT_FAILURE IOCTL_STORAGE_QUERY_PROPERTY 我现在的做法是用diskperf来过滤,在 IOCTL_DISK_GET_DRIVE_GEOMETRY IOCTL_STORAGE_GET_MEDIA_TYPES_EX IOCTL_DISK_GET_LENGTH_INFO IOCTL_DISK_GET_DRIVE_GEOMETRY_EX IOCTL_DISK_GET_MEDIA_TYPES IOCTL_STORAGE_GET_MEDIA_TYPES IOCTL_STORAGE_GET_MEDIA_TYPES_EX 中将Cylinders减半。 现在用运行于Windows上的Partition Magic已经只能看都磁盘容量减半了, 但Windows自带的磁盘管理员(diskmgmt.msc)却还是看到原有的容量。 (大致看了一下,磁盘管理员好像是调用本机的Logical Disk Manager Administrative Service这个DCOM组件来读取信息的, 用Depends查看了这个DCOM组件程序dmadmin.exe,他也调用了DeviceIoControl,但不知他是否还从别的途径拿磁盘信息了?) 请问各位兄弟有做过类似的东西吗? 我需要如何才能让磁盘管理员也看到我减半后的容量? |
|
沙发#
发布于:2009-02-21 16:27
我现在也遇到这个问题,请问有人能告知为何吗?
|
|
板凳#
发布于:2009-02-23 15:13
这种方法不行,得用LOW。。。
|
|
|
地板#
发布于:2009-03-02 15:13
感兴趣
|
|
|
地下室#
发布于:2009-03-08 00:14
这个问题我已解决了。
Windows自带的磁盘管理器是用IOCTL_DISK_GET_PARTITION_INFO /I OCTL_DISK_GET_PARTITION_INFO_EX来确定磁盘大小的。 因此还需要在diskperf的DeviceIoControl中修改对磁盘本身(\Device\Harddisk0\DR0之类,也就是Partition0)所执行的IOCTL_DISK_GET_PARTITION_INFO /I OCTL_DISK_GET_PARTITION_INFO_EX返回值。 |
|