在 windows 2000 中,可以使用creatfile and deviceiocontrol 来控制硬盘的读写但是,在window 98,creatfile 好像不管用,那么应该使用那个函数

解决方案 »

  1.   

    2000下面,disk是一个标准设备,但是9x的内核和2000不一样,所以你打算像win2000那样操作是不行的,我做过这方面的驱动,做完2000,再作98版的时候,是多么的生气啊,要是一样,我不就省心了你要是打算format ,读写扇区的话,可以createfile系统的vwin32,然后用deviceiocontrol和它通信,它会提供你各种需要的服务(自己查msdn的说明就行了)
      

  2.   

    我在MFC中这样写,对于软盘读写均可以,但是对于硬盘或者USB硬盘,写操作遭到win98拒绝,那么我应该怎么去做???CreateFile("\\\\.\\vwin32", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL);bResult = DeviceIoControl(hDevice,VWIN32_DIOC_DOS_INT25,&reg,sizeof(reg),&reg,sizeof(reg),&cb,0);fResult = DeviceIoControl(hDevice, VWIN32_DIOC_DOS_DRIVEINFO,
    &reg, sizeof(reg),
    &reg, sizeof(reg), &cb, 0);
      

  3.   

    对于硬盘的读写操作,精华版里有很详细的帖子,可以去搜索一下。一般而言,最彻底的方法是使用thunk技术来做硬盘的读写,其它如INT25/26,VXD都是不彻底的;INT25/26只能读写逻辑盘,对于物理硬盘无效;VXD只能在保护模式下用,当由于某种原因出现DOS兼容方式或在安全模式下,VXD就失灵了。因此,使用THUNK技术是唯一的方法。具体原因可以看
    MSDN Library - Q137176。