Add a stub for ClientSideInstallW. umpnpmgr is supposed to run rundll32 in the context of the currently logged on user like this: "rundll32.exe newdev.dll,ClientSideInstall \.\pipe\PNP_Device_Install_Pipe_0.{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx }" Modified: trunk/reactos/lib/newdev/newdev.c Modified: trunk/reactos/lib/newdev/newdev.def _____
Modified: trunk/reactos/lib/newdev/newdev.c --- trunk/reactos/lib/newdev/newdev.c 2005-11-19 09:29:20 UTC (rev 19341) +++ trunk/reactos/lib/newdev/newdev.c 2005-11-19 13:27:27 UTC (rev 19342) @@ -873,6 +873,12 @@
DWORD config_flags; /*TCHAR buf[128];*/
+ if (!IsUserAdmin()) + { + /* XP kills the process... */ + ExitProcess(ERROR_ACCESS_DENIED); + } + /* Clear devinst data */ ZeroMemory(&DevInstData, sizeof(DEVINSTDATA)); DevInstData.devInfoData.cbSize = 0; /* Tell if the devInfoData is valid */ @@ -1027,6 +1033,17 @@ }
BOOL WINAPI +ClientSideInstallW(IN HWND hWndOwner, + IN DWORD dwUnknownFlags, + IN LPWSTR lpNamedPipeName) +{ + /* NOTE: pNamedPipeName is in the format: + * "\.\pipe\PNP_Device_Install_Pipe_0.{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx x}" + */ + return FALSE; +} + +BOOL WINAPI DllMain( IN HINSTANCE hInstance, IN DWORD dwReason, @@ -1036,6 +1053,8 @@ { INITCOMMONCONTROLSEX InitControls;
+ DisableThreadLibraryCalls(hInstance); + InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX); InitControls.dwICC = ICC_PROGRESS_CLASS; InitCommonControlsEx(&InitControls); _____
Modified: trunk/reactos/lib/newdev/newdev.def --- trunk/reactos/lib/newdev/newdev.def 2005-11-19 09:29:20 UTC (rev 19341) +++ trunk/reactos/lib/newdev/newdev.def 2005-11-19 13:27:27 UTC (rev 19342) @@ -1,6 +1,7 @@
LIBRARY newdev.dll
EXPORTS +ClientSideInstallW@12 DevInstallW@16 ;InstallDevInst ;InstallDevInstEx