我知道关于从用户模式与内核模式进行通信,我也知道事件/反向调用,但是我需要发送一个字符串值到用户模式进程从一个内核模式设备驱动程序,然后在KM中等待响应(例如TRUE或FALSE BOOLEAN)。内核模式到用户模式通信
取出字符串“c:\ file.txt”。现在我需要KM设备驱动程序将该字符串发送到用户模式,然后让UM程序重新发回TRUE或FALSE响应以供驱动程序处理。
我已经经历了很多网站主题/帖子,文档样本,并且找不到我在找什么。
我在想,也许我可以安装在用户模式程序,直到响应返回其只是继续等待数据下来,然后在KM我莫名其妙地暂停一个线程...不知道
任何帮助表示赞赏。
欢迎来到Stack Overflow。您的帖子目前的形式不清楚,不适合Stack Overflow。请访问[帮助中心](http://stackoverflow.com/help)并阅读[如何提出一个好问题]部分(http://stackoverflow.com/help/how-to-ask)。 –
规范方法是一个IOCTL。用户模式调用是DeviceIoControl函数。您可以在单独的线程中调用它或使用异步I/O。内核模式驱动程序到达时可能处理这种请求的方式之一是将其重新配置到单独的队列中,该队列被配置为使用手动调度方法;这样,当您需要将消息发送到用户模式时,您只需使用WdfIoQueueRetrieveNextRequest将挂起的请求拉出队列,然后按正常方式完成。 –
......来自驱动程序的消息应该可能包含某种ID号,以便当用户模式程序发送IOCTL来表示“真”或“假”时,它可以包含ID号,以便驱动程序知道哪个IOCTL正在回应的消息。 –