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

ResetDevice in setupapi.dll uses NtPlugPlayControl

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.3.9
    • Drivers: Other
    • None
    • Operating System: ReactOS
      Platform: x86 Hardware

    Description

      When you boot up ReactOS in VirtualBox after r40513, you'll find the following line in the debug log:

      (ntoskrnl\io\pnpmgr\plugplay.c:785) NtGetPlugPlayEvent: Caller does not hold the SeTcbPrivilege privilege!

      This happens, because newdev.dll correctly runs in the context of the current user now. As newdev.dll makes use of a setupapi.dll function calling setupapi's internal ResetDevice function, which itself incorrectly calls NtPlugPlayControl, the latter function fails.

      I guess setupapi.dll should rather use an umpnpmgr RPC call for resetting the device. Looking at MSDN, the most suitable one seems to be PNP_DeviceInstanceAction with PNP_DEVINST_SETUP and CM_SETUP_DEVINST_RESET.
      On the other hand, MSDN also says that CM_SETUP_DEVINST_RESET doesn't start the device while the current ResetDevice function does that (see also ntoskrnl/io/pnpmgr/plugplay.c:572).

      Assigning this bug to Hervé as he originally implemented setupapi's ResetDevice and can hopefully do something about this bug.

      Attachments

        Activity

          People

            hpoussin hpoussin
            Colin Finck Colin Finck
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: