|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Мар 30, 2004 13:07:22 Написал простенький драйвер, работаю с ним исключительно через DeviceIoControl и соотв-но через коды действия. Проблема(непонятка): после загрузки драйвера делаю первый вызов DeviceIoControl (SoftIce-ом ловлю этот вызов - всё Ок), жму Ctrl-D и снова влетаю в SoftIce на IRP_MJ_DEVICE_CONTROL (уже второй раз, хотя DeviceIoControl только одна). Т.е. получается на один вызов DeviceIoControl два входа в драйвер. |
|
|
Дата: Мар 30, 2004 15:03:17 Прочитал несколько раз - ничего не понял. Что значит "SoftIce-ом ловлю этот вызов". Что конкретно ты ловишь и как: вызов DeviceIoControl в юзере или функцию диспетчеризации IRP_MJ_DEVICE_CONTROL в ядре? |
|
|
Дата: Мар 31, 2004 14:02:56 Извеняюсь за кривое описание проблемы. 1. "SoftIce-ом ловлю этот вызов" - брекпоинт на функции диспетчеризации IRP_MJ_DEVICE_CONTROL в ядре. 2. "жму Ctrl-D" - прохожу по коду до вызова функции IoCompleteRequest и закрываю SoftIce. 3. "снова влетаю в SoftIce на IRP_MJ_DEVICE_CONTROL" - тут же опять попадаю (в SoftIce-е см.п.1) на IRP_MJ_DEVICE_CONTROL в ядре но с другим кодом действия (при этом я DeviceIoControl с этом кодом не вызывал). Т.е. получается на один вызов DeviceIoControl два входа в драйвер. |
|
|
Дата: Мар 31, 2004 14:57:56 Что-то ты не так делаешь. Возьми у мя в KmdKit пример examples\simple\Skeleton и проделай с ним то же самое. Должно быть одно вхождение в функцию диспетчеризации IRP_MJ_DEVICE_CONTROL. |
|
|
Дата: Мар 31, 2004 15:16:39 Извени Fou-F, я тут новенький... как мне взять у тебя в KmdKit примерexamples\simple\Skeleton? |
|
|
Дата: Мар 31, 2004 17:04:29 |
|
|
Дата: Апр 2, 2004 11:04:50 Да Four-F если интересно, драйвер к меня всётаки заработл.... я просто поменял местами две строчки. Было: InitData = irp->AssociatedIrp.SystemBuffer; KeInitializeEvent(&DeviceExtension->WaitEvent, NotificationEvent, FALSE); стало: KeInitializeEvent(&DeviceExtension->WaitEvent, NotificationEvent, FALSE); InitData = irp->AssociatedIrp.SystemBuffer; и всё заработало. Разбираться нет времени, проект здавать надо, но как только время появится, обязательно покапаю. |
|
|
Дата: Апр 2, 2004 13:03:14 Как же ты не разбираясь строчки то менял? Методом научного тыка? :) Вообще говоря, разницы то никакой. Эти две строчки никак друг с другом не коррелируют. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063 |