Команды ATA для USB-накопителя

Windows 7
Программирование на C
Visual C++ 2008 (в VMWare)

Я хотел бы отправить некоторые команды ATA (IDENTIFY DEVICE, READ NATIVE MAX ADDRESS, SET MAX ADDRESS) с DeviceIOControl на жесткий диск USB. Поэтому у меня есть несколько вопросов.

Насколько я понял, USBSTOR не может напрямую обрабатывать ATA-команды (с IOCTL_ATA_PASS_THROUGH). Я попробовал это, и он работал с родным жестким диском IDE, но не с USB.

  1. Правильно ли, что приложения отправляют SCSI-команды на устройство, и они пересылаются на устройство? Итак, мне нужно создать команду SCSI с соответствующей инкапсулированной командой ATA?

  2. С помощью чего dwIoControlCode я могу это сделать? Я попробовал это с IOCTL_SCSI_MINIPORT, но ошибка была ERROR_NOT_SUPPORTED. Может ли это работать с минпортом? Минипорт актуален?


person toetoe    schedule 12.01.2013    source источник


Ответы (1)


Посмотрите на эту ссылку:

http://www.mombu.com/microsoft/windows-programmer-nt-kernel-mode/t-howto-send-ata-spec-command-to-usb-hdd-1646752.html

В: как отправить спецификацию ATA. команда на жесткий диск USB?

A: Вы ограничены тем, что поддерживает микросхема задней двери (моста) USB->ATA. Если вы управляете мостом, вы можете реализовать все, что захотите. Если вы этого не сделаете, вам придется попросить продавца моста показать, что они поддерживают. См. мои ответы в ветке 1394->ATA на NTDEV для получения дополнительной информации.

Q: Еще раз вопрос: возможно ли получить доступ к каждому диску в SCSI RAID?

A: No.

Вы можете отправлять команды SCSI только на мост/корпус на конце USB-кабеля. Как они транслируются в ATA-команды - не зависит от вас.

Я предполагаю, что корпуса El Cheapo переводят только основные команды SCSI. В этом случае у вас будет только 1) ЗАПРОС SCSI, эмулируемый ATA IDENTIFY 2) SCSI READ CAPACITY, эмулируемый ATA IDENTIFY 2) ЧТЕНИЕ и ЗАПИСЬ 3) VERIFY.

И это все. В этом случае у вас не будет шансов отправить какие-либо нетривиальные ATA-команды, поскольку мост USB-to-ATA на другой стороне не предоставляет возможности сделать это.

person paulsm4    schedule 12.01.2013