[UMPNPMGR] Split the monolithic monster: service, rpc and installer.
[reactos.git] / base / services / umpnpmgr / precomp.h
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 SLIST_ENTRY ListEntry;
39 WCHAR DeviceIds[1];
40 } DeviceInstallParams;
41
42
43 /* install.c */
44
45 extern HANDLE hUserToken;
46 extern HANDLE hInstallEvent;
47 extern HANDLE hNoPendingInstalls;
48
49 extern SLIST_HEADER DeviceInstallListHead;
50 extern HANDLE hDeviceInstallListNotEmpty;
51
52 BOOL
53 SetupIsActive(VOID);
54
55 DWORD
56 WINAPI
57 DeviceInstallThread(
58 LPVOID lpParameter);
59
60
61 /* rpcserver.c */
62
63 DWORD
64 WINAPI
65 RpcServerThread(
66 LPVOID lpParameter);
67
68
69 /* umpnpmgr.c */
70
71 extern HKEY hEnumKey;
72 extern HKEY hClassKey;
73
74
75 #endif /* _UMPNPMGR_PCH_ */