- Use rundll32.exe and CreateProcessAsUserW to call ClientSideInstallW for installing...
authorColin Finck <colin@reactos.org>
Tue, 14 Apr 2009 22:31:36 +0000 (22:31 +0000)
committerColin Finck <colin@reactos.org>
Tue, 14 Apr 2009 22:31:36 +0000 (22:31 +0000)
commit484b6902f1062ba802c284c0bd0ee02687703276
tree5e5b69b2650a36005d23cabcfb7b7bc8ac95c224
parent2ef63b5190d1c1e47393e1a9ad608d77143d968d
- Use rundll32.exe and CreateProcessAsUserW to call ClientSideInstallW for installing new devices and supply all required information over a named pipe.
  The named pipe communication was monitored under Windows XP SP2, so that the protocol under ReactOS is compatible (except for one data field, see code)
- Implement ClientSideInstallW in newdev.dll
- Give umpnpmgr the SE_ASSIGNPRIMARYTOKEN privilege to use CreateProcessAsUserW
- Open the token of the userinit process with TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_QUERY, we don't get TOKEN_ALL_ACCESS and used to fail here without noticing it
- Return CR_FAILURE in case of problems inside PNP_ReportLogOn

This stuff by the way fixes the "Browse" button in a "New hardware device" dialog
See issue #4363 for more details.

svn path=/trunk/; revision=40513
reactos/base/services/umpnpmgr/umpnpmgr.c
reactos/base/services/umpnpmgr/umpnpmgr.rbuild
reactos/dll/win32/newdev/newdev.c