[ros-dev] [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).

Alex Ionescu ionucu at videotron.ca
Mon Aug 7 00:46:50 CEST 2006


Hi,

Alex-from-Texas here.

WOW, that was awesome.
I forgive you for comitting that satanic LDT "patch" because of this.

Best regards,
Alex Ionescu

fireball at svn.reactos.org wrote:

>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-dev mailing list