There’s also the problem that the interrupt lock is not ment to be
accessed with the regular spinlock routines, and thus the implementation
could be changed down the line. Nothing’s better than swapping 1 and 0
into something that turns out to be the head of a queue of waiters and
crashing the system.
It’s great that we all “know” how spinlocks are implemented. That
doesn’t mean we can assume they’ll always be implemented that way. If
you assume they will be you’re risking the stability of your customer’s
machines down the line in order to save a few hours of development time.
-p
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
Sent: Tuesday, June 08, 2004 6:31 AM
To: Windows System Software Devs Interest List
Subject: RE: Antwort: RE: [ntdev] Interrupt SpinLock under Win2k - part
2
Well you aren’t actually replacing your interrupt spinlock with a new
home grown spinlock, you are adding your new spinlock into the mix. I’m
not sure it matters, as I haven’t time to think through all the
consequences, but your isr is now acquiring two spinlocks, and your
dispatch level code is not preventing your isr from running. Offhand I
think it probably doesn’t matter.
=====================
Mark Roddy
-----Original Message-----
From: xxxxx@tab.at [mailto:xxxxx@tab.at]
Sent: Tuesday, June 08, 2004 9:19 AM
To: Windows System Software Devs Interest List
Subject: RE: Antwort: RE: [ntdev] Interrupt SpinLock under Win2k - part
2
Hi Mark!
That works well enough. But really you should just go and use
KeSynchronizeExecution, it isn’t that difficult. Also, your emulation
does not interact with the NT ISR mechanism, as does the interrupt
spinlock, so it is incomplete.
Since I’m already about 1/2 way through I’ll probably stick to the
KeSynchronizeExecution way. But just out of curiosity, what’s missing
when I do
- raise IRQL
- spin
- do stuff
- “unspin”

- lower IRQL
I thought the KeRaiseIrql/KeLowerIrql (included in the code-snippet in
my first mail) pair is all that’s neede for the NT ISR mechanism to be
happy.
An instead of the original interrupt SpinLock I’d use my own which
should also be sufficient.
Again, I think I’ll not use it anymore, just our of curiosity…
thatnks for your reply,
Regards,
Paul Groke
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com