python读写磁盘扇区数据_C++-如何直接读取Windows磁盘扇区的数据?
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);
}
python读写磁盘扇区数据_C++-如何直接读取Windows磁盘扇区的数据?相关推荐
- linux下读取ntfs数据,在Linux中读取NTFS分区上的数据
在Linux中读取NTFS分区上的数据 在有些情况下,系统需要访问本地NTFS分区上的数据,也可能需要访问网络上NTFS文件格式的数据.而使用mount -t挂载文件系统时,系统报告不支持NTFS错误 ...
- MATLAB中把Excel数据矩阵化,excel将表格数据矩阵-MATLAB怎么读取EXCEL中矩阵形式的数据,并存放在一......
求EXCEL表格高手,如何在已知矩阵中,符合矩阵内条... =SUM((B$8=TRANSPOSE(OFFSET($B$1:$C$1,MATCH($A9,$A$2:$A$6,),)))*1) 数组公输 ...
- matlab批量导入excel表格数据,matlab导入excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......
如何用matlab读取多个excel表格数据,将每个表格数... 一xlsread()函数,比import简单的多,具体语句:A = xlsread('yourfilename.xls')望高手支招! ...
- matlab批量合并表格数据,用matlab合并excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......
用matlab如何识别excel里的单元格是否为合并单元格 方法如下: 使用函数xlsread读取单个文件. num=xlsread(filename) filename是单引号括起来的带路径的文件名 ...
- 【量化投资】02.数据接口初探——excel读取新浪股票api数据
[目标] 使用vba程序获取新浪股票api的实时行情数据.K线,以及macd等技术指标数据. [新浪api介绍] 获取实时行情数据接口,http://hq.sinajs.cn/list=sz0022 ...
- listview显示mysql数据_C#在listview控件中显示数据库数据
一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...
- python读取文本数据保存为excel_python 读取txt中每行数据,并且保存到excel
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- Python读写文件(txt, csv等)小结
参考文章:python文件读写小结 - 周洋 - 博客园 Python读取文件的几种方法 - poowicat - 博客园 python读取文件 - 刘丧失 - 博客园 Python File(文件) ...
- python读写压缩文件使用gzip和bz2
python读写压缩文件使用gzip和bz2 #读取压缩文件 # gzip compression import gzip with gzip.open('somefile.gz', 'rt') as ...
最新文章
- 职称计算机证是继续教育的内容吗,豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~...
- Win7与其它Windows的双系统问题
- linux怎么知道ping命令,教程方法;通过ping命令查看服务器类型(linux还是windows系列)电脑技巧-琪琪词资源网...
- 基于嵌入式linux的数码相框的设计,基于Linux NFS的Web数码相框设计
- RiPro子主题V8.0 – V8.1,开心版
- 基于JAVA+SpringMVC+Mybatis+MYSQL的仿百度网盘系统
- 约数之和(分治,公式变形)
- [APK签名] .pk8、.x509.pem转化为.keystore签名
- 徽州区数字城管平台智慧管理城市
- C语言输入某年某月某日,判断这一天是这一年的第几天(含判断闰年)
- 3个基于 Spring Boot 的图片识别处理系统
- 幼儿园保育员好吗 就业前景如何
- Consul Sessions
- Jmeter dubbo插件测试dubbo接口
- turtle的函数及使用
- android平板开发板,基于ARM Cortex A9开发板平板电脑实战项目
- MS Visio软件的XML文档结构
- 从月薪3000 到 IBM 高级顾问:时间管理助力开挂的人生
- PathAFL论文阅读+源码分析
- 关于高德地图定位到非洲