荆州网站建设 松滋网站建设,手机网站建设专业服务公司,html5做网站总结,高邮城乡建设局 网站1.通过CreateFile系列来完成读写扇区可以通过CreateFile打开磁盘逻辑分区#xff0c;还要通过SetFilePointer以文件操作的方式把指针移到要操作的磁盘扇区开始处#xff0c;在定位到要访问的扇区开始位置后就可以通过ReadFile或WriteFile函数实施相应的读写访问了#xff0c…1.通过CreateFile系列来完成读写扇区可以通过CreateFile打开磁盘逻辑分区还要通过SetFilePointer以文件操作的方式把指针移到要操作的磁盘扇区开始处在定位到要访问的扇区开始位置后就可以通过ReadFile或WriteFile函数实施相应的读写访问了具体操作与文件读写并没有什么太大的差别。示例代码BOOL CDirectAccessHDDlg::WriteSectors(BYTE bDrive, DWORD dwStartSector,WORD wSectors, LPBYTE lpSectBuff)// 对磁盘扇区数据的写入{if (bDrive 0) return 0;char devName[] \.\A:;devName[4] A bDrive - 1;HANDLE hDev CreateFile(devName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,OPEN_EXISTING, 0, NULL);if (hDev INVALID_HANDLE_VALUE) return 0;SetFilePointer(hDev, 512 dwStartSector, 0, FILE_BEGIN);DWORD dwCB;BOOL bRet WriteFile(hDev, lpSectBuff, 512 wSectors, dwCB, NULL);CloseHandle(hDev);return bRet;}BOOL CDirectAccessHDDlg::ReadSectors(BYTE bDrive, DWORD dwStartSector,WORD wSectors, LPBYTE lpSectBuff)// 对磁盘扇区数据的读取{if (bDrive 0) return 0;char devName[] \.\A:;devName[4] A bDrive - 1;HANDLE hDev CreateFile(devName, GENERIC_READ, FILE_SHARE_WRITE,NULL, OPEN_EXISTING, 0, NULL);if (hDev INVALID_HANDLE_VALUE) return 0;SetFilePointer(hDev, 512 dwStartSector, 0, FILE_BEGIN);DWORD dwCB;BOOL bRet ReadFile(hDev, lpSectBuff, 512 wSectors, dwCB, NULL);CloseHandle(hDev);return bRet;}2.通过ReadSectors直接读写磁盘扇区数据示例代码if (ReadSectors(uDiskID, m_uFrom, (UINT)dwSectorNum, bBuf) FALSE) {MessageBox(所选磁盘分区不存在, 错误, MB_OK | MB_IConERROR);return;}//为了方便数据的显示可做如下处理以完成格式转换等工作for (DWORD i 0; i dwSectorNum * 512; i) {sprintf(cBuf, %s%02X , cBuf, bBuf[i]);if ((i % 512) 511)sprintf(cBuf, %srn第%d扇区rn, cBuf, (int)(i / 512) m_uFrom);if ((i % 16) 15)sprintf(cBuf, %srn, cBuf);else if ((i % 16) 7)sprintf(cBuf, %s- , cBuf);}