[ros-dev] win2k poroblem

Filip Navara xnavara at volny.cz
Thu Mar 17 21:40:29 CET 2005


Hartmut Birr wrote:

>Hi,
>
>I get this again. I'm using cmd as login shell and starting the
>explorer. I get hundreds of lines like this:
>
>(ex/handle.c:721) Looking up invalid handle 0xffffffff
>Frames: <ntoskrnl.exe:26efd (ex/handle.c:722 (ExpLookupHandleTableEntry))>
><ntoskrnl.exe:27576 (ex/handle.c:915 (ExMapHandleToPointer))>
><ntoskrnl.exe:748d8 (ps/cid.c:106 (PsLookupCidHandle))>
><ntoskrnl.exe:7c497 (ps/process.c:2709 (PsLookupProcessByProcessId))>
><win32k.sys:464d6 (objects/gdiobj.c:1219 (GDIOBJ_SetOwnership))>
><win32k.sys:6840 (eng/surface.c:466 (EngDeleteSurface))>
> <win32k.sys:52d16 (objects/text.c:1922 (NtGdiExtTextOut))>
><ntoskrnl.exe:3fb2 (D:\DOKUME~1\hb\LOKALE~1\Temp/ccUVaaaa.s:178
>(KiSystemService))>
><gdi32.dll:9c22 (objects/text.c:272 (ExtTextOutW))>
>
>The starting point does change but GDIOBJ_SetOwnership and later are
>always the same. I attach my changes in ntoskrnl. I think that the
>changes in ob/handle.c are not relevant. It is the smp build on my smp
>machine.
>  
>
Does the attached patch help? I noticed that the handle number gets 
converted along the way by the HANDLE_TO_EX_HANDLE macro and in fact the 
original ID passed to PsLookupProcessByProcessId is zero. This makes 
prefect sense since it's used as a marker for global GDI handles.

- Filip

P.S. Sorry for the ugly grammar mistakes in my previous post. I should 
read twice what I wrote before hitting the Send button. ;-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdiobj.c.diff
Type: text/x-patch
Size: 1090 bytes
Desc: not available
Url : http://reactos.com:8080/pipermail/ros-dev/attachments/20050317/34f11a3e/gdiobj.c.bin


More information about the Ros-dev mailing list