阅读:1911回复:3
为什么WDM读写端口最好STARTIO例程中完成?
无论是Art Baker的NT设备驱动程序设计指南 还是Windows WDM 设备驱动程序开发指南都介绍说读写端口最好STARTIO例程中完成,
我试了试,直接在读、写分发例程中也可以的,那么人为的排队IRP有什么好处吗? |
|
|
沙发#
发布于:2001-06-21 15:52
这年头,干什么不要求排队啊?
主要的考虑出于多处理器安全的!WDM-》2000-》多处理器!! |
|
板凳#
发布于:2001-06-21 16:55
如果我确认我的设备不再多处理器的机器上使用是不是就不用排队了?
|
|
|
地板#
发布于:2001-06-21 16:57
如果应用程序用异步I/O一下子发来20个读数据的I/O请求。你可以想到会出现以下的情况:第一个I/O请求先设置好了寄存器,然后返回系统并等待设备产生中断。如果你没使用排队机制,那么在等待的过程中第二个请求到来,它又去设置了寄存器,这是设备还在处理前一个请求,而你又重置了设备这就很可能导致设备出错,使你读取错误的数据。。。。。所以当你要操作设备的寄存器还是用StartI/O排队的好。
|
|
|