У меня есть драйвер (режим ядра) (KMDF) и форма пользовательских настроек. мне нужно запустить действие из кода драйвера и получить настройки. Итак, как мне запустить эту программу пользовательского режима из ядра в операционной системе Windows?
Как запустить программу пользовательского режима из режима ядра в Windows
Ответы (2)
Лучший способ заставить драйвер что-то делать в пользовательском режиме — заставить его взаимодействовать с компонентом пользовательского режима, который может выполнять эту работу. Таким образом, вы делаете что-то вроде службы пользовательского режима, которая открывает канал для драйвера, а затем, когда драйверу нужно что-то сделать (например, запустить процесс), он может отправить сообщение службе.
Найдите в osronline инвертированную модель вызова для получения дополнительной информации или посмотрите документацию по API FltSendMessage, если вы создаете мини-фильтр.
Как отмечали другие авторы, выполнение этого в DriverEntry, вероятно, не сработает, поскольку, вероятно, нет даже сеанса пользователя для связи.
Просто вы не можете, если вы не используете странные недокументированные трюки, такие как APC, которые могут вызвать много проблем несовместимости; просто поместите свое приложение в автоматический запуск (например, CurrentVersion\Run) и отправьте IRP драйверу с данными, которые вам нужно отправить.