[ros-diffs] [fireball] 23508: Goodbye REGISTRY_ERROR bsod! - Change UserMode -> KernelMode in ObReferenceObject*() calls, because that calls failed - Remove Cm-specific hack from Ob "advapi32_winetest.exe registry" shows 0 failures on the first run and 2 failures on further runs. I suppose there might be a leakage in the CM. To be investigated further (or wait till complete Cm rewrite in October).

fireball at svn.reactos.org fireball at svn.reactos.org
Sun Aug 6 23:15:55 CEST 2006


Author: fireball
Date: Mon Aug  7 01:15:55 2006
New Revision: 23508

URL: http://svn.reactos.org/svn/reactos?rev=23508&view=rev
Log:
Goodbye REGISTRY_ERROR bsod!

- Change UserMode -> KernelMode in ObReferenceObject*() calls, because that calls failed
- Remove Cm-specific hack from Ob

"advapi32_winetest.exe registry" shows 0 failures on the first run and 2 failures on further runs.
I suppose there might be a leakage in the CM. To be investigated further (or wait till complete Cm rewrite in October).

Modified:
    trunk/reactos/ntoskrnl/cm/regobj.c
    trunk/reactos/ntoskrnl/ob/obhandle.c

Modified: trunk/reactos/ntoskrnl/cm/regobj.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/regobj.c?rev=23508&r1=23507&r2=23508&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/cm/regobj.c (original)
+++ trunk/reactos/ntoskrnl/cm/regobj.c Mon Aug  7 01:15:55 2006
@@ -148,7 +148,7 @@
             ObReferenceObjectByPointer(FoundObject,
                 STANDARD_RIGHTS_REQUIRED,
                 CmiKeyType,
-                UserMode);
+                KernelMode);
             if (End != NULL)
             {
                 *End = L'\\';
@@ -790,7 +790,7 @@
   ObReferenceObjectByPointer(ParentKey,
 		STANDARD_RIGHTS_REQUIRED,
 		CmiKeyType,
-		UserMode);
+		KernelMode);
   NewKey->ParentKey = ParentKey;
 }
 

Modified: trunk/reactos/ntoskrnl/ob/obhandle.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ob/obhandle.c?rev=23508&r1=23507&r2=23508&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ob/obhandle.c (original)
+++ trunk/reactos/ntoskrnl/ob/obhandle.c Mon Aug  7 01:15:55 2006
@@ -239,17 +239,8 @@
     /* Dereference the object as well */
     ASSERT(ObjectHeader->Type);
     ASSERT(ObjectHeader->PointerCount != 0xCCCCCCCC);
-    if (!wcscmp(ObjectHeader->Type->Name.Buffer, L"Key"))
-    {
-        //
-        // WE DONT CLOSE REGISTRY HANDLES BECAUSE CM IS BRAINDEAD
-        //
-        DPRINT("NOT CLOSING THE KEY\n");
-    }
-    else
-    {
-        ObDereferenceObject(Body);
-    }
+
+    ObDereferenceObject(Body);
 
     /* Return to caller */
     OBTRACE(OB_HANDLE_DEBUG,




More information about the Ros-diffs mailing list