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. ;-)