windows ddk USB复合设备驱动,怎么同时读两个pipe

【求助】windows ddk USB复合设备驱动,如何同时读两个pipe?
通过USBD_CreateConfigurationRequestEx查找到了3个interfaces,1个是键盘,1个是鼠标。配置完成之后,得到2个pipe。

通过readfile访问驱动的IRP_MJ_READ读取其中1个pipe,可以获取数据。(这里readfile是阻塞了的,IoMarkIrpPending(Irp))

应用层如果用2个线程来readfile,也只有等其中1个读取完毕,才可以读。

我如何修改驱动,才能同时读取2个pipe的数据呢?求大神给个思路。
------解决方案--------------------
一个Endpoint用IRP_MJ_READ获取数据,另外一个用自定义的Device IO Control进行?