资源简介
可从指定编号的扇区开始读取指定个字节的数据,支持硬盘、U盘和SD卡的数据读取。
代码片段和文件信息
#include
#include
#include
#include
#include se.h>
//以下是读取硬盘扇区函数
int ReadPhysicalSector(unsigned long SectorStart unsigned long SectorCount unsigned char *p)
{
unsigned long BytesPerSector = 512;
unsigned long nBytes;
char Drive[] = “\\\\.\\PHYSICALDRIVE0“;
int result = 0;
HANDLE hDeviceHandle = CreateFile(DriveGENERIC_READFILE_SHARE_READNULLOPEN_EXISTING00);
if(hDeviceHandle)
{
long pointer;
long phigh;
pointer = SectorStart;
pointer = pointer*BytesPerSector;
phigh = pointer>>32;
SetFilePointer(hDeviceHandle(unsigned long)pointer&phighFILE_BEGIN);
if(ReadFile(hDeviceHandlepSectorCount*BytesPerSector&nBytesNULL))
result = 1;
CloseHandle(hDeviceHandle);
}
return result;
}
//主函数调用
int main(int argc char* argv[])
{
unsigned long SectorStart = 0; //比如我要读的是编号为的那个扇区开始的数据这里写
//如果读的是从第扇区开始后的数据这里就写
unsigned long SectorCount = 1; //读多少个扇区这里是个
unsigned char p[512]; //一个扇区数据量是字节呀
int i;
ReadPhysicalSector(SectorStartSectorCountp);
//输出的
for(i=0;i<512;i++)
{
printf(“%02X “p[i]);
if(i%26 == 0)
{
printf(“ “);
}
}
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-09-23 09:42 ReadHddSector\
目录 0 2008-04-08 17:03 ReadHddSector\Debug\
文件 1456 2008-04-08 14:40 ReadHddSector\ReadSector.c
文件 3447 2008-04-08 14:02 ReadHddSector\ReadSector.dsp
文件 543 2008-04-08 14:36 ReadHddSector\ReadSector.dsw
文件 33792 2008-04-08 14:49 ReadHddSector\ReadSector.ncb
文件 48640 2008-04-08 14:49 ReadHddSector\ReadSector.opt
文件 754 2008-04-08 14:35 ReadHddSector\ReadSector.plg
- 上一篇:基于Qt的学生报账系统
- 下一篇:VC++课程设计一 福彩游戏(代码和报告)
评论
共有 条评论