Re: HELP! Как из драйвера вызвать функцию dll?
От: Alex Fedotov США  
Дата: 02.01.02 18:47
Оценка: 2 (1)
Здравствуйте Andrew__S, Вы писали:

AS>Подскажите, пожалуйста, как можно из драйвера под NT (.sys, kernel mode)

AS>вызвать функцию dll (user mode) при уже загруженных виндах?

Правильный ответ: никак. Нельзя из kernel-mode вызывать user-mode код.

Если ты хочешь из драйвера сообщить user-mode программе о каком-то событии, то у тебя есть выбор из двух вариантов:

1) Иметь объект события, доступный как в драйвере, так и в приложении. При возникновении события, драйвер переводит объект в signaled state, а приложение, соответственно, ждет на этом объекте.

Смотри также:

Q176415 Event.exe Shows How to Share and Signal an Event Object
http://support.microsoft.com/support/kb/articles/Q176/4/15.asp

2) Приложение посылает в драйвер ioctl посредством DeviceIoControl, который драйвер возвращает со статусом STATUS_PENDING. Когда происходит событие, драйвер завершает этот ioctl. Со стороны приложения это выглядит как длительная операция ввода/вывода.
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.