your last sentence is the most important point. Since there is nothing
which specifies that DPCs will be run in the order they were queued then
there’s no guarantee that future system changes won’t break drivers
which are dependant on such an undocumented detail of the current
implementation.
if you really need to run two things back-to-back at DPC level you
should queue one DPC and have it do both of them. Or have the first DPC
queue the second when it’s safe for the second to run.
-p
-----Original Message-----
From: Roddy, Mark [mailto:xxxxx@stratus.com]
Sent: Monday, May 20, 2002 10:38 AM
To: NT Developers Interest List
Subject: [ntdev] RE: System DPC and Custom DPC
Hmmm… I think I have to disagree with both you amd max. As I said, if
the dpc’s are queued to the same processor at the same priority, the
order in which they are queued is the order in which they are executed.
Within a single thread of execution ‘the order in which they are queued’
is not ambiguous. Across multiple threads there may be no way to
determine what that order is. I suppose some future version of NT
*could* decide to dequeue in lifo or some other order, so in that sense
there is no guarantee.
-----Original Message-----
From: Peter Wieland [mailto:xxxxx@windows.microsoft.com]
Sent: Monday, May 20, 2002 1:26 PM
To: NT Developers Interest List
Subject: [ntdev] RE: System DPC and Custom DPC
There’s no guarantee on the order in which the DPCs will be called.
-p
-----Original Message-----
From: Girish Gurunathan [mailto:xxxxx@wipro.com]
Sent: Monday, May 20, 2002 3:24 AM
To: NT Developers Interest List
Subject: [ntdev] System DPC and Custom DPC
Hello,
I am developing a WDM driver on x86 for a streaming PCI
device. In ISR, if I call IoRequestDpc() followed by
KeInsertQueueDpc() (for some custom DPC
object) which Dpc will be called first by the system?
Is there any performance benefit available by using system
DPC over custom DPC?
Regards,
Girish
You are currently subscribed to ntdev as:
xxxxx@microsoft.com To unsubscribe send a blank email to
%%email.unsub%%
You are currently subscribed to ntdev as:
xxxxx@stratus.com To unsubscribe send a blank email to
%%email.unsub%%
You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to %%email.unsub%%