天瑞科技 - 深圳电脑维修,深圳电脑维护,深圳电脑修理, 上门维修电脑,深圳电脑上门维修
天瑞科技,深圳电脑维修,深圳电脑维护
天瑞科技




天瑞电脑公司  正在为您转接...

  Win2000下直接读写磁盘扇区 不少朋友来信问在2000如何写磁盘;我把自已常用的方法告诉大家;如果您不知道我在说什么;您赶快按ALT+F4 别浪费时间。

  本文介绍在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 ;}

                                                                    编辑:电脑专家网

天瑞科技,深圳电脑维修,深圳电脑维护
天瑞科技