-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnewdev.h
157 lines (132 loc) · 3.73 KB
/
newdev.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/*
* newdev.h
*
* Driver installation DLL interface
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Casper S. Hornstrup <[email protected]>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#pragma once
#include <setupapi.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <pshpack1.h>
/* UpdateDriverForPlugAndPlayDevices.InstallFlags constants */
#define INSTALLFLAG_FORCE 0x00000001
#define INSTALLFLAG_READONLY 0x00000002
#define INSTALLFLAG_NONINTERACTIVE 0x00000004
#define INSTALLFLAG_BITS 0x00000007
#if (WINVER >= _WIN32_WINNT_WIN2K)
WINBOOL
WINAPI
UpdateDriverForPlugAndPlayDevicesA(
HWND hwndParent,
LPCSTR HardwareId,
LPCSTR FullInfPath,
DWORD InstallFlags,
PBOOL bRebootRequired OPTIONAL);
WINBOOL
WINAPI
UpdateDriverForPlugAndPlayDevicesW(
HWND hwndParent,
LPCWSTR HardwareId,
LPCWSTR FullInfPath,
DWORD InstallFlags,
PBOOL bRebootRequired OPTIONAL);
#ifdef UNICODE
#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesW
#else
#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesA
#endif /* UNICODE */
#endif /* (WINVER >= _WIN32_WINNT_WIN2K) */
#if (WINVER >= _WIN32_WINNT_VISTA)
#define DIIDFLAG_SHOWSEARCHUI 0x00000001
#define DIIDFLAG_NOFINISHINSTALLUI 0x00000002
#define DIIDFLAG_INSTALLNULLDRIVER 0x00000004
#define DIIDFLAG_BITS 0x00000007
#define DIIRFLAG_INF_ALREADY_COPIED 0x00000001
#define DIIRFLAG_FORCE_INF 0x00000002
#define DIIRFLAG_HW_USING_THE_INF 0x00000004
#define DIIRFLAG_HOTPATCH 0x00000008
#define DIIRFLAG_NOBACKUP 0x00000010
#define DIIRFLAG_BITS ( DIIRFLAG_FORCE_INF | DIIRFLAG_HOTPATCH)
#define DIIRFLAG_SYSTEM_BITS ( DIIRFLAG_INF_ALREADY_COPIED |\
DIIRFLAG_FORCE_INF |\
DIIRFLAG_HW_USING_THE_INF |\
DIIRFLAG_HOTPATCH |\
DIIRFLAG_NOBACKUP )
#define ROLLBACK_FLAG_NO_UI 0x00000001
#define ROLLBACK_BITS 0x00000001
WINBOOL
WINAPI
DiInstallDevice(
HWND hwndParent OPTIONAL,
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData,
PSP_DRVINFO_DATA DriverInfoData OPTIONAL,
DWORD Flags,
PBOOL NeedReboot OPTIONAL);
WINBOOL
WINAPI
DiShowUpdateDevice(
HWND hwndParent OPTIONAL,
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData,
DWORD Flags,
PBOOL NeedReboot OPTIONAL);
WINBOOL
WINAPI
DiRollbackDriver(
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData,
HWND hwndParent OPTIONAL,
DWORD Flags,
PBOOL NeedReboot OPTIONAL);
WINBOOL
WINAPI
DiInstallDriverW(
HWND hwndParent OPTIONAL,
LPCWSTR InfPath,
DWORD Flags,
PBOOL NeedReboot OPTIONAL);
WINBOOL
WINAPI
DiInstallDriverA(
HWND hwndParent OPTIONAL,
LPCSTR InfPath,
DWORD Flags,
PBOOL NeedReboot OPTIONAL);
#ifdef UNICODE
#define DiInstallDriver DiInstallDriverW
#else
#define DiInstallDriver DiInstallDriverA
#endif
#endif /* (WINVER >= _WIN32_WINNT_VISTA) */
#if (WINVER >= _WIN32_WINNT_WIN7)
WINBOOL
WINAPI
DiUninstallDevice(
HWND hwndParent,
HDEVINFO DeviceInfoSet,
PSP_DEVINFO_DATA DeviceInfoData,
DWORD Flags,
PBOOL NeedReboot OPTIONAL);
#endif /* (WINVER >= _WIN32_WINNT_WIN7) */
#include <poppack.h>
#ifdef __cplusplus
}
#endif