Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Event & WDM Driver 
:(
    Опции темы
Stran_nik
Дата 4.11.2002, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.11.2002

Репутация: нет
Всего: нет



У меня есть драйвер WDM который создает событие след. образом (Это В DriverEntry) :

Код

UNICODE_STRING EventName;
HANDLE EventHandle;
RtlInitUnicodeString(&EventName, L"\\BaseNameObjects\\SignalEvent");
pEventObject = IoCreateNotificationEvent(&EventName, &EventHandle);
KeClearEvent(pEventObject);


и далее когда нужно его послать (по приходу прерывания):

Код

KeSetEvent(pEventObject,0,FALSE);
KeClearEvent(pEventObject);


И по идеи далее обычная программа уже в юзермоде должно поймать этот Event и на него срегировать.

Проблема в том, что как только я вставляю эти строки в драйвер, под 2000 я вижу синий экран, а под 98 драйвер просто перестает инициализироватся. Что здесь нитак?
Или как по другому драйвер может сообщить программе о том, что пришло прерывание от устройства? (Ест-но путь постоянного опроса драйвера негодится)
PM MAIL   Вверх
Artem
Дата 4.11.2002, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.8.2002

Репутация: нет
Всего: нет



Вроде все верно... единственное что я делал--запихивал
 UNICODE_STRING EventName;
 HANDLE EventHandle;
 и pEventObject  в  DEVICE_EXTENSION. Вряд ли это влияет на что-то, но все же...

Попробуйте побольше if-ов напихать типа:
if(pEventObject)
{
KeSetEvent(pEventObject,0,FALSE);
KeClearEvent(pEventObject);
}
Я тоже одно время долго не мог избавиться от "синего экрана" пока не нашел какие-то глупые ошибки в самой процедуре обработки прерываний.

Sorry если эти советы окажутся очевидными...

                                                   Артем.
PM MAIL   Вверх
Stran_nik
Дата 5.11.2002, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.11.2002

Репутация: нет
Всего: нет



Цитата(Artem @ 04.11.2002, 13:17)
Попробуйте побольше if-ов напихать типа:

Нет ифы не помогают. Расширение драйвера у меня оказалось скрыто в классах, поэтому дотянутся висьма проблематично.
Ты писал драйвер под НТ, или именно WDM?
Просто я использую в своей программе библиотеки NuMegи. Может это их послдетствия...
PM MAIL   Вверх
Artem
Дата 5.11.2002, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 13.8.2002

Репутация: нет
Всего: нет



"Ты писал драйвер под НТ, или именно WDM? "

 Да я писал драйвер под НТ, без использования библиотеки NuMegи.
Кстати, ты в WIN2000 используешь динамическую загрузку? ПРосто когда я
пытался использовать NuMegи у меня были с ней проблемы именно с динамической загрузкой...
                                           
                                                          Artem.
PM MAIL   Вверх
Stran_nik
Дата 6.11.2002, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 4.11.2002

Репутация: нет
Всего: нет



Нет пока динамической загрузки не добился, хотя по моему на каком то примере я видел, что это происходило, вроде бы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.