5

我正在尝试构建一个非常简单的驱动程序。它的唯一目的是注册“PsSetCreateProcessNotifyRoutine”,并在从内核收到的回调中,通知我的 Win32 应用程序启动和停止了哪些进程。

我只知道如何用“DriverEntry”和“DriverUnload”构建这样一个简单的驱动程序,并用DDK编译。但我不知道如何实际实现通信。我知道它可以用 IOCTL 来完成。但除此之外,我还在黑暗中。我找不到如何在 Delphi 中执行此操作的简单示例。我只知道可以做到。

所以我正在寻找的是一些简单易懂的教程,说明如何做到这一点或更好地使用带有驱动程序代码的示例 delphi 程序。也许还有其他的交流方式。

任何帮助都将不胜感激。

4

1 回答 1

2

是否在Delphi中都没关系。您必须使用函数 DeviceIoControl。阅读MSDN 中有关它的文章。

简而言之,您必须从可用集合中选择一些IOCTL 代码。然后,您使用这些代码之一调用 DeviceIoControl 并传递一些数据,然后在驱动程序中处理该请求并返回其他内容。

您还可以处理标准 IOCTLS,例如在用户模式下调用 ReadFile 或 WriteFile 生成的 IOCTLS。

不要寻找“如何在 Delphi 中做到这一点的教程”,只需寻找任何教程。它们都是一样的,不管是什么语言,都是纯 Win32/Native api 的东西。举个例子,刚刚google了一下。

于 2010-11-29T16:48:00.887 回答