Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Ну, ты мастёр! На бумаге все просто, но как ты это все раскопал? 31.08.05 04:05 Число просмотров: 2230
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
<programming>
|
Результат поиска ошибки в драйвере 30.08.05 16:25
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 30.08.05 19:13 Количество правок: 1
|
Три дня искал ошибку в своем драйвере, теперь вот хочу поделиться "байкой" о том, как конкретная "мышь" на конкретной машине выявляет небольшую логическую ошибку.
Ошибка была обнаружена случайно, проявляется так: подключаем мышь к COM-порту и при загрузке WinXP SP2 либо синий экран, либо мягкий "зависон".
Причинно-следственная цепочка примерно такая:
1) Зависание происходит из-за бесконечного цикла "обхода" устройств в PNP-подсистеме режима ядра. Синий экран в примерно том-же месте, если обращение по "битому" адресу вызывает AV;
2) Код PNP блудит из-за того, что serenum.sys удаляет Child-PDO на своей шине в ненужный момент;
3) serenum.sys рубит то на чем сидит потому, что получает IRP_MN_REMOVE_DEVICE от сидящего сверху sermouse.sys;
4) sermouse.sys содержит грубейшую ошибку в реализации политик PNP, пытаясь самостоятельно удалить devnode-устройство. Видимо код не менялся с бытности NT 4.0;
5) sermouse.sys сходит с ума потому, что видит активность сигнала DSR в момент инициализации "мыши". Это еще одна ошибка в sermoyse.sys;
6) Активность (изменение) DSR доходит до sermouse.sys из моего драйвера через IOCTL_SERIAL_WAIT_ON_MASK;
7) Мой драйвер обнаруживает изменение DSR в статусе COM-порта при смене обработчика прерываний. Новый обработчик содержит код обработки модемных сигналов, а старый нет (в этой ситуации до IOCTL_SERIAL_WAIT_ON_MASK сигналы от модема не были нужны).
8) След изменения DSR остается в регистре статуса модема UART-та с момента работы PNP-протокола поиска устройств подключенных к COM-порту;
9) Сигнал DSR наводится в мышином кабеле, в виде короткого пика при включении DTR;
10) Устранение проблемы сводится к добавлению в мой драйвер двух строчек кода – очистки регистра статуса модема при переключении между режимами ModemStatus-нужен/-не_нужен. Отсутствие этого было небольшой логической ошибкой...
|
|
что-то там не все в порядке с мышами 02.09.05 12:33
Автор: dl <Dmitry Leonov>
|
Несколько месяцев назад пробегала ссылка на рассказ одного из инсайдеров, как в мышином драйвере NT/2k/XP нашли плюху, приводящую к синему экрану, которая прожила там лет десять. Просто проявлялась она только при втором или третьем отлупе от устройства, что в реальном мире стало происходить лишь с севшими батарейками на беспроводных мышах.
|
| | |
Нашел, но это еще одна проблема. 02.09.05 15:03
Автор: leo <Леонид Юрьев> Статус: Elderman
|
http://www.livejournal.com/users/deadracoon/47052.html
Он там пришет про обработчик прерываний, значить это драйвер PS/2 мыши. Все прочие "мышатники" обработчика прерываний не имеют, работают чибо через usb, либо через serial.
Надо будет заслать ему post, может поправят. Вообще, интересный man...
|
|
Снимаю шляпу 31.08.05 17:24
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
|
написать собственный драйвер компорта - это действительно серьезно
|
|
Ну, ты мастёр! На бумаге все просто, но как ты это все раскопал? 31.08.05 04:05
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
| |
Как в "страшном сне", а как еще-то? Три дня непристойного... 31.08.05 10:55
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 31.08.05 11:02 Количество правок: 1
|
Как в "страшном сне", а как еще-то? Три дня непристойного "секса" с WinDbg, Verifier и WXP SP2 Checked Build...
;-)
|
| | |
Respect... Отправь в M$ BugReport... Или продай им свой драйвер ;-) Не, лучше _лицензируй_ им его! ;-)))))) 02.09.05 10:57
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
|
|