Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-20008

nvidia forceware v81.85 causes Pfn1 assert in NTOSKRNL on 64bit ReactOS.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • None

    Description

      i'm testing the following self complied ReactOS 64bit livecd msvc build:

      https://github.com/reactos/reactos/commit/a236c39ee547e7690dfd2f856b42986f50891f1a

      with a Nvidia Geforce 6800GT and the v81.85 64bit drivers

      https://web.archive.org/web/20070222135106if_/http://download.nvidia.com:80/Windows/81.85_whql/64/81.85_forceware_winxp64_english_whql.exe

       

      (ntoskrnl\mm\ARM3\sysldr.c:170) Loading: \SystemRoot\system32\drivers\nv4_mini.sys at FFFFF88004AF1000 with 46c pages
      (ntoskrnl\mm\ARM3\sysldr.c:170) Loading: \SystemRoot\system32\drivers\VIDEOPRT.SYS at FFFFF88004ACD000 with 24 pages
      (ntoskrnl\mm\ARM3\sysldr.c:2592) ImageBase 0xFFFFF88004AF1000 ImageSize 0x46bf80 Section 9 VA 0x459080 Raw 0x12f00 virt 0x12ede
      (win32ss\drivers\videoprt\registry.c:315) Failed to open device software key. Status 0xc0000034
      (ntoskrnl\io\pnpmgr\pnpres.c:648) Resource conflict: IRQ (0xa 0xa vs. 0xa 0xa)
      (ntoskrnl\io\pnpmgr\pnpres.c:648) Resource conflict: IRQ (0xa 0xa vs. 0xa 0xa)
      WARNING:  VideoPortRegisterBugcheckCallback at win32ss\drivers\videoprt\videoprt.c:1659 is UNIMPLEMENTED!
      Assertion D:\reactos\ntoskrnl\mm\freelist.c(321): Pfn1
      nt!MiAllocatePagesForMdl+0x45e:
      fffff800`0053271e cd2c            int     2Ch
      kd> .reload
      Connected to Windows Server 2003 3790 x64 target at (Mon Feb 24 14:23:28.311 2025 (UTC - 9:00)), ptr64 TRUE
      Loading Kernel Symbols
      .............................
      Loading User Symbols
       
      *** ERROR: Module load completed but symbols could not be loaded for nv4_mini.sys
      kd> kp
      Child-SP          RetAddr           Call Site
      fffff880`04fc4e30 fffff800`004f1f32 nt!MiAllocatePagesForMdl(union _LARGE_INTEGER LowAddress = union _LARGE_INTEGER 0x0, union _LARGE_INTEGER HighAddress = union _LARGE_INTEGER 0xffffffff, union _LARGE_INTEGER SkipBytes = union _LARGE_INTEGER 0x0, unsigned int64 TotalBytes = 0x1000, _MI_PFN_CACHE_ATTRIBUTE CacheAttribute = MiNotMapped (0n3), unsigned long MdlFlags = 0)+0x45e [D:\reactos\ntoskrnl\mm\freelist.c @ 321]
      fffff880`04fc4f10 fffff880`04b51033 nt!MmAllocatePagesForMdl(union _LARGE_INTEGER LowAddress = union _LARGE_INTEGER 0x0, union _LARGE_INTEGER HighAddress = union _LARGE_INTEGER 0xffffffff, union _LARGE_INTEGER SkipBytes = union _LARGE_INTEGER 0x0, unsigned int64 TotalBytes = 0x1000)+0x42 [D:\reactos\ntoskrnl\mm\ARM3\mdlsup.c @ 503]
      fffff880`04fc4f50 fffff880`04b5518e nv4_mini+0x60033
      fffff880`04fc4fc0 fffff880`04b2352f nv4_mini+0x6418e
      fffff880`04fc50c0 fffff880`04b23aae nv4_mini+0x3252f
      fffff880`04fc5140 fffff880`04c9bf98 nv4_mini+0x32aae
      fffff880`04fc5240 fffff880`04d2eb73 nv4_mini+0x1aaf98
      fffff880`04fc53f0 fffff880`04b75dec nv4_mini+0x23db73
      fffff880`04fc5430 fffff880`04b7845d nv4_mini+0x84dec
      fffff880`04fc5470 fffff880`04b37062 nv4_mini+0x8745d
      fffff880`04fc54c0 fffff880`04b527a0 nv4_mini+0x46062
      fffff880`04fc54f0 fffff880`04af5405 nv4_mini+0x617a0
      fffff880`04fc5580 fffff880`04f41b3f nv4_mini+0x4405
      fffff880`04fc55d0 fffff880`04adf41c nv4_mini+0x450b3f
      fffff880`04fc58b0 fffff880`04ad2f85 VIDEOPRT!IntVideoPortFindAdapter(struct _DRIVER_OBJECT * DriverObject = 0xfffffa81`88b06e70, struct _VIDEO_PORT_DRIVER_EXTENSION * DriverExtension = 0xfffffa81`88b0bf50, struct _DEVICE_OBJECT * DeviceObject = 0xfffffa81`88ae3080)+0x25c [D:\reactos\win32ss\drivers\videoprt\videoprt.c @ 514]
      fffff880`04fc5a40 fffff880`04ad2250 VIDEOPRT!IntVideoPortPnPStartDevice(struct _DEVICE_OBJECT * DeviceObject = 0xfffffa81`88ae3080, struct _IRP * Irp = 0xfffffa81`88c0f010)+0x465 [D:\reactos\win32ss\drivers\videoprt\dispatch.c @ 924]
      fffff880`04fc5b10 fffff880`04ad2728 VIDEOPRT!IntVideoPortDispatchFdoPnp(struct _DEVICE_OBJECT * DeviceObject = 0xfffffa81`88ae3080, struct _IRP * Irp = 0xfffffa81`88c0f010)+0x90 [D:\reactos\win32ss\drivers\videoprt\dispatch.c @ 1047]
      fffff880`04fc5b60 fffff800`0049f67f VIDEOPRT!IntVideoPortDispatchPnp(struct _DEVICE_OBJECT * DeviceObject = 0xfffffa81`88ae3080, struct _IRP * Irp = 0xfffffa81`88c0f010)+0x38 [D:\reactos\win32ss\drivers\videoprt\dispatch.c @ 1116]
      fffff880`04fc5ba0 fffff800`004b280b nt!IofCallDriver(struct _DEVICE_OBJECT * DeviceObject = 0xfffffa81`88ae3080, struct _IRP * Irp = 0xfffffa81`88c0f010)+0xdf [D:\reactos\ntoskrnl\io\iomgr\irp.c @ 1288]
      fffff880`04fc5c00 fffff800`004b35d4 nt!IopSynchronousCall(struct _DEVICE_OBJECT * DeviceObject = 0xfffffa81`88bc96b0, struct _IO_STACK_LOCATION * IoStackLocation = 0xfffff880`04fc5d18, void ** Information = 0xfffff880`04fc5cf8)+0x18b [D:\reactos\ntoskrnl\io\pnpmgr\pnpirp.c @ 67]
      fffff880`04fc5cd0 fffff800`004aba1f nt!PiIrpStartDevice(struct _DEVICE_NODE * DeviceNode = 0xfffffa81`88bc9460)+0x174 [D:\reactos\ntoskrnl\io\pnpmgr\pnpirp.c @ 104]
      fffff880`04fc5d90 fffff800`004adcb4 nt!PiDevNodeStateMachine(struct _DEVICE_NODE * RootNode = 0xfffffa81`88c91790)+0x14f [D:\reactos\ntoskrnl\io\pnpmgr\devaction.c @ 2361]
      fffff880`04fc5e10 fffff800`004570a2 nt!PipDeviceActionWorker(void * Context = 0x00000000`00000000)+0x174 [D:\reactos\ntoskrnl\io\pnpmgr\devaction.c @ 2578]
      fffff880`04fc5e90 fffff800`005742cf nt!ExpWorkerThreadEntryPoint(void * Context = 0x00000000`00000001)+0x292 [D:\reactos\ntoskrnl\ex\work.c @ 161]
      fffff880`04fc5f90 fffff800`0040266b nt!PspSystemThreadStartup(<function> * StartRoutine = 0xfffff800`00456e10, void * StartContext = 0x00000000`00000001)+0x4f [D:\reactos\ntoskrnl\ps\thread.c @ 158]
      fffff880`04fc5fd0 fffff800`0040266f nt!KiThreadStartup+0x3b
      fffff880`04fc6000 00000000`00000000 nt!KiThreadStartup+0x3f 

      a full debug log is here:

      ReactOS_64bit_plus_Geforce_6800GT_v81.85_drivers.txt

       

      the following files need to be added to livecd:

      nv4_disp.dll
      nv4_mini.sys
      nvoglnt.dll 

       

      and the following drivers need to be renamed or deleted from livecd to avoid hangs or BSOD.

      REACTOS\SYSTEM32\DRIVERS\PCIIDE.SYS
      REACTOS\SYSTEM32\DRIVERS\PCIIDEX.SYS
      REACTOS\SYSTEM32\DRIVERS\UNIATA.SYS
      REACTOS\SYSTEM32\DRIVERS\USBEHCI.SYS
      REACTOS\SYSTEM32\DRIVERS\USBOHCI.SYS
      REACTOS\SYSTEM32\DRIVERS\USBUHCI.SYS 

      The following changes need to be added to boot/bootdata/hivesys.inf

      HKLM,"SYSTEM\CurrentControlSet\Services\nv","ErrorControl",0x00010001,0x00000000
      HKLM,"SYSTEM\CurrentControlSet\Services\nv","Group",0x00000000,"Video"
      HKLM,"SYSTEM\CurrentControlSet\Services\nv","ImagePath",0x00020000,"system32\drivers\nv4_mini.sys"
      HKLM,"SYSTEM\CurrentControlSet\Services\nv","Start",0x00010001,0x00000001
      HKLM,"SYSTEM\CurrentControlSet\Services\nv","Type",0x00010001,0x00000001
      HKLM,"SYSTEM\CurrentControlSet\Services\nv","Tag",0x00010001,0x00000001
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Video","Service",0x00000000,"nv"
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","InstalledDisplayDrivers",0x00010000,"nv4_disp"
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","DefaultSettings.BitsPerPel",0x00010001,32
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","DefaultSettings.XResolution",0x00010001,1024
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","DefaultSettings.YResolution",0x00010001,768
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","DefaultSettings.VgaCompatible",0x00010001,0
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","Acceleration.Level",0x00010001,0
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","Attach.PrimaryDevice",0x00010001,1
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","Attach.ToDesktop",0x00010001,1
      HKLM,"SYSTEM\CurrentControlSet\Services\nv\Device0","Device Description",0x00000000,"NVIDIA GeForce 6800GT"
      HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_10DE&DEV_00F9","Service",0x00000000,"nv"
      HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_10DE&DEV_00F9","ClassGUID",0x00000000,"{4D36E968-E325-11CE-BFC1-08002BE10318}" 

       

      and rem the following lines in boot/bootdata/hivesys.inf

      ;HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0300","Service",0x00000000,"vga"
      ;HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#CC_0300","ClassGUID",0x00000000,"{4D36E968-E325-11CE-BFC1-08002BE10318}" 

      changes also need to be made to boot/bootdata/hivesft.inf for opengl support and testing but not for reproduction of this bug.

      ;Geforce 6800GT
      HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\RIVATNT","DriverVersion",0x00010001,0x00010000
      HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\RIVATNT","Version",0x00010001,0x00000002
      HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\RIVATNT","Flags",0x00010001,0x00000001
      HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\RIVATNT","Dll",,"nvoglnt" 

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Zombiedeth Zombiedeth
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: