[ros-dev] win2k poroblem
Filip Navara
xnavara at volny.cz
Thu Mar 17 20:43:15 CET 2005
Hartmut Birr wrote:
>Hi,
>
>while looking for the console closing problem, I've seen that win2k
>calls PsLookupProcessByProcessId very often with a id of 0xffffffff.
>
>- Hartmut
>
>
I've put ASSERT(ProcessId != (HANDLE)-1) in PsLookupProcessByProcessId
on my local copy and it was never triggered. My test was booting to
Explorer and running OpenOffice.org 1.1.1 Word Processor...
>(ex/handle.c:721) Looking up invalid handle 0xffffffff
>Frames:
><ntoskrnl.exe:26f2d (ex/handle.c:722 (ExpLookupHandleTableEntry))>
><ntoskrnl.exe:275ce (ex/handle.c:919 (ExMapHandleToPointer))>
><ntoskrnl.exe:74af8 (ps/cid.c:106 (PsLookupCidHandle))>
><ntoskrnl.exe:7c6d5 (ps/process.c:2709 (PsLookupProcessByProcessId))>
><win32k.sys:45c16 (objects/gdiobj.c:1219 (GDIOBJ_SetOwnership))>
>
>
^ Honestly I can't see how can you ever get ProcessId == -1 from this
line of code (assuming it's the correct line):
Status = PsLookupProcessByProcessId((HANDLE)((ULONG_PTR)PrevProcId &
~0x1), &OldProcess);
Since a "binary and" with 0xfffffffe is performed, the result can never
be 0xfffffffff.
><win32k.sys:6840 (eng/surface.c:466 (EngDeleteSurface))>
><win32k.sys:52456 (objects/text.c:1922 (NtGdiExtTextOut))>
><win32k.sys:539ef (objects/text.c:2770 (NtGdiTextOut))>
><ntoskrnl.exe:3fb2 (D:\DOKUME~1\hb\LOKALE~1\Temp/ccgPaaaa.s:178
>(KiSystemService))>
><gdi32.dll:99bc (objects/text.c:45 (TextOutW))>
>
>
Regards,
Filip
More information about the Ros-dev
mailing list