1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS kernel 4 * FILE: base/services/umpnpmgr/install.c 5 * PURPOSE: Device installer 6 * PROGRAMMER: Eric Kohl (eric.kohl@reactos.org) 7 * Hervé Poussineau (hpoussin@reactos.org) 8 * Colin Finck (colin@reactos.org) 9 */ 10 11 #ifndef _UMPNPMGR_PCH_ 12 #define _UMPNPMGR_PCH_ 13 14 #define WIN32_NO_STATUS 15 #define _INC_WINDOWS 16 #define COM_NO_WINDOWS_H 17 #include <stdarg.h> 18 #include <windef.h> 19 #include <winbase.h> 20 #include <winreg.h> 21 #include <winsvc.h> 22 #include <winuser.h> 23 #include <dbt.h> 24 #include <stdio.h> 25 #include <cmfuncs.h> 26 #include <rtlfuncs.h> 27 #include <setypes.h> 28 #include <umpnpmgr/sysguid.h> 29 #include <cfgmgr32.h> 30 #include <regstr.h> 31 #include <userenv.h> 32 #include <shlwapi.h> 33 #include <pnp_s.h> 34 35 36 typedef struct 37 { 38 LIST_ENTRY ListEntry; 39 WCHAR DeviceIds[ANYSIZE_ARRAY]; 40 } DeviceInstallParams; 41 42 typedef struct 43 { 44 LIST_ENTRY ListEntry; 45 PWSTR pszName; 46 } NOTIFY_ENTRY, *PNOTIFY_ENTRY; 47 48 /* event.c */ 49 50 DWORD 51 WINAPI 52 PnpEventThread( 53 LPVOID lpParameter); 54 55 56 /* install.c */ 57 58 extern HANDLE hUserToken; 59 extern HANDLE hInstallEvent; 60 extern HANDLE hNoPendingInstalls; 61 62 /* Device-install event list */ 63 extern HANDLE hDeviceInstallListMutex; 64 extern LIST_ENTRY DeviceInstallListHead; 65 extern HANDLE hDeviceInstallListNotEmpty; 66 67 BOOL 68 SetupIsActive(VOID); 69 70 DWORD 71 WINAPI 72 DeviceInstallThread( 73 LPVOID lpParameter); 74 75 76 /* rpcserver.c */ 77 78 extern LIST_ENTRY NotificationListHead; 79 80 DWORD 81 WINAPI 82 RpcServerThread( 83 LPVOID lpParameter); 84 85 86 /* umpnpmgr.c */ 87 88 extern HKEY hEnumKey; 89 extern HKEY hClassKey; 90 extern BOOL g_IsUISuppressed; 91 92 BOOL 93 GetSuppressNewUIValue(VOID); 94 95 #endif /* _UMPNPMGR_PCH_ */ 96