HANDLE hDisk = CreateFile( szDisk,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH ,
NULL );对磁盘操作,用createfile 创建一个handle,
先进行lock 然后 disamount
// lock it
bRet = DeviceIoControl( hDisk,
FSCTL_LOCK_VOLUME,
NULL, 0,
NULL, 0,
&cbRet, NULL );//dismount it
bRet = DeviceIoControl( hDisk,<span style="font-family: Arial, Helvetica, sans-serif;"> FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, &cbRet, NULL );</span>然后就可以进行读写了。
注意,读写磁盘,必段以512倍数的大小来进行,不然会失败。
http://stackoverflow.com/questions/4718657/setfilepointerex-fails-to-read-physical-disk-beyond-size-of-long
本文介绍了如何使用Windows API中的CreateFile函数来创建磁盘句柄,并通过DeviceIoControl函数实现磁盘锁定与卸载的功能。此外,还强调了进行磁盘读写操作时需要注意的数据块大小必须为512的倍数。
5277

被折叠的 条评论
为什么被折叠?



