闂傚倷娴囬妴鈧柛瀣崌閺岀喖顢涘⿰鍐炬毉濡炪們鍎婚幏锟� (0) +1 闂備浇宕垫慨宥咁吋閸℃浼� (0) +1 闂傚倸鍊搁オ瀛樼閻戣棄绠柨鐕傛嫹 (0) +1
闂傚倷娴囬妴鈧柛瀣崌閺岀喖顢涘⿰鍐炬毉濡炪們鍎查崹鍧楀蓟閻旇 鍋撳☉娅亝鎱ㄩ崶褉鏀芥い鏇炴鐎氾拷闂傚倷绀侀幖顐ゆ偖椤愶箑纾块柛鎰嚋閼板潡鏌涘☉娆愮稇缂備讲鏅犻弻鐔碱敍濠婂喚鏆銈冨劵閹凤拷>>

正在阅读:Win2000下直接读写磁盘扇区Win2000下直接读写磁盘扇区

2004-02-14 09:34 出处:PConline 作者:闻怡洋/译 责任编辑:zwg
Win2000下直接读写磁盘扇区  作者 N/A 原作者姓名 N/A 文章原始出处: http://www.codeguru.com/system/ReadSector.html 正文 闻怡洋译 转载请与作者联系 在NT和2000下,通过CreateFile来打开需要读写的驱动器,ReadFile、WriteFile来进行磁盘读写。 下面的代码演示了,如何读写A驱 /* ----------------------------------------------------- Read Floppy Disk Sector for win NT/2000 reads [numsec] sectors from [head] [track] [sector] -------------------------------------------------------*/ char* ReadSectors(int head, int sector, int track, int numsec) { // getting logical sector from absolute head/track/sector ... //计算扇区位置 int LogicalSector = (sector-1) + (head*SECTORSPERTRACK) + (track*SECTORSPERTRACK*NUMOFHEADS) ; char *buffer ; HANDLE hDevice ; HANDLE hDevice; char* buffer = (char*)malloc (512*numsec); strset ( buffer , ' '); DWORD bytesread ; // getting a handle to the drive a: using // CreateFile () function .... //打开驱动器 \\.\A: hDevice = CreateFile("\\\\.\\A:", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (hDevice == NULL) { MessageBox ("Failed !"); return NULL; } // setting the file pointer to the start of the // sector we want to read . //移动文件指针到需要读取位置 SetFilePointer (hDevice, (LogicalSector*512), NULL, FILE_BEGIN); // reading sector(s) ... //读数据 if (!ReadFile ( hDevice, buffer, 512*numsec, &bytesread, NULL) ) { /* int err; char error[10]; err=GetLastError (); itoa (err, error, 10); MessageBox (error, "Reading sectors ...Failed "); return NULL ; */ } //关闭 CloseHandle(hDevice); return buffer ; } 点击下载源代码

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倷绀佺紞濠傖缚瑜旈、鏍幢濡炵粯鏁犻梺閫炲苯澧撮柟顔款潐閹峰懘宕ㄦ繝鍌欐樊婵犵妲呴崑鎾诲箯閿燂拷闂傚倷鐒﹂幃鍫曞磿閹惰棄纾绘繛鎴欏灩閺勩儵鎮橀悙鏉垮珟濞存粍绮撻弻娑㈩敃閿濆棛顦ラ梺鍛婃閹凤拷