rt,我用DeviceIoControl发命令访问硬盘控制码是IOCTL_ATA_PASS_THROUGH但是无效,同样的代码在XP下是可以正常运行的,想问下各位是不是2000系统下就根本不支持DeviceIoControl方法?我自己的分析可能是IOCTL_ATA_PASS_THROUGH这个控制码是无效的, MSDN上说是 IOCTL_ATA_PASS_THROUGH在windows2003及以后的版本中才有效。如果真的不能用了,我要想在2000下发ATA命令可以用什么方法来代替呢?

解决方案 »

  1.   

    win2000同样支持DeviceIoControl函数,可能他的硬盘相关驱动不处理IOCTL_ATA_PASS_THROUGH
      

  2.   

    这个还真没试过,看看GetLastError的返回值是什么
      

  3.   

    返回ERROR_INVALID_FUNCTION那就是不支持了
      

  4.   

    那有没有什么方法可以代替DeviceIoControl ,难道2000中我就不能发ATA命令了?
      

  5.   

    我现在可以确定了是IOCTL_ATA_PASS_THROUGH这个控制码在2000下好像不支持,DeviceIoControl方法没有问题,大家有知道在2000下我要发ATA命令有什么方法可以替换DeviceIoControl方法的吗
      

  6.   

    哎, 真是非常的愁人。
    Win7都出来了,还要继续对2k进行支持……2k时代有没有ata命令?没有的话,就只能自己写驱动来实现了……
    或者SCSI命令?刚看到有一个 SCSI 转 ATA的,我想SCSI应该比ATA老。