Связь между приложением Delphi и Windows NT Системный драйвер
-
29-09-2019 - |
Вопрос
Я пытаюсь построить очень простого драйвера. Единственной целью будет зарегистрировать «pssetCreateProcessnotifyRoutine», а при полученных обратных вызовах из ядра уведомить мое заявление Win32 о том, какие ходовые предложения запускаются и останавливаются.
Я только знаю, как построить такой простой драйвер с «Whireentry» и «Driverunload» и составьте его с DDK. Но я не знаю, как на самом деле реализовать связь. Я знаю, что это можно сделать с IOCTL. Но за пределы этого я в темноте. Я не могу найти простой пример того, как сделать это в Delphi. Я только знаю, что это можно сделать.
Итак, что я ищу, это какой-то простой и понятный учебник о том, как это сделать или событие лучше сделать пример программы Delphi с Acompanying Driver Code. Может быть, есть даже другие способы общения.
Любая помощь будет оценена.
Решение
Не имеет значения, в Delphi или нет. Вы должны использовать функциональный DeviceioControl. Читать Статья в MSDN об этом.
Короче говоря, вам придется выбрать некоторые Коды IOCTL из доступного набора. Затем вы называете DeviceiOControl с одним из этих кодов и передаете некоторые данные, а в драйвере вы обрабатываете этот запрос и верните что-то еще.
Вы также можете обрабатывать стандартные IOCTL, такие как те, которые генерируются, вызывая ReadFile или WriteFile в режиме пользователя.
Не ищите «Учебник, как это сделать в Delphi», просто ищите любой учебник. Они все одинаковы, независимо от языка, это чистый Win32 / нативные API. Вот один Например, просто поглотил это.