Created a thread in the driver and it will be running at HIGH_PRIORITY, and
I need to stop the thread by setting an event from an another dispatch Call,
which is running at PASSIVE_LEVEL.
Since the thread is running at HIGH_PRIORITY, the dispatch function is not
getting able to set the event.
Is it right to raise the IRQL in the dispatch cuntion to IRQL=DISPATCH LEVEL
before KeSEtEvent, and lower the IRQL down.
Thanks
"ShivaP" <Shi...@discussions.microsoft.com> wrote in message
news:E63AADEF-04E7-4E0D...@microsoft.com...
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
ma...@storagecraft.com
http://www.storagecraft.com
"ShivaP" <Shi...@discussions.microsoft.com> wrote in message
news:E63AADEF-04E7-4E0D...@microsoft.com...
The important restriction on code running at DPC level or above is that it
cannot wait for an object (an event in your case). If you do so this will
cause the scheduler to select another thread to execute which is illigal
operation because the scheduler synchronizes its data structures at
DPC/dispatch level. So if you still need a high priority thread is should be
fast (as Max said) - it does the job and goes away, no waits.
Best regards,
Tanya