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

ReactOS fails to boot properly with Intel HD 4400 graphics driver

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • Win32SS
    • MSI MS-7816 motherboard, Intel HD 4400 graphics controller

    Description

      Download driver: https://dr-dl-1.xyz/drv/common/Intel_Corporation_Intel_R__HD_Graphics_Family_Haswell_6.14.10.5445.zip (old XP version from 3rd-party website).

      After extracting it from zip archive, installing via Device Manager and reboot, ROS does not boot properly anymore.

      It fails with the following asserts from MM: https://git.reactos.org/?p=reactos.git;a=blob;f=ntoskrnl/mm/ARM3/contmem.c;h=e8895b0a2fea6e67cd29db52f897e25f69fa2a50;hb=HEAD#l391, https://git.reactos.org/?p=reactos.git;a=blob;f=ntoskrnl/mm/ARM3/contmem.c;h=e8895b0a2fea6e67cd29db52f897e25f69fa2a50;hb=HEAD#l586, as visible on before.jpg screenshot. If to ignore them, then the system fails with BSOD when it tries to initialize win32k, obviously due to missing/not loaded graphics driver.

      Noticeable that before appearing the 1st assert, I see a DPRINT from VideoPortSetTrappedEmulatorPorts and VideoPortRegisterBugcheckCallback stubs in our videoprt driver. Since the 1st one is imported by the Intel driver (as Dependency Walker shows), but 2nd one is not, I looked to that code. Indeed, the 1st stub is causing a problem: it returns success (NO_ERROR) when the function actually does nothing (since it's not implemented). According to MSDN: https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/video/nf-video-videoportsettrappedemulatorports#return-value, if it does not change any trapped ports, it should return ERROR_INVALID_PARAMETER instead. So just returning the appropriate status is more suitable in this case than faking success.
      After changing the return value, the system does no longer fail at boot with installed driver, and even asserts mentioned above are no longer happening, as visible on after.png screenshot.

      I'll submit a PR with fix in the near time.

      P.S.: Sorry, I'm not able to obtain a full text log (if you need that), because for some reason it is not created on drive until the system loads into user mode (when booting in LogFile mode). Perhaps it regressed after KD improvements and still was not completely fixed later. Debugging via COM also isn't an option for me, since I have no cable for connecting to COM ports.

      P.P.S.: my motherboard is MSI MS-7816, this video controller is integrated into it. But after my fix, ROS also might boot successfully with other Intel graphics cards on the other configurations. Feel free to test it on your hardware.

      Attachments

        1. 1st_backtrace_1.jpg
          1st_backtrace_1.jpg
          2.21 MB
        2. 1st_backtrace_2.jpg
          1st_backtrace_2.jpg
          2.48 MB
        3. 2nd_backtrace_1.jpg
          2nd_backtrace_1.jpg
          2.28 MB
        4. 2nd_backtrace_2.jpg
          2nd_backtrace_2.jpg
          2.45 MB
        5. 3rd_backtrace.jpg
          3rd_backtrace.jpg
          2.03 MB
        6. after.png
          after.png
          636 kB
        7. before.jpg
          before.jpg
          2.64 MB
        8. debug.log
          273 kB

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Oleg Dubinskij Oleg Dubinskiy
              Votes:
              6 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: