阅读:1104回复:1
求助,关于KeInsertDeviceQueue
书里的例子:
If(KeInsertDeviceQueue) IoReleaseCancelSpinlock(); else{ dx->mycurrentirp=irp; IoReleaseCancelSpinlock(); KeRaiseIrql(); MyStartIo();//处理IRP KeLowerIrrql(); } KeInsertDeviceQueue把IRP插入设备队列。如果队列为空返回False,并把队例设置为忙状态 问题1:当队列为空时,是否还把IRP插入队列中???? 从上面的例子看来,好像队列为空时不把IRP插入队列中, 因为它直接把IRP处理了,没有移除的动作。 问题2:因为没有移除的动作,这个忙状态又是什么时候被恢复呢? |
|
沙发#
发布于:2004-08-12 10:00
up
|
|