我正在尝试为windows开发具有异步通信的内核串口驱动程序。我知道我必须为读/写等定义IRPs调用。将数据从用户模式应用程序写入驱动程序很简单-只需调用适当的IRP,您就完成了大部分工作。如果它涉及到从串行读取数据-我就卡住了。从串口读取数据的机制是什么?我不能想象用户模式的应用程序会不断地请求读IRP (如果你没有任何数据要从驱动程序传输到应用程序,那就是浪费资源)。我认为驱动程序可能会升起一个有数据要传输的标志或类似的东西。请帮助我了解它是如何工作的,或者它是如何在windows内核中完成的。
向您致敬,Luk
发布于 2019-01-12 00:18:16
用户模式应用程序发送读请求,该请求在数据准备就绪之前一直处于挂起状态。当数据被传输时,应用程序发送下一个读请求。Link to answer
https://stackoverflow.com/questions/54149748
复制相似问题