Hello all,
I think that there is an inaccuracy in the DDK documenation of
the KeReleaseMutex routine. DDK says following for it (digest):
Callers of KeReleaseMutex must be running at IRQL PASSIVE_LEVEL.
However the description of KeReleaseSemaphore says this:
Callers of KeReleaseSemaphore must be running at IRQL
<= DISPATCH_LEVEL provided that Wait is set to FALSE. Otherwise, the caller must be running at IRQL PASSIVE_LEVEL.
I think there is no reason to prevent releasing of a mutex even
at DISPATCH_LEVEL when any other kernel synchronization
object can be signalled at this Irql (Semaphore, Event and Timer).
Guys from Microsoft, don’t you have something to say about this topic?
Paul