CreateFile( "\\\\.\\PhysicalDrive1", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0 );
文件名中的\\.表示window NT中的一个特殊目录。
硬盘的文件名可以用winobj查找到。 打开winobj软件查看GLOBAL目录。
ReadFile()读取硬盘中的数据,只能按照硬盘的最近扇区(512字节)读取。
WriteFile()写硬盘数据,只能按512字节写入。
SetFilePointer()同lseek功能相同,只能定位到512字节整数倍的位置。
DeviceIoControl命令可以到msdn上查找。
自己封装的一个lseek64
INT64 lseek64( HANDLE v_fd, INT64 v_i64Pos, int v_iType )
{
LARGE_INTEGER li;
li.QuadPart = v_i64Pos;
li.LowPart = SetFilePointer( (HANDLE)fd, li.LowPart, &li.HighPart, iType );
return li.QuadPart;
}