代码之家  ›  专栏  ›  技术社区  ›  Runner

delphi应用程序与Windows NT系统驱动程序的通信

  •  5
  • Runner  · 技术社区  · 14 年前

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

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

    所以我要找的是一些简单易懂的教程,教你如何做得更好,或者如何更好地用一个驱动程序代码比较的delphi程序示例。也许还有其他的交流方式。

    任何帮助都会被告知。

    1 回复  |  直到 14 年前
        1
  •  2
  •   himself    14 年前

    不管在德尔菲还是不在。必须使用函数DeviceIoControl。阅读 article in MSDN 关于它。

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

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

    不要寻找“如何在Delphi中实现这一点的教程”,只要寻找任何教程即可。它们都是一样的,不管是哪种语言,都是纯Win32/本地api的东西。 Here's one 例如,只是用谷歌搜索出来。