· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Сообщение в приложение

Посл.отвђт Сообщенiе


Дата: Фев 27, 2003 19:54:23

Привет!
простите, что может быть, задаю глупый вопрос, но как я могу отослать сообщение в приложение. перерыл весь DDK, но ничего, кроме раритетного _SHELL_PostMessage не нашел. Есть ли возможность сделать это без особых трудозатрат.


Дата: Фев 28, 2003 14:59:06

Вопрос совсем не глупый.
Ответа я, к сожалению, не знаю.
Попробуй глянь тут:
KMD <-> UM

Не совсем то что те нужно, но мож поможет.


Дата: Фев 28, 2003 16:33:16

не нашел.
я сталкнулся с проблемой синхронизации драйвера и приложения. задачу можно охаректеризовать так:
существует обработчик прерываний r0. при выполнении определенного условия, например вводе нужного сканкода с клавиатуры драйвер должен сообщить об этом в приложение. я пробовал использовать для этого IoCreateNotificationEvent, но даже событие не создавалось. конечно, я могу записывать в область данных приложения по заранее оговоренному адресу некоторую переменную-флаг, которая будет извещать приложение о выполнении условия на кольце 0. тогда, я должен строить приложение с отдельным потоком, который будет непрерывно сканировать флаг. но, хотелось бы, чтобы система обладала свойством системы реального времени. ни один из перечисленных выше методов передачи управления в приложение не годится для СРВ. выходит, что я не понимаю, каким образом должна достигаться риалтаймовость(простите) сцепки драйвер-приложение. об этом можно где-либо прочитать?


Дата: Фев 28, 2003 19:59:50

интересная особенность в работе PKEVENT IoCreateNotificationEvent(IN PUNICODE_STRING EventName, OUT PHANDLE EventHandle). она создает событие, возвращаемое в EventHandle, которое очень похоже на аналогичный объект Win32. но:
1. WinObj его не видит.
2. ф-я OpenEvent тоже, хотя в DDK написано: to the \\BasedNamedObjects object directory.
но "сесть" на него всё-таки можно - надо передать EventHandle в приложение(я пользовался DeviceIOControl) и использовать его. Event должен иметь вид "\EventString". тогда все работает.


Дата: Мар 1, 2003 11:56:34 · Поправил: Four-F

Я так и думал, чо те именно синхронизация нужна.
По той ссылке, что я дал выше, ты должен добраться до статьи на microsoft.com как раз о синхронизации.

Но есть ресурс получше.
Иди сюда:
The NT Insider Back Articles

Пройдись по годам, прямых ссылок у мя нет, т.к. все на винче лежит.
Тебе нужны следующие статьи:

1997
1. Tools of the Trade: A Catalog of NT Synchronization Mechanisms

2002
2. Synchronicity -- A Review of Synchronization Primitives
3. Sharing is Caring -- Sharing Events Between Kernel-User Mode

Может я ченить пропустил - там много интересного.


Дата: Мар 3, 2003 10:59:49

Большое спасибо! нашел много интересного - изучаю.
к стати, IoCreateSymbolicLink не помогла - событие все равно не видно в API среде :{


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.068