Update idl file too
[reactos.git] / reactos / include / reactos / idl / pnp.idl
1 /*
2 * Plug and Play Manager RPC interface definition
3 */
4
5 #include "include/reactos/idl/wtypes.idl"
6
7 #define CONFIGRET unsigned long
8
9 [
10 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
11 version(1.0),
12 pointer_default(unique)
13 #ifndef __midl
14 ,explicit_handle
15 #endif
16 ]
17 interface pnp
18 {
19 /* Function 0 */
20 // CONFIGRET PNP_Unknown0(handle_t BindingHandle);
21
22 /* Function 1 */
23 // CONFIGRET PNP_Unknown1(handle_t BindingHandle);
24
25 /* Function 2 */
26 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
27 [out] WORD *Version);
28
29 /* Function 3 */
30 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
31 [out] unsigned long *State,
32 [in] unsigned long Flags);
33
34 /* Function 4 */
35 CONFIGRET PNP_InitDetection(handle_t BindingHandle);
36
37 /* Function 5 */
38 CONFIGRET PNP_ReportLogOn(handle_t BindingHandle,
39 [in] BOOL Admin,
40 [in] DWORD ProcessId);
41
42 /* Function 6 */
43 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
44 [in, string] wchar_t *DeviceInstance,
45 [in] DWORD Flags);
46
47 /* Function 7 */
48 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
49 [out, string, size_is(Length)] wchar_t *DeviceInstance,
50 [in] DWORD Length);
51
52 /* Function 8 */
53 cpp_quote("#define PNP_DEVICE_PARENT 1")
54 cpp_quote("#define PNP_DEVICE_CHILD 2")
55 cpp_quote("#define PNP_DEVICE_SIBLING 3")
56 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
57 [in] DWORD Relationship,
58 [in, string] wchar_t *DeviceId,
59 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
60 [in] DWORD Length,
61 [in] DWORD Flags);
62
63 /* Function 9 */
64 cpp_quote("#define PNP_BRANCH_ENUM 1")
65 cpp_quote("#define PNP_BRANCH_CLASS 2")
66 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
67 [in] DWORD Branch,
68 [in] DWORD Index,
69 [out, string, size_is(Length)] wchar_t *Buffer,
70 [in] DWORD Length,
71 [out] DWORD *RequiredLength,
72 [in] DWORD Flags);
73
74 /* Function 10 */
75 // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
76 // [in, unique, string] wchar_t *Filter,
77 // [out, string, size_is(*Length)] unsigned char *Buffer
78 // [in, out] unsigned long *Length,
79 // [in] DWORD Flags);
80
81 /* Function 11 */
82 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
83 [in, unique, string] wchar_t *Filter,
84 [out] unsigned long *Length,
85 [in] DWORD Flags);
86
87 /* Function 12 */
88 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
89 [in, string] wchar_t *DeviceInstance,
90 [out] unsigned long *Depth,
91 [in] DWORD Flags);
92
93 /* Function 13 */
94 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
95 [in, string] wchar_t *DeviceInstance,
96 [in] DWORD Property,
97 [in, out] DWORD *DataType,
98 [out, size_is(*TransferLen)] char *Buffer,
99 [in, out] DWORD *TransferLen,
100 [in, out] DWORD *Length,
101 [in] DWORD Flags);
102
103 /* Function 14 */
104 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
105 [in, string] wchar_t *DeviceId,
106 [in] unsigned long Property,
107 [in] unsigned long DataType,
108 [in, size_is(Length)] char *Buffer,
109 [in] unsigned long Length,
110 [in] unsigned long Flags);
111
112 /* Function 15 */
113 CONFIGRET PNP_GetClassInstance(handle_t BindingHandle,
114 [in, string] wchar_t *DeviceId,
115 [out, string, size_is(Length)] wchar_t *Buffer,
116 [in] unsigned long Length);
117
118 /* Function 16 */
119 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
120 [in, string] wchar_t *SubKey,
121 [in] unsigned long DesiredAccess,
122 [in] unsigned long Flags);
123
124 /* Function 17 */
125 CONFIGRET PNP_DeleteRegistryKey(handle_t BindingHandle,
126 [in, string] wchar_t *DeviceId,
127 [in, string] wchar_t *ParentKey,
128 [in, string] wchar_t *ChildKey,
129 [in] unsigned long Flags);
130
131 /* Function 19 */
132 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
133 [in, string] wchar_t *ClassGuid,
134 [out, string, size_is(*Length)] wchar_t *Buffer,
135 [in, out] unsigned long *Length,
136 [in] unsigned long Flags);
137
138 /* Function 20 */
139 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
140 [in, string] wchar_t *ClassGuid,
141 [in] unsigned long Flags);
142
143 /* Function 28 */
144 CONFIGRET PNP_CreateDevInst(handle_t BindingHandle,
145 [in, out, string, size_is(Length)] wchar_t *DeviceId,
146 [in, string] wchar_t *ParentDeviceId,
147 [in] unsigned long Length,
148 [in] unsigned long Flags);
149
150 /* Function 29 */
151 CONFIGRET PNP_DeviceInstanceAction(handle_t BindingHandle,
152 [in] unsigned long MajorAction,
153 [in] unsigned long MinorAction,
154 [in, unique, string] wchar_t *DeviceInstance1,
155 [in, unique, string] wchar_t *DeviceInstance2);
156
157 /* Function 30 */
158 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
159 [in, string] wchar_t *DeviceInstance,
160 [out] unsigned long *Status,
161 [out] unsigned long *Problem,
162 [in] DWORD Flags);
163
164 /* Function 31 */
165 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
166 [in, string] wchar_t *DeviceInstance,
167 [in] unsigned long Problem,
168 [in] DWORD Flags);
169
170 /* Function 33 */
171 CONFIGRET PNP_UninstallDevInst(handle_t BindingHandle,
172 [in, string] wchar_t *DeviceInstance,
173 [in] DWORD Flags);
174
175 /* Function 34 */
176 CONFIGRET PNP_AddID(handle_t BindingHandle,
177 [in, string, unique] wchar_t *DeviceInstance,
178 [in, string] wchar_t *DeviceId,
179 [in] DWORD Flags);
180
181 /* Function 38 */
182 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
183 [out]PBOOL Present);
184
185 /* Function 39 */
186 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
187
188 /* Function 40 */
189 cpp_quote("#define PNP_SET_HW_PROFILE_FLAGS 0")
190 cpp_quote("#define PNP_GET_HW_PROFILE_FLAGS 1")
191 CONFIGRET PNP_HwProfFlags(handle_t BindingHandle,
192 [in] DWORD Action,
193 [in, string] wchar_t *DeviceId,
194 [in] DWORD ProfileId,
195 [in, out] DWORD *Value,
196 [in] DWORD Flags);
197
198 /* Function 42 */
199 CONFIGRET PNP_AddEmptyLogConf(handle_t BindingHandle,
200 [in, string] wchar_t *DeviceInstance,
201 [in] ULONG ulPriority,
202 [out] ULONG *pulLogConfTag,
203 [in] ULONG ulFlags);
204
205 /* Function 43 */
206 CONFIGRET PNP_FreeLogConf(handle_t BindingHandle,
207 [in, string] wchar_t *DeviceInstance,
208 [in] ULONG ulType,
209 [in] ULONG ulLogConfTag,
210 [in] ULONG ulFlags);
211
212 /* Function 44 */
213 CONFIGRET PNP_GetFirstLogConf(handle_t BindingHandle,
214 [in, string] wchar_t *DeviceInstance,
215 [in] ULONG ulPriority,
216 [out] ULONG *pulLogConfTag,
217 [in] ULONG ulFlags);
218
219 /* Function 45 */
220 CONFIGRET PNP_GetNextLogConf(handle_t BindingHandle,
221 [in, string] wchar_t *DeviceInstance,
222 [in] ULONG ulLogConfType,
223 [in] ULONG ulCurrentTag,
224 [out] ULONG *pulNextTag,
225 [in] ULONG ulFlags);
226
227 /* Function 46 */
228 CONFIGRET PNP_GetLogConfPriority(handle_t BindingHandle,
229 [in, string] wchar_t *DeviceInstance,
230 [in] ULONG ulLogConfType,
231 [in] ULONG ulCurrentTag,
232 [out] ULONG *pPriority,
233 [in] ULONG ulFlags);
234
235 /* Function 58 */
236 CONFIGRET PNP_RunDetection(handle_t BindingHandle,
237 [in] unsigned long Flags);
238 }