Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Что делает Windows по USB safe remove?  (Прочитано 5062 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Zuy
Гость
« : 16-07-2009 12:01 » 

Вот возникла такая ситуация.

Есть два внешних USB HDD, подключены к одному компу.
Делаю для обоих безопастное извлечение, винда пишет что устройства можно отсоединять.
При этом один диск остановился и запарковал головки, а второй как крутился так и продолжает.

Вопрос такой. Какие команды или иные воздействия драйверы Windows ( MSD или хост контроллера) посылают устройству при безопастном извлечении.
Почему один из дисков, да и большинство флешек отключаются после этого будто с них питание снимают?
Как они узнают, что надо это сделать?

Пример выше про два HDD приведен к тому, что питание с портов при этом не убирается т.к. один из дисков остался крутиться.

Эта информация нужна, чтобы повторить такое же поведение на собственно писаном драйвере OHCI для встроенного устройства.
Сейчас иногда при отключении питания от флешек имеем их порчу. Хочу сделать что-то типа "безопастного извлечения".

Пересмотрел описания OHCI, спецификации на USB, MSC, SCSI block commands, SCSI primary commands.
нигде не нашел, чтобы был описан механизм снятия питания с USB устройства.

Пробовал смотреть через USBTrace. Увидел только запросы PNP  REQUEST_DEVICE_REMOVE и DEVICE_REMOVE в сторону драйвера USB хоста.
А что он делает дальше так и осталось загадкой.

PS: Был бы признателен если посоветуете какие-нибудь иностранные форумы, где можно задать этот вопрос.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 16-07-2009 12:35 » 

питание c USB не снимается, насколько я понимаю..
остановить диск и погасить лампочку это функции самого устройства. точно так же как можно запарковать диск IDE и выключить его питание для энергосбережения. так что должно быть в SCSI... вроде

Цитата
Пробовал смотреть через USBTrace. Увидел только запросы PNP  REQUEST_DEVICE_REMOVE и DEVICE_REMOVE в сторону драйвера USB хоста.
А что он делает дальше так и осталось загадкой.
- это на верхнем уровне? поставьте что нибудь типа USB Monitor (DMS) от HHD. увидите сами запросы по шине. на сайте - демо версия на две недели была.
« Последнее редактирование: 16-07-2009 12:40 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Zuy
Гость
« Ответ #2 : 16-07-2009 13:50 » 

питание c USB не снимается, насколько я понимаю..
остановить диск и погасить лампочку это функции самого устройства. точно так же как можно запарковать диск IDE и выключить его питание для энергосбережения. так что должно быть в SCSI... вроде

Цитата
Пробовал смотреть через USBTrace. Увидел только запросы PNP  REQUEST_DEVICE_REMOVE и DEVICE_REMOVE в сторону драйвера USB хоста.
А что он делает дальше так и осталось загадкой.
- это на верхнем уровне? поставьте что нибудь типа USB Monitor (DMS) от HHD. увидите сами запросы по шине. на сайте - демо версия на две недели была.

В наборах команд SCSI такого нет, я пересмотрел, да  и дело в том, что уровень Mass Storage Device и его команды любой монитор USB видит и хорошо показывает эти команды.
Поставил USB Monitor, яснее дело не стало. Вот что его владки показывают после безопастного отключения:
USB Packet View: 00000062   16.07.2009 16:39:33.941 +0.009   UP   UP   PnP: Device Disconnected
USB URB View: 000062: PnP Event: Device Disconnected (UP), 16.07.2009 16:39:33.941 +0.009
Mass storage view: тут вообще ничего нет т.к. показываются только CBW и CSW, а их небыло.

Я вот все больше думаю, что может это хаб как-то рулит своими портами и вводит их в такое состояние, при котором подключенный к порту девайс понимает, что порт уже отключен. Возможно ли такое?

Жаль, что знаний не хватает посмотреть драйверы в линуксе, что там происходит по размонтированию USB флешек Жаль
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines