Hi
In my driver, I queue a work item in order to reset a USB pipe in case of an error.
I don’t want the reset to happen in parallel with IO read/IO write callbacks, so I want to synchronize the execution of the work item’s function with the execution of the callbacks.
I can’t use Automatic Serialization because the queue’s execution level is dispatch level. I also can’t acquire a synchronization lock on the queue because it raises the IRQL in the work item’s function to dispatch level according to the documentation (and according to the deadlock I encounter) and WdfUsbTargetPipeResetSynchronously needs to run in passive level.
Is there any standard KMDF solution to that situation?
Thanks
Gregory
Synchronously stop the queue with WdfIoQueueStop(true) and then start it again when the reset is done.
d
dent from a phpne with no keynoard
-----Original Message-----
From: xxxxx@gmail.com
Sent: September 16, 2010 8:18 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Problem with Synchronizing Work Items in KMDF
Hi
In my driver, I queue a work item in order to reset a USB pipe in case of an error.
I don’t want the reset to happen in parallel with IO read/IO write callbacks, so I want to synchronize the execution of the work item’s function with the execution of the callbacks.
I can’t use Automatic Serialization because the queue’s execution level is dispatch level. I also can’t acquire a synchronization lock on the queue because it raises the IRQL in the work item’s function to dispatch level according to the documentation (and according to the deadlock I encounter) and WdfUsbTargetPipeResetSynchronously needs to run in passive level.
Is there any standard KMDF solution to that situation?
Thanks
Gregory
—
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer