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;
}