读取磁盘第一个扇区上的内容

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:17:50
这是一段实现读取磁盘第一个扇区第一个字节上内容的代码,本来这个字节的内容应该为“33”,结果却是“20”。麻烦各位高手给看下,看问题出在哪儿了,顺便给出解决方案。
#include<windows.h>
#include<iostream.h>
#define headPerCylinder 1023
#define sectorPerhead 63

char * ReadSectors(int logicalSector);
//为扇区号,

int main()
{
char *text=ReadSectors(0);
HANDLE filehandle = CreateFile("002",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
DWORD byteswrite;
WriteFile(filehandle,
text,
1,
&byteswrite,
NULL);
system("pause");
return 0;

}

char * ReadSectors(int logicalSector)
{
//函数内参数是本扇区在本盘面上的相对编号
char *buffer=(char*)malloc(1);
strset(buffer,' ');
//strset功能: 将一个串中的所有字符都设为指定字符
DWORD bytesread;
char devName[] = "\\\\.\\PHY

ReadFile(hDevice, //要读的文件句柄
buffer, //存放读出内容
1, //要读的字节数
&bytesread, //实际读取字节数
NULL);

ReadFile 根本没有读到数据,实际读取字节数 bytesread = 0;所以buffer中存放的是初始值' ',码值即0x20.