mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:23:05 +00:00
kjk_hyperion : "Breaking auditing lock for a temporary fix: allow ExEnterCriticalRegionAndAcquireFastMutexUnsafe and ExReleaseFastMutexUnsafeAndLeaveCriticalRegion to be called from any thread; fixes UserEnterShared, UserEnterExclusive and UserLeave in win32k"
svn path=/trunk/; revision=21611
This commit is contained in:
parent
2122478f7b
commit
913bde9808
1 changed files with 13 additions and 1 deletions
|
@ -28,11 +28,17 @@ ExEnterCriticalRegionAndAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex)
|
||||||
|
|
||||||
/* Enter the Critical Region */
|
/* Enter the Critical Region */
|
||||||
KeEnterCriticalRegion();
|
KeEnterCriticalRegion();
|
||||||
|
/*
|
||||||
ASSERT((KeGetCurrentIrql() == APC_LEVEL) ||
|
ASSERT((KeGetCurrentIrql() == APC_LEVEL) ||
|
||||||
(Thread == NULL) ||
|
(Thread == NULL) ||
|
||||||
(Thread->CombinedApcDisable != 0) ||
|
(Thread->CombinedApcDisable != 0) ||
|
||||||
(Thread->Teb == NULL) ||
|
(Thread->Teb == NULL) ||
|
||||||
(Thread->Teb >= (PTEB)MM_SYSTEM_RANGE_START));
|
(Thread->Teb >= (PTEB)MM_SYSTEM_RANGE_START));
|
||||||
|
*/
|
||||||
|
ASSERT((KeGetCurrentIrql() == APC_LEVEL) ||
|
||||||
|
(Thread == NULL) ||
|
||||||
|
(Thread->CombinedApcDisable != 0));
|
||||||
|
|
||||||
ASSERT((Thread == NULL) || (FastMutex->Owner != Thread));
|
ASSERT((Thread == NULL) || (FastMutex->Owner != Thread));
|
||||||
|
|
||||||
/* Decrease the count */
|
/* Decrease the count */
|
||||||
|
@ -53,12 +59,18 @@ VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(PFAST_MUTEX FastMutex)
|
ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(PFAST_MUTEX FastMutex)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
ASSERT((KeGetCurrentIrql() == APC_LEVEL) ||
|
ASSERT((KeGetCurrentIrql() == APC_LEVEL) ||
|
||||||
(KeGetCurrentThread() == NULL) ||
|
(KeGetCurrentThread() == NULL) ||
|
||||||
(KeGetCurrentThread()->CombinedApcDisable != 0) ||
|
(KeGetCurrentThread()->CombinedApcDisable != 0) ||
|
||||||
(KeGetCurrentThread()->Teb == NULL) ||
|
(KeGetCurrentThread()->Teb == NULL) ||
|
||||||
(KeGetCurrentThread()->Teb >= (PTEB)MM_SYSTEM_RANGE_START));
|
(KeGetCurrentThread()->Teb >= (PTEB)MM_SYSTEM_RANGE_START));
|
||||||
ASSERT(FastMutex->Owner == KeGetCurrentThread());
|
|
||||||
|
*/
|
||||||
|
ASSERT((KeGetCurrentIrql() == APC_LEVEL) ||
|
||||||
|
(Thread == NULL) ||
|
||||||
|
(Thread->CombinedApcDisable != 0));
|
||||||
|
ASSERT(FastMutex->Owner == KeGetCurrentThread());
|
||||||
|
|
||||||
/* Erase the owner */
|
/* Erase the owner */
|
||||||
FastMutex->Owner = NULL;
|
FastMutex->Owner = NULL;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue