阅读:1033回复:0
关于polling USB设备端的数据的问题
由于是虚拟的modem驱动,我必须在我的驱动程序里面把设备的modem数据(包括AT命令)读取过来,所以我就一个IOQueueWorkItem的系统线程来polling设备端的MODEM数据。
具体工作就是首先创建一个INTERNAL URB IRP,设定完成例程, 在workitem rutine里面发送出去,然后在完成例程里面把返回的数据复制出来,然后再把这个IRP加入workitem 系统线程里面。这样就形成了POLLING. 我用的DelayedWorkQueue 队列,但是启动这个工作以后,发现CPU是100%。 各位高手有没有更好的办法解决啊? 谢谢了! |
|