|
Почему USB-устройство перезагружает WINDOWS, Ну почему же ж? |
|
|
|
Jul 2 2007, 08:51
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687

|
Почему USB перезагружает WINDOWs ? Какие вообще есть конфликты между USB-устройствами и Windows'ом? Хоть бы ссылочку какую-нибудь получить. Разрабатываемое устройство перезагружается в самом начале, когда устройство программно отключается от питания(шины USB), а затем включается.  [font=Arial] Если устройство до этого не было подключено (кабель), то при подключении не перезагружает Windows(хотя процедура программного включения-выключения всё равно выполняется).
|
|
|
|
|
Jul 2 2007, 10:21
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687

|
Цитата(TailWind @ Jul 2 2007, 13:05)  Это у Вас что-то с драйвером. Драйвер Windows'овский Вы писали: ......Если USB device что-либо неправильно посылает host'у Но тогда устройство не определилось бы или не включилось, выдало бы в диспетчере устройств код ошибки Мне бы ссылочки......ссылочки.....вот было бы хорошо-то как а?
|
|
|
|
|
Jul 2 2007, 12:22
|
Участник

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687

|
То что проблема с железом это понятно. Вопрос был в том какая проблема. Поэтому я и написал что драйвер стандартный Windows'a и к нему вопроса быть не может.
А ссылки нужны по самой Windows. В часности почему она позволяет постороннему устройству себя перезагружать и не выдаёт при этом каких-нибудь предупреждений? Да и вообще - почему перезагружается Windows?
Свою проблему я уже решил. Но решение ещё более запутало. Оказывается я ставил слишком большое значение поля wMaxPacketSize в дескрипторе конечной точке. Даже и не знаю что думать. Может компьютер слишком слабый, а может во мне проблема?
То что проблема с железом это понятно. Вопрос был в том какая проблема. Поэтому я и написал что драйвер стандартный Windows'a и к нему вопроса быть не может.
А ссылки нужны по самой Windows. В часности почему она позволяет постороннему устройству себя перезагружать и не выдаёт при этом каких-нибудь предупреждений? Да и вообще - почему перезагружается Windows?
Свою проблему я уже решил. Но решение ещё более запутало. Оказывается я ставил слишком большое значение поля wMaxPacketSize в дескрипторе конечной точке. Даже и не знаю что думать. Может компьютер слишком слабый, а может во мне проблема?
|
|
|
|
|
Jul 3 2007, 08:11
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(oran-be @ Jul 3 2007, 11:45)  Подпись "Мелклсофт сорп." такая же виртуализация, как и вся память в РС  На самом деле самая объемная часть системы - это хост контроллер, а его драйвер пишется непосредственно с учетом железа материнки. А кем же пишутся дрова распространенные на Асус или какой нить Элттгруп как не производителями - теми же китайцами? Так что я тоже думаю, что причина в драйвере, в котором не предусмотрен вариант какой-то некорректной ситуации и его писатели не предусмотрели обработчик, который корректно выводит систему из нее. Самое простое убедится в этом - попробовать на другой машине с другим железом. А решение - либо поискать другой драйвер, либо методом тыка обойти некорректные безвыходные ситуации. У USB аппаратные интерфейса хостов стандартизованы. Всего три варианта, два для USB 1.1, один - для USB 2.0. Драйвера для них писаны Майкрософтом. Драйвера довольно кривые. Возможно, лучше чем у многого китайского железа - но, тем не менее, багов в них исправлена было очень много. Вообще, с драйверами у Майкрософтов длительное время было плохо - достаточно было порыться в примерах из DDK, чтобы это понять. В последнее время ситуация улучшалась. Что касается перезагрузки системы при неправильной работе USB устройства - про это слышал давно. Многие драйвера не проверяют корректность работы устройства, считая, что железу можно доверять. Вроде бы, система может слететь даже если USB железяка некорректно выдала строковый дескриптор. Для отладки может быть полезно подключить kernel debugger через RS-232 и даже поставить checked build операционки.
--------------------
Пишите в личку.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|