网页功能: 加入收藏 设为首页 网站搜索  
Win2000下直接读写磁盘扇区
发表日期:2002-10-25作者:[] 出处:  

在NT和2000下,通过CreateFile来打开需要读写的驱动器,ReadFile、WriteFile来进行磁盘读写。

下面的代码演示了,如何读写A驱

/* -----------------------------------------------------

Read Floppy Disk Sector for win NT/2000

reads [numsec] sectors from [head] [track] [sector]

-------------------------------------------------------*/

char* ReadSectors(int head, int sector, int track, int numsec)

{

// getting logical sector from absolute head/track/sector ...

//计算扇区位置

int LogicalSector = (sector-1) +

(head*SECTORSPERTRACK) +

(track*SECTORSPERTRACK*NUMOFHEADS) ;

char *buffer ;

HANDLE hDevice ;

HANDLE hDevice;

char* buffer = (char*)malloc (512*numsec);

strset ( buffer , ' ');

DWORD bytesread ;

// getting a handle to the drive a: using

// CreateFile () function ....

//打开驱动器 \\.\A:

hDevice = CreateFile("\\\\.\\A:",

GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL, OPEN_EXISTING, 0, NULL);

if (hDevice == NULL)

{

MessageBox ("Failed !");

return NULL;

}

// setting the file pointer to the start of the

// sector we want to read .

//移动文件指针到需要读取位置

SetFilePointer (hDevice,

(LogicalSector*512),

NULL,

FILE_BEGIN);

// reading sector(s) ...

//读数据

if (!ReadFile ( hDevice,

buffer,

512*numsec,

&bytesread,

NULL) )

{

/*

int err;

char error[10];

err=GetLastError ();

itoa (err, error, 10);

MessageBox (error, "Reading sectors ...Failed ");

return NULL ;

*/

}

//关闭

CloseHandle(hDevice);

return buffer ;

}

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 Win2000下直接读写磁盘扇区
本类热点文章
  获取网卡MAC、硬盘序列号、CPU ID、BIO..
  获取硬盘的详细信息
  Windows NT/2000下不用驱动的Ring0代码..
  VC++通过汇编获取代码运行时间
  Win2000下直接读写磁盘扇区
  Win2K下的Api函数的拦截
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2019 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00611