Use a guarded mutex instead -- you're confused with what's actually
going on.
Fast mutexes use events, Guarded mutexes use gates. Both are
initialized by their respective Ke/Ex/InitializeFast/Guarded mutex.
On 28-Dec-08, at 3:06 PM, pschweitzer(a)svn.reactos.org wrote:
Author: pschweitzer
Date: Sun Dec 28 14:06:08 2008
New Revision: 38432
URL:
http://svn.reactos.org/svn/reactos?rev=38432&view=rev
Log:
FsRtlInitializeLargeMcb: Initialize fast mutex gate
Modified:
branches/pierre-fsd/ntoskrnl/fsrtl/largemcb.c
Modified: branches/pierre-fsd/ntoskrnl/fsrtl/largemcb.c
URL:
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/ntoskrnl/fsrtl/largeā¦
=
=
=
=
=
=
=
=
======================================================================
--- branches/pierre-fsd/ntoskrnl/fsrtl/largemcb.c [iso-8859-1]
(original)
+++ branches/pierre-fsd/ntoskrnl/fsrtl/largemcb.c [iso-8859-1] Sun
Dec 28 14:06:08 2008
@@ -130,7 +130,9 @@
IN POOL_TYPE PoolType)
{
Mcb->FastMutex =
ExAllocateFromNPagedLookasideList(&FsRtlFastMutexLookasideList);
+
ExInitializeFastMutex(Mcb->FastMutex);
+ KeInitializeGate((PKGATE)&(Mcb->FastMutex->Gate));
FsRtlInitializeBaseMcb(&(Mcb->BaseMcb), PoolType);
}
Best regards,
Alex Ionescu