使用createfile window下讀寫硬盤數據

 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;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章