阅读:1049回复:4
swf2003大虾请进!给分&请教
swf2003大虾,你好!关于iso stream得问题,我想再次请教你。
下面是我的流程: StartISOStream: { 第一步:初始化streamobject等等,有两个transferobject 第二步:初始化dpc 第三步:for循环发送那两个transferobject里面的irp } irp完成例程: { 第一步:copy我要得数据 第二步:判断irp返回状态:成功则重用此irp,然后送该irp到dpc队列。失败则释放irp } dpc得例程: { VOID SendDpc( IN PKDPC Dpc, IN PDEVICE_OBJECT fdo, IN PIRP Irp, IN PVOID Context ) { PDEVICE_EXTENSION pdx = fdo->DeviceExtension; IoCallDriver(pdx->StackDeviceObject,Irp); } } 可是我的驱动接收到了一定程度就不再接收数据了,我发现只要irp0和irp1顺序一颠倒,马上就接收不到数据了,大虾能帮我分析一下为什么么?大虾你是怎样实现isostream的呢?请大虾指教!在线等,分不够,再给! |
|
|
沙发#
发布于:2003-07-02 15:11
kilroy_guo 你程序中进一步的问题,我就不好分析了,这不是分多少的的原因,看来主要靠你自己了。
|
|
|
板凳#
发布于:2003-07-02 15:18
惨!:(
swf2003大虾,是用custom dpc么?我接收到一定程度,就发现 KeInsertQueueDpc返回值是false。大侠,是不是我应该用两个 custom dpc对应同一个例程,这样就不会出现insert时候返回false. 但是用两个dpc,我就保证不了两个irp返回顺序了。 大虾救命 :( |
|
|
地板#
发布于:2003-07-02 15:27
kilroy_guo 你程序中进一步的问题,我就不好分析了,这不是分多少的的原因,看来主要靠你自己了。 :(意味深长。。。。。。 |
|
|
地下室#
发布于:2003-07-02 19:00
不用dpc了,效果和直接在irp完成例程里面直接send irp差不多
:( |
|
|