[ros-bugs] [Bug 1321] New: BSOD in IntPrepareDriver

ReactOS.Bugzilla at reactos.org ReactOS.Bugzilla at reactos.org
Sun Feb 26 00:51:11 CET 2006


http://www.reactos.org/bugzilla/show_bug.cgi?id=1321

           Summary: BSOD in IntPrepareDriver
           Product: ReactOS
           Version: TRUNK
          Platform: x86 Hardware
        OS/Version: ReactOS
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Kernel
        AssignedTo: ros-bugs at reactos.org
        ReportedBy: hpoussin at reactos.org
         QAContact: ros-bugs at reactos.org


(revision 21185)
I sometimes have a BSOD in IntPrepareDriver with the following stack trace:
Entered debugger on last-chance exception number 14 (Page Fault)
Memory at 0x00000004 could not be read: Page not present.
Eip:
<win32k.sys:70deb (./subsystems/win32/win32k/objects/dc.c:578 
(IntPrepareDriverIfNeeded))>
Frames:
<win32k.sys:89049 (./subsystems/win32/win32k/objects/dc.c:840 (IntGdiCreateDC))>
<win32k.sys:89554 (./subsystems/win32/win32k/objects/dc.c:1056 (NtGdiCreateIC))>
<ntoskrnl.exe:652d7 (ntoskrnl\ke\i386\trap.s:306 (KiFastCallEntry))>
<gdi32.dll:67ed (dll/win32/gdi32/objects/dc.c:132 (CreateICW))>
<USER32.dll:28179 (dll/win32/user32/windows/icon.c:574 
(LookupIconIdFromDirectoryEx))>
<USER32.dll:1c33d (dll/win32/user32/windows/bitmap.c:239 (LoadImageW))>
<USER32.dll:1dded (dll/win32/user32/windows/cursor.c:263 (LoadCursorW))>
<comctl32.dll:2272 (dll/win32/comctl32/animate.c:963 (ANIMATE_Register))>
<comctl32.dll:62c9 (dll/win32/comctl32/commctrl.c:134 (DllMain))>
<ntdll.dll:26ea (dll/ntdll/ldr/utils.c:178 (LdrpCallDllEntry))>
<ntdll.dll:2b45 (dll/ntdll/ldr/utils.c:2584 (LdrpAttachProcess))>
<ntdll.dll:397b (dll/ntdll/ldr/utils.c:754 (LdrLoadDll))>
<KERNEL32.dll:11fb9 (./dll/win32/kernel32/misc/ldr.c:206 (LoadLibraryExW))>
<KERNEL32.dll:12001 (./dll/win32/kernel32/misc/ldr.c:154 (LoadLibraryW))>
<winmm.dll:160b (dll/win32/winmm/driver.c:255 (DRIVER_TryOpenDriver32))>
<winmm.dll:171b (dll/win32/winmm/driver.c:354 (OpenDriver))>
<winmm.dll:17f7 (dll/win32/winmm/driver.c:329 (OpenDriverA))>
<winmm.dll:295b (dll/win32/winmm/lolvldrv.c:643 (MMDRV_Install))>
<winmm.dll:2c79 (dll/win32/winmm/lolvldrv.c:745 (MMDRV_Init))>
<winmm.dll:85a1 (dll/win32/winmm/winmm.c:189 (DllMain))>

The offending code is:
         PrimarySurface.PDev = PrimarySurface.DriverFunctions.EnablePDEV(
            &PrimarySurface.DMW,
            L"",
            HS_DDI_MAX,
            PrimarySurface.FillPatterns,
            sizeof(PrimarySurface.GDIInfo),
            (ULONG *) &PrimarySurface.GDIInfo,
            sizeof(PrimarySurface.DevInfo),
            &PrimarySurface.DevInfo,
            NULL,
            L"",
            (HANDLE) (PrimarySurface.VideoFileObject->DeviceObject));
The problem is that PrimarySurface.VideoFileObject is NULL.

50 lines before, you have the following code:
         /* Get the DDI driver's entry point */
         DPRINT1("PrimarySurface.VideoFileObject %p\n", 
PrimarySurface.VideoFileObject);
         GDEnableDriver = DRIVER_FindDDIDriver(CurrentName);
         DPRINT1("PrimarySurface.VideoFileObject %p\n", 
PrimarySurface.VideoFileObject);
Here, PrimarySurface.VideoFileObject is not NULL in the 1st message, and NULL 
in the 2nd one.

The culprit in DRIVER_FindDDIDriver may be:
         /* If not, then load it */
         RtlInitUnicodeString (&GdiDriverInfo.DriverName, (LPWSTR)FullName);
         Status = ZwSetSystemInformation (SystemLoadGdiDriverInformation, 
&GdiDriverInfo, sizeof(SYSTEM_GDI_DRIVER_INFORMATION));
I'm not sure of this because adding some debug output made the bug disappear...

-- 
Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are the QA contact for the bug, or are watching the QA contact.


More information about the Ros-bugs mailing list