DpcForIsr and IoStartNextPacket

Hi all,

I’m having a problem with my DpcForIsr and IoStartNextPacket. When
I call IoStartNextPacket frrom my DPC, I get a BSOD. Using WinDbg,
I see the following:

*** Assertion failed: DeviceQueue->Busy =3D=3D TRUE

This happens immediately after I load the driver. There are of course
no outstanding IRPs in the queue. I am using System Queueing.

So, can I only call IoStartNextPacket when there is an outstanding
IRP? What am I doing wrong? Any help would be greatly appreciated.

Thanks in advance!
Scott Dunn

Br=FCckner & Jarosch Ing.-GmbH
Nonnengasse 5a
99084 Erfurt
Germany

Tel: +49 (0)361 / 21 24 02 2
Fax: +49 (0)361 / 21 24 01 9

Yes, you can only call IoStartNextPacket if you are currently working on a packet (DeviceObject->CurrentIrp != NULL). This is usually a state maintained in your driver b/c you can only safely synchronize access to this field in your StartIo routine.

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Scott M. Dunn
Sent: Monday, January 31, 2005 3:01 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] DpcForIsr and IoStartNextPacket

Hi all,

I’m having a problem with my DpcForIsr and IoStartNextPacket. When
I call IoStartNextPacket frrom my DPC, I get a BSOD. Using WinDbg,
I see the following:

*** Assertion failed: DeviceQueue->Busy == TRUE

This happens immediately after I load the driver. There are of course
no outstanding IRPs in the queue. I am using System Queueing.

So, can I only call IoStartNextPacket when there is an outstanding
IRP? What am I doing wrong? Any help would be greatly appreciated.

Thanks in advance!
Scott Dunn

Br?ckner & Jarosch Ing.-GmbH
Nonnengasse 5a
99084 Erfurt
Germany

Tel: +49 (0)361 / 21 24 02 2
Fax: +49 (0)361 / 21 24 01 9


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com