delphi应用程序和Windows NT系统驱动程序之间的通信

时间:2010-11-29 16:19:59

标签: delphi communication driver ioctl wdk

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

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

所以我正在寻找的是一些简单易懂的教程,关于如何做到这一点或事件更好的例子delphi程序与acompaniying驱动程序代码。也许还有其他沟通方式。

任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:2)

无论是否在Delphi中都无关紧要。您必须使用DeviceIoControl功能。阅读关于它的article in MSDN

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

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

不要寻找“教程如何在Delphi中执行”,只需查找任何教程。它们都是一样的,无论语言如何,它都是纯粹的Win32 / Native api。例如Here's one,只是用Google搜索出来。