usb-жд...

Тема в разделе "WASM.WIN32", создана пользователем Cneg, 22 фев 2008.

  1. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    не могу вкурить.. как внешнему usb-жесткому диску послать ata-команду, например identify_device (см. прикр. файл)..? и вообще возможно ли это? насколько я понял из своих неудачных попыток, через usb не получается менять конфигурацию жёсткого диска! нет ни доступа к SMART, ни других возможностей (имеется ввиду ATA_PASS_THROUGH с кодом соответствующей ata команды). все ioctl-запросы возвращаются с ошибкой (лишь только STORAGE_PROPERTY_QUERY возвращает конфигурацию внешнего жд)..
     
  2. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    извиняйте... файл тут -> http://slil.ru/25503911
     
  3. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Пример на asm: http://wasm.ru/src/6/hddid060530.zip
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Низзя такого сделать.
    Разве что драйвер будет эмулировать ATA команды.
    USB винчестер не поддерживает ATA команды, используется SCSI2 завёрнутые в USB Mass Storage пакеты.
    Даже если просто подключить обычный hdd через переходгик USB->IDE, винчестер всё равно не будет на ATA команды отзываться.
    Потому что в переходнике стоит контроллер, который по USB получает SCSI2 команды и сам преобразует в ATA и шлёт винчестеру, а потом точно так же преобразует ответ из ATA в SCSI2.
    Это если от винчестера что-то надо.
    При команде аналогичной IDENTIFY_DEVICE обычно к диску вообще команда не доходит, а контроллер возвращает что-то типа USB2IDE Controller, размер диска татой-то.
     
  5. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    cppasm
    можно поконкретней, например ссылки на инфу.. Насколько я понял из всего сказанного необходимо обращаться к внешнему жёсткому диску как к scsi устройству, но опять таки все попытки послать команды через DeviceIoControl (..., SCSI_PASS_THROUGH,...) успехом не увенчались..
    ?SCSI2 завёрнутые в USB Mass Storage?
     
  6. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Я подробнее не знаю как под Win это делать, я под DOS драйвер для USB Flash/HDD писал.
    А по поводу протокола - описание есть тут: http://www.usb.org/developers/devclass_docs
    Раздел Mass Storage, а конкретно Mass Storage Bulk Only 1.0
    Но это очень низкий уровень, может в Win по-проще можно...