My understanding is that InterlockedPushEntrySList() and ExInterlockedPushEntryList() (or ExInterlockedPushEntrySList()) are both available to KM drivers, both atomically insert an item at the top of a singly linked list, but ExInterlockedPushEntryList() uses a spinlock, where InterlockedPushEntrySList() is non-blocking.
Is my understanding correct? If so, is there a reason I would choose a blocking version over a non-blocking one?
The docs.microsoft.com pages for the non-blocking API are aimed at user land usage, which doesn't fill me with confidence. E.g. The examples are clearly user mode code, and there are no IRQL specs at the bottom of the pages.
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Developing Minifilters||29 July 2019||OSR Seminar Space|
|Writing WDF Drivers||23 Sept 2019||OSR Seminar Space|
|Kernel Debugging||21 Oct 2019||OSR Seminar Space|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|