Windows XP 中 ATA 直接通过 SAS 总线
我想向 SAS(SATA 连接 SCSI)总线上的驱动器发送“ATA Pass through Direct”命令。驱动器为SATA驱动器,在Windows XP(x86)环境下。我希望有一个 STP(SATA 隧道协议)层可以将 ATA 命令转换为 STP,以便通过 SCSI 总线发送到我的 SATA 驱动器。但是,当向 Win32 API DeviceIOControl() 发送“ATA Pass through direct”命令时,状态会返回错误“错误函数”。 Windows XP 中是否存在 STP 层,它必须存在,Win32 API Readfile()/Writefile() 可以工作。但是如何获得“ATA Pass through direct”命令以在 SAS 总线上使用 Win32 API?
I want to send a "ATA Pass through Direct" command to a drive that is on the SAS(SATA attached SCSI) bus. The drive is SATA drive, in Windows XP(x86) envirnoment. I hoped there was a STP(SATA Tunneled Protocol) layer that would translate the ATA command to STP to send through SCSI bus to my SATA drive. However, when sending "ATA Pass through direct" command the Win32 API DeviceIOControl(), status returns an error "wrong functions". Does STP layer exists in Windows XP, it must, Win32 API Readfile()/Writefile() work. But how do I get "ATA Pass through direct" command to work with the Win32 API on SAS bus?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果 Windows XP 将驱动器识别为 SCSI,则您必须使用 IOCTL_SCSI_PASS_THROUGH_DIRECT 并使用 SCSI 到 ATA 转换协议来发送所需的 ATA 命令。 SAT 规范可在此处找到。
If the drive is recognized as SCSI by Windows XP, then you will have to use
IOCTL_SCSI_PASS_THROUGH_DIRECT
and use SCSI to ATA translation protocol to send the required ATA Command. SAT specification can be found here.