我正在为反病毒程序开发内核模式驱动程序,但在驱动程序部分有问题
我想将一个字符串值(例如“String”)从内核模式驱动程序发送到用户模式应用程序。谁能帮我做到这一点?
我正在为反病毒程序开发内核模式驱动程序,但在驱动程序部分有问题
我想将一个字符串值(例如“String”)从内核模式驱动程序发送到用户模式应用程序。谁能帮我做到这一点?
这个问题很久以前就被问过了,希望你已经找到了解决方案。我发布了这个解决方案,因为没有。
这取决于您希望如何将字符串发送到用户模式客户端应用程序。
一种方法是 IOCTL 命令。您使用 METHOD_BUFFERED 发出一个简单的 IOCTL 命令(假设该字符串是小数据),瞧,您就完成了。
另一种方法是让客户端等待一个事件,并在该字符串可用于内核驱动程序时让驱动程序触发一个事件。然后,随着用户模式应用程序中的等待结束,您将获得数据。(当然,如果等待没有超时或其他许多事情)
copy_to_user
这里定义了
函数include/asm/uaccess.h
。借助它,您可以安全地将数据从内核模式复制到用户模式。