• 大小: 6KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: C/C++
  • 标签: C++扇区  

资源简介

可从指定编号的扇区开始读取指定个字节的数据,支持硬盘、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

评论

共有 条评论

相关资源