|
|
  |
два устройства один драйвер, usbbulk |
|
|
|
May 18 2011, 20:13
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(Тёмыч @ May 17 2011, 18:36)  ...Драйвер беру из NTDDK - bulkusb.sys... Ведь есть готовые универсальные драйверы libusb-win32 или WinUSB. Зачем мучить себя написанием собственного драйвера?
|
|
|
|
|
May 19 2011, 09:12
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
Даже не знаю, что и ответить... Ну, чтоб уметь, наверное! А если мне не универсальный нужен?
|
|
|
|
|
May 20 2011, 19:56
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
Если кому интересно, то причина моей проблемы крылась в настройках компиляции ддкшного драйвера. Синий экран подсказал)
|
|
|
|
|
May 22 2011, 12:51
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
Компиляция под дебаг (chk) при возникновении assertов требовала дебаггера, о чем говорил номер ошибки в синем экране. В free версии все работает, хотя не плохо было бы узнать, что за assert (или breakpoint) срабатовал и требовал отладчика для продолжения работы. Буду продолжать эксперименты)
|
|
|
|
|
May 22 2011, 20:04
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
А я на локальной машине DbgView использовал, он то может что-то и показывал, только я этого не видел. Для меня вывод один: kerel-mode отладку надо вести на сторонней машине.
С версиями DDK и Wndows я разобрался
Сообщение отредактировал Тёмыч - May 22 2011, 20:05
|
|
|
|
|
May 23 2011, 07:46
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
Все накрывалось сразу и ни в каком дебагвью не успеешь посмотреть (так как он на той же машине был запущен). Включил отображение синего экрана. Выяснилось. что ошибка 0x7E -> 0x80000003: STATUS_BREAKPOINT indicates a breakpoint or ASSERT was encountered when no kernel debugger was attached to the system. Вывод: надо подключать внешний отладчик, либо компилить без ассертов этот драйвер. Что ж я тут не правильно излагаю?
|
|
|
|
|
May 23 2011, 09:19
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Я не говорил ни слова про "неправильно", а говорил "про непонятно". ASSERT - чистая диагностика. Как правило, вылавливание неинициализированных переменных, выход за границы массивов, попытки чтения/записи по NULL указателю. Вариантов, на мой взгляд, два: 1. Неудачно реализован сан assert. 2. На самом деле ошибка, которую вылавливал assert, как была, так и осталась, только пока это не приводит к экрану смерти. Хотя и странно это.
|
|
|
|
|
May 23 2011, 09:31
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
Верно, я понимаю, что вызов ассерта не есть хорошо. Поэтому буду экспериментировать с отладчиком. Хотя возможно это был чисто отладочный (тестовый) брейкпоинт от Майкрософт.
|
|
|
|
|
May 24 2011, 13:37
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 17-05-11
Пользователь №: 65 069

|
Цитата Большие сомнения про breakpoint. Откуда он может взяться? Его именнo в отладчике только и можно установить. Как понимаю, нет отладчика, нет и breakpoint'a. Ну почему же? Можно из драйвера передать управление отладчику, как раз такая штука в этом драйвере (bulkusb) и стоит. И стоит она как раз в месте эвента по отсоединению устройства. DbgBreakPoint называется, кажется.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|