From 2dbda08b7e48eefaa7f16a82a9895907906e99c0 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Sat, 19 Nov 2005 13:27:27 +0000 Subject: [PATCH] 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}" svn path=/trunk/; revision=19342 --- reactos/lib/newdev/newdev.c | 19 +++++++++++++++++++ reactos/lib/newdev/newdev.def | 1 + 2 files changed, 20 insertions(+) diff --git a/reactos/lib/newdev/newdev.c b/reactos/lib/newdev/newdev.c index bd6ece00c5a..675faeacae2 100644 --- a/reactos/lib/newdev/newdev.c +++ b/reactos/lib/newdev/newdev.c @@ -873,6 +873,12 @@ DevInstallW( 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 */ @@ -1026,6 +1032,17 @@ DevInstallW( return TRUE; } +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-xxxxxxxxxxxx}" + */ + return FALSE; +} + BOOL WINAPI DllMain( IN HINSTANCE hInstance, @@ -1036,6 +1053,8 @@ DllMain( { INITCOMMONCONTROLSEX InitControls; + DisableThreadLibraryCalls(hInstance); + InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX); InitControls.dwICC = ICC_PROGRESS_CLASS; InitCommonControlsEx(&InitControls); diff --git a/reactos/lib/newdev/newdev.def b/reactos/lib/newdev/newdev.def index 61110e4db06..004c9cd7e57 100644 --- a/reactos/lib/newdev/newdev.def +++ b/reactos/lib/newdev/newdev.def @@ -1,6 +1,7 @@ LIBRARY newdev.dll EXPORTS +ClientSideInstallW@12 DevInstallW@16 ;InstallDevInst ;InstallDevInstEx