阅读:2132回复:6
怎样通知系统磁盘的文件系统已经改变?
我写了一个格式化的程序,直接对磁盘的扇区进行操作,达到格式化的目的
但是格式化之后,系统并不认识磁盘的文件系统已经改变了 例如从FAT32->FAT16 那么怎样在不重新插入磁盘的情况下,让系统得到磁盘文件系统已经改变呢? |
|
沙发#
发布于:2007-04-26 08:21
IOCTL_DISK_UPDATE_PROPERTIES
The IOCTL_DISK_UPDATE_PROPERTIES control code invalidates the cached partition table and re-enumerates the device. To perform this operation, call the DeviceIoControl function with the following parameters. BOOL DeviceIoControl( (HANDLE) hDevice, // handle to device IOCTL_DISK_UPDATE_PROPERTIES,// dwIoControlCode NULL, // lpInBuffer 0, // nInBufferSize NULL, // lpOutBuffer 0, // nOutBufferSize (LPDWORD)lpBytesReturned, // lpBytesReturned (LPDWORD) lpOverlapped // lpOverlapped ); |
|
|
板凳#
发布于:2007-04-26 12:26
IOCTL_DISK_UPDATE_PROPERTIES
windows 2000不支持上面的控制码啊 2000上有其他的方法替代不? |
|
地板#
发布于:2007-04-26 14:01
加上下面这一行试试,:-)
#define _WIN32_WINNT 0x500 |
|
|
地下室#
发布于:2007-04-26 18:59
不行啊
驱动返回STATUS_NOT_SUPPORT |
|
5楼#
发布于:2007-04-27 12:10
try to find any way to unmount->mount
|
|
|
6楼#
发布于:2007-04-27 12:39
是啊,我是想找个这样的方法,但是还是没有找到
虽说可以使用FSCTL_DISMOUNT_VOLUME先卸载卷,再由Windows自动装载卷 但是对于RAW格式的分区而言,Mount Mgr开始并没有给它分配卷,也就不能用上面的方法了 |
|