使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法 分类: 磁盘的扇区读写 2015-04-29 10:50 358人阅读 评论(0) 收藏
2015-04-29 10:50
696 查看
也就是在CreateFile的时候打开文件名指定: “\\.\Device”就可以了.
因为代码比较短, 所以我不做注释, 相信大家看代码就能明白意思了.
另外这里读写的都是软盘A盘第0扇区, 如果想读写其他的扇区, 那么可以使用API SetFilePointer.
读扇区的方法(下面的代码演示从A盘的第0扇区读出数据, 写入到文件BOOT.BIN中):
因为代码比较短, 所以我不做注释, 相信大家看代码就能明白意思了.
另外这里读写的都是软盘A盘第0扇区, 如果想读写其他的扇区, 那么可以使用API SetFilePointer.
读扇区的方法(下面的代码演示从A盘的第0扇区读出数据, 写入到文件BOOT.BIN中):
#include <windows.h> #include <assert.h> #include <stdio.h> void main() { HANDLE hFile; hFile = CreateFile("\\\\.\\A:", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); assert(hFile && "CreateFile failed!"); PBYTE pBuffer = (PBYTE)malloc(512); assert(pBuffer && "Allocate memory failed!"); DWORD dwLen; ReadFile(hFile, pBuffer, 512, &dwLen, NULL); FILE * fp; fp = fopen("boot.bin", "wb"); assert(fp && "Open file failed!"); fwrite(pBuffer, 512, 1, fp); fclose(fp); CloseHandle(hFile); free(pBuffer); } 那么相应的, 写扇区的方法的就是这样的咯(以下代码演示从BOOT.BIN中读出数据写入到A盘第0扇区): #include <windows.h> #include <assert.h> #include <stdio.h> void main() { HANDLE hFile; hFile = CreateFile("\\\\.\\A:", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); assert(hFile && "CreateFile failed!"); PBYTE pBuffer = (PBYTE)malloc(512); assert(pBuffer && "Allocate memory failed!"); FILE * fp; fp = fopen("boot.bin", "rb"); assert(fp && "Open file failed!"); fread(pBuffer, 512, 1, fp); fclose(fp); DWORD dwLen; WriteFile(hFile, pBuffer, 512, &dwLen, NULL); CloseHandle(hFile); free(pBuffer); }
相关文章推荐
- 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法
- 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法
- 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法
- 硬盘的扇面、磁道、扇区 分类: VC++ 生活百科 磁盘的扇区读写 2015-04-29 09:49 408人阅读 评论(1) 收藏
- linux2.6硬盘扇区直接读写程序 分类: 磁盘的扇区读写 2015-04-29 10:37 317人阅读 评论(0) 收藏
- VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术 分类: 磁盘的扇区读写 VC++ 2015-04-29 10:38 357人阅读 评论(0) 收藏
- 不同WINDOWS平台下磁盘逻辑扇区的直接读写 分类: 磁盘的扇区读写 2015-04-29 10:48 341人阅读 评论(0) 收藏
- 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法
- 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法
- 使用CreateFile, ReadFile, WriteFile在Windows NT/2000/XP下读写绝对扇区的方法
- win9x_win2k下对物理磁盘的操作 分类: VC++ 磁盘的扇区读写 2014-08-27 09:55 421人阅读 评论(0) 收藏
- 使用串口下载vxworks映象的方法 分类: vxWorks 2014-04-22 08:51 469人阅读 评论(0) 收藏
- PHP从零单排(十三)使用PHP显示MySQL数据库的数据 分类: PHP 2014-04-30 10:50 344人阅读 评论(0) 收藏
- c语言 中 # ##的使用方法 分类: 嵌入式开发学习 2014-05-23 17:16 141人阅读 评论(0) 收藏
- iOS开发UITableView基本使用方法总结 分类: ios技术 2015-04-03 17:51 68人阅读 评论(0) 收藏
- linux下测试磁盘的读写IO速度 分类: arm-linux-Ubuntu 2015-05-07 11:18 326人阅读 评论(0) 收藏
- 欢迎使用CSDN-markdown编辑器[使用方法备忘] 分类: 杂项 2015-07-07 14:43 10人阅读 评论(0) 收藏
- Cocos2d使用TexturePacker工具打包生成plist和pvr.ccz文件方法总结 分类: cocos2d其他 2015-07-11 09:06 13人阅读 评论(0) 收藏
- 使用urllib2解析html内容,并正常显示中文的方法 分类: python Module 2013-10-31 17:30 294人阅读 评论(0) 收藏
- 使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法 分类: HI3531 arm-linux-Ubuntu 2013-12-07 15:10 697人阅读 评论(0) 收藏