Although this is unsafe, it will work correctly on many common hardware platforms. Especially if the DPC can tolerate duplicate & coalesced bits from the hardware. The coalesced part is an obvious requirement because the hardware may interrupt many times before it can be invoked, and the duplicate part is consistent with good design when possible.
This does appear to be a bug, but its impact will be mitigated by the overall environment. Consistent use of Interlocked operations should resolve the issue.
Sent from Surface Pro
From: xxxxx@osr.com
Sent: Thursday, July 30, 2015 1:01 PM
To: Windows System Software Devs Interest List
THAT has always been MY understanding.
I suppose whether it matters or not depends on how your DPC is actually written. It seems to ME everyone would sleep better at the cost of an InterlockedOr… or guarding the whole thing with the Interrupt Spin Lock.
Peter
OSR
@OSRDrivers
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
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