Мне нужно отслеживать изменения реестра на машине Windows. Можно ли использовать RegistryCallback из службы окон пользовательского режима, а не из драйвера Windows? Большинство примеров используются в драйвере.Могу ли я использовать RegistryCallback в пользовательском режиме приложения
1
A
ответ
3
AFAIK no, потому что он зарегистрирован через CmRegisterCallback()
и CmRegisterCallbackEx()
, которые могут быть вызваны только в драйверах режима ядра.
Процессы пользовательского режима могут использовать RegNotifyChangeKeyValue()
, но он не сообщает подробную информацию о любых изменениях, внесенных в реестр.
SysInternals Process Monitor использует драйвер режима ядра для отслеживания подробных действий реестра для отображения в режиме просмотра пользовательского режима.
Смежные вопросы
- 1. Могу ли я использовать DLL расширения DbgEng в пользовательском приложении?
- 2. Могу ли я использовать встроенный помощник RSpec в пользовательском совпадении?
- 3. Могу ли я использовать персонализацию почерка в пользовательском .net-приложении
- 4. Могу ли я использовать MongoDb в режиме без сервера?
- 5. Как я могу избежать превенции моего потока в пользовательском режиме
- 6. RegistryCallback и RegCreateKeyEx
- 7. Как я могу сохранить данные в пользовательском режиме?
- 8. Могу ли я использовать PowerShell в режиме оболочки для Emacs?
- 9. Могу ли я использовать startupdatinglocation в фоновом режиме?
- 10. Могу ли я использовать распределенный кэш Hadoop в автономном режиме?
- 11. Могу ли я использовать функции в диалоговом режиме Hibernate?
- 12. Могу ли я повторять в фоновом режиме?
- 13. Могу ли я использовать приложения для быстрого развертывания в Tomcat?
- 14. Могу ли я использовать администратор django в качестве приложения?
- 15. Могу ли я использовать пользователя приложения Asp.Net в сообщениях SignalR?
- 16. Могу ли я использовать номера в имени моего приложения Rails?
- 17. Как я могу имитировать инерционную прокрутку в пользовательском UIView, когда я не могу использовать UIScrollView?
- 18. Как я могу использовать метод модели в пользовательском HtmlHelper
- 19. Как я могу использовать ресурс в пользовательском файле ресурсов Xml?
- 20. Как я могу использовать Html.BeginForm в пользовательском помощнике?
- 21. Как я могу использовать gotoAndStop() в пользовательском классе «Игра»?
- 22. Чтение kallsyms в пользовательском режиме
- 23. Могу ли я использовать подкласс приложения как контейнер глобальной переменной?
- 24. Могу ли я использовать .NET WebView вне приложения Windows Store?
- 25. Могу ли я использовать Qt Creator для создания консольного приложения?
- 26. Могу ли я использовать только один заголовок для большего приложения?
- 27. Могу ли я использовать phantom.js для тестирования тяжелого приложения javascript?
- 28. Могу ли я использовать Firebug для отображения объектов приложения?
- 29. Могу ли я использовать лист VSTO для веб-приложения
- 30. Могу ли я использовать частные API для приложения iPhone Enterprise?
Но мне нужно знать подробную информацию о любых изменениях реестра, есть ли другой способ в пользовательском режиме? Http: //stackoverflow.com/questions/16820641/registrycallback-and-regcreatekeyex – JennyS
Не в пользовательском режиме, нет. Вам придется сканировать реестр вручную и отслеживать все, что вас интересует, а затем повторно сканировать его каждый раз при уведомлении об изменении и определять различия между этими двумя сканами. По крайней мере, в режиме ядра обратный вызов сообщает вам, что изменилось. Итак, если вы хотите использовать этот подход, вам нужно использовать драйвер режима ядра, который передает информацию по мере необходимости в ваше приложение пользовательского режима с помощью механизма IPC. –
http://forum.sysinternals.com/regmon-sourcecode_topic20980.html отметил, что «фильтр реестра Process Monitor использует перехватчики SSDT», нужно ли также перехватывать SSDT в драйвере режима ядра? – JennyS