1 | /*
|
---|
2 | plug and play services
|
---|
3 | */
|
---|
4 |
|
---|
5 | import "misc.idl";
|
---|
6 |
|
---|
7 | [
|
---|
8 | uuid("8d9f4e40-a03d-11ce-8f69-08003e30051b"),
|
---|
9 | version(1.0),
|
---|
10 | endpoint("ncacn_np:[\\pipe\\ntsvcs]","ncacn_np:[\\pipe\\plugplay]"),
|
---|
11 | helpstring("Plug and Play services")
|
---|
12 | ]
|
---|
13 | interface ntsvcs
|
---|
14 | {
|
---|
15 | /******************/
|
---|
16 | /* Function: 0x00 */
|
---|
17 |
|
---|
18 | [todo] WERROR PNP_Disconnect();
|
---|
19 |
|
---|
20 | /******************/
|
---|
21 | /* Function: 0x01 */
|
---|
22 |
|
---|
23 | [todo] WERROR PNP_Connect();
|
---|
24 |
|
---|
25 | /******************/
|
---|
26 | /* Function: 0x02 */
|
---|
27 |
|
---|
28 | WERROR PNP_GetVersion(
|
---|
29 | [out,ref] uint16 *version
|
---|
30 | );
|
---|
31 |
|
---|
32 | /******************/
|
---|
33 | /* Function: 0x03 */
|
---|
34 |
|
---|
35 | [todo] WERROR PNP_GetGlobalState();
|
---|
36 |
|
---|
37 | /******************/
|
---|
38 | /* Function: 0x04 */
|
---|
39 |
|
---|
40 | [todo] WERROR PNP_InitDetection();
|
---|
41 |
|
---|
42 | /******************/
|
---|
43 | /* Function: 0x05 */
|
---|
44 |
|
---|
45 | [todo] WERROR PNP_ReportLogOn();
|
---|
46 |
|
---|
47 | /******************/
|
---|
48 | /* Function: 0x06 */
|
---|
49 |
|
---|
50 | WERROR PNP_ValidateDeviceInstance(
|
---|
51 | [in,ref] [string,charset(UTF16)] uint16 *devicepath,
|
---|
52 | [in] uint32 flags
|
---|
53 | );
|
---|
54 |
|
---|
55 | /******************/
|
---|
56 | /* Function: 0x07 */
|
---|
57 |
|
---|
58 | [todo] WERROR PNP_GetRootDeviceInstance();
|
---|
59 |
|
---|
60 | /******************/
|
---|
61 | /* Function: 0x08 */
|
---|
62 |
|
---|
63 | [todo] WERROR PNP_GetRelatedDeviceInstance();
|
---|
64 |
|
---|
65 | /******************/
|
---|
66 | /* Function: 0x09 */
|
---|
67 |
|
---|
68 | [todo] WERROR PNP_EnumerateSubKeys();
|
---|
69 |
|
---|
70 | /******************/
|
---|
71 | /* Function: 0x0a */
|
---|
72 |
|
---|
73 | const int CM_GETIDLIST_FILTER_NONE = 0x00000000;
|
---|
74 |
|
---|
75 | typedef [bitmap32bit] bitmap {
|
---|
76 | CM_GETIDLIST_FILTER_ENUMERATOR = 0x00000001,
|
---|
77 | CM_GETIDLIST_FILTER_SERVICE = 0x00000002,
|
---|
78 | CM_GETIDLIST_FILTER_EJECTRELATIONS = 0x00000004,
|
---|
79 | CM_GETIDLIST_FILTER_REMOVALRELATIONS = 0x00000008,
|
---|
80 | CM_GETIDLIST_FILTER_POWERRELATIONS = 0x00000010,
|
---|
81 | CM_GETIDLIST_FILTER_BUSRELATIONS = 0x00000020,
|
---|
82 | CM_GETIDLIST_DONOTGENERATE = 0x10000040,
|
---|
83 | CM_GETIDLIST_FILTER_TRANSPORTRELATIONS = 0x00000080,
|
---|
84 | CM_GETIDLIST_FILTER_PRESENT = 0x00000100,
|
---|
85 | CM_GETIDLIST_FILTER_CLASS = 0x00000200
|
---|
86 | } PNP_GetIdListFlags;
|
---|
87 |
|
---|
88 | WERROR PNP_GetDeviceList(
|
---|
89 | [in,unique] [string,charset(UTF16)] uint16 *filter,
|
---|
90 | [out,ref] [size_is(*length),length_is(*length)] uint16 *buffer,
|
---|
91 | [in,out,ref] uint32 *length,
|
---|
92 | [in] PNP_GetIdListFlags flags
|
---|
93 | );
|
---|
94 |
|
---|
95 | /******************/
|
---|
96 | /* Function: 0x0b */
|
---|
97 |
|
---|
98 | WERROR PNP_GetDeviceListSize(
|
---|
99 | [in,unique] [string,charset(UTF16)] uint16 *devicename,
|
---|
100 | [out,ref] uint32 *size,
|
---|
101 | [in] PNP_GetIdListFlags flags
|
---|
102 | );
|
---|
103 |
|
---|
104 | /******************/
|
---|
105 | /* Function: 0x0c */
|
---|
106 |
|
---|
107 | [todo] WERROR PNP_GetDepth();
|
---|
108 |
|
---|
109 | /******************/
|
---|
110 | /* Function: 0x0d */
|
---|
111 |
|
---|
112 | const int DEV_REGPROP_DESC = 1;
|
---|
113 |
|
---|
114 | WERROR PNP_GetDeviceRegProp(
|
---|
115 | [in,ref] [string,charset(UTF16)] uint16 *devicepath,
|
---|
116 | [in] uint32 property,
|
---|
117 | [in,out,ref] winreg_Type *reg_data_type,
|
---|
118 | [out,ref] [size_is(*buffer_size)] [length_is(*buffer_size)] uint8 *buffer,
|
---|
119 | [in,out,ref] uint32 *buffer_size,
|
---|
120 | [in,out,ref] uint32 *needed,
|
---|
121 | [in] uint32 flags
|
---|
122 | );
|
---|
123 |
|
---|
124 | /******************/
|
---|
125 | /* Function: 0x0e */
|
---|
126 |
|
---|
127 | [todo] WERROR PNP_SetDeviceRegProp();
|
---|
128 |
|
---|
129 | /******************/
|
---|
130 | /* Function: 0x0f */
|
---|
131 |
|
---|
132 | [todo] WERROR PNP_GetClassInstance();
|
---|
133 |
|
---|
134 | /******************/
|
---|
135 | /* Function: 0x10 */
|
---|
136 |
|
---|
137 | [todo] WERROR PNP_CreateKey();
|
---|
138 |
|
---|
139 | /******************/
|
---|
140 | /* Function: 0x11 */
|
---|
141 |
|
---|
142 | [todo] WERROR PNP_DeleteRegistryKey();
|
---|
143 |
|
---|
144 | /******************/
|
---|
145 | /* Function: 0x12 */
|
---|
146 |
|
---|
147 | [todo] WERROR PNP_GetClassCount();
|
---|
148 |
|
---|
149 | /******************/
|
---|
150 | /* Function: 0x13 */
|
---|
151 |
|
---|
152 | [todo] WERROR PNP_GetClassName();
|
---|
153 |
|
---|
154 | /******************/
|
---|
155 | /* Function: 0x14 */
|
---|
156 |
|
---|
157 | [todo] WERROR PNP_DeleteClassKey();
|
---|
158 |
|
---|
159 | /******************/
|
---|
160 | /* Function: 0x15 */
|
---|
161 |
|
---|
162 | [todo] WERROR PNP_GetInterfaceDeviceAlias();
|
---|
163 |
|
---|
164 | /******************/
|
---|
165 | /* Function: 0x16 */
|
---|
166 |
|
---|
167 | [todo] WERROR PNP_GetInterfaceDeviceList();
|
---|
168 |
|
---|
169 | /******************/
|
---|
170 | /* Function: 0x17 */
|
---|
171 |
|
---|
172 | [todo] WERROR PNP_GetInterfaceDeviceListSize();
|
---|
173 |
|
---|
174 | /******************/
|
---|
175 | /* Function: 0x18 */
|
---|
176 |
|
---|
177 | [todo] WERROR PNP_RegisterDeviceClassAssociation();
|
---|
178 |
|
---|
179 | /******************/
|
---|
180 | /* Function: 0x19 */
|
---|
181 |
|
---|
182 | [todo] WERROR PNP_UnregisterDeviceClassAssociation();
|
---|
183 |
|
---|
184 | /******************/
|
---|
185 | /* Function: 0x1a */
|
---|
186 |
|
---|
187 | [todo] WERROR PNP_GetClassRegProp();
|
---|
188 |
|
---|
189 | /******************/
|
---|
190 | /* Function: 0x1b */
|
---|
191 |
|
---|
192 | [todo] WERROR PNP_SetClassRegProp();
|
---|
193 |
|
---|
194 | /******************/
|
---|
195 | /* Function: 0x1c */
|
---|
196 |
|
---|
197 | [todo] WERROR PNP_CreateDevInst();
|
---|
198 |
|
---|
199 | /******************/
|
---|
200 | /* Function: 0x1d */
|
---|
201 |
|
---|
202 | [todo] WERROR PNP_DeviceInstanceAction();
|
---|
203 |
|
---|
204 | /******************/
|
---|
205 | /* Function: 0x1e */
|
---|
206 |
|
---|
207 | [todo] WERROR PNP_GetDeviceStatus();
|
---|
208 |
|
---|
209 | /******************/
|
---|
210 | /* Function: 0x1f */
|
---|
211 |
|
---|
212 | [todo] WERROR PNP_SetDeviceProblem();
|
---|
213 |
|
---|
214 | /******************/
|
---|
215 | /* Function: 0x20 */
|
---|
216 |
|
---|
217 | [todo] WERROR PNP_DisableDevInst();
|
---|
218 |
|
---|
219 | /******************/
|
---|
220 | /* Function: 0x21 */
|
---|
221 |
|
---|
222 | [todo] WERROR PNP_UninstallDevInst();
|
---|
223 |
|
---|
224 | /******************/
|
---|
225 | /* Function: 0x22 */
|
---|
226 |
|
---|
227 | [todo] WERROR PNP_AddID();
|
---|
228 |
|
---|
229 | /******************/
|
---|
230 | /* Function: 0x23 */
|
---|
231 |
|
---|
232 | [todo] WERROR PNP_RegisterDriver();
|
---|
233 |
|
---|
234 | /******************/
|
---|
235 | /* Function: 0x24 */
|
---|
236 |
|
---|
237 | [todo] WERROR PNP_QueryRemove();
|
---|
238 |
|
---|
239 | /******************/
|
---|
240 | /* Function: 0x25 */
|
---|
241 |
|
---|
242 | [todo] WERROR PNP_RequestDeviceEject();
|
---|
243 |
|
---|
244 | /******************/
|
---|
245 | /* Function: 0x26 */
|
---|
246 |
|
---|
247 | [todo] WERROR PNP_IsDockStationPresent();
|
---|
248 |
|
---|
249 | /******************/
|
---|
250 | /* Function: 0x27 */
|
---|
251 |
|
---|
252 | [todo] WERROR PNP_RequestEjectPC();
|
---|
253 |
|
---|
254 | /******************/
|
---|
255 | /* Function: 0x28 */
|
---|
256 |
|
---|
257 | WERROR PNP_HwProfFlags(
|
---|
258 | [in] uint32 action,
|
---|
259 | [in,ref] [string,charset(UTF16)] uint16 *devicepath,
|
---|
260 | [in] uint32 config,
|
---|
261 | [in,out,ref] uint32 *profile_flags,
|
---|
262 | [in,out,unique] uint16 *veto_type,
|
---|
263 | [in,unique] [string,charset(UTF16)] uint16 *unknown5,
|
---|
264 | [out,unique] [string,charset(UTF16)] uint16 **unknown5a,
|
---|
265 | [in] uint32 name_length,
|
---|
266 | [in] uint32 flags
|
---|
267 | );
|
---|
268 |
|
---|
269 | /******************/
|
---|
270 | /* Function: 0x29 */
|
---|
271 |
|
---|
272 | typedef struct {
|
---|
273 | uint32 profile_handle;
|
---|
274 | uint16 friendly_name[80];
|
---|
275 | uint32 flags;
|
---|
276 | } PNP_HwProfInfo;
|
---|
277 |
|
---|
278 | WERROR PNP_GetHwProfInfo(
|
---|
279 | [in] uint32 idx,
|
---|
280 | [in,out,ref] PNP_HwProfInfo *info,
|
---|
281 | [in] uint32 size,
|
---|
282 | [in] uint32 flags
|
---|
283 | );
|
---|
284 |
|
---|
285 | /******************/
|
---|
286 | /* Function: 0x2a */
|
---|
287 |
|
---|
288 | [todo] WERROR PNP_AddEmptyLogConf();
|
---|
289 |
|
---|
290 | /******************/
|
---|
291 | /* Function: 0x2b */
|
---|
292 |
|
---|
293 | [todo] WERROR PNP_FreeLogConf();
|
---|
294 |
|
---|
295 | /******************/
|
---|
296 | /* Function: 0x2c */
|
---|
297 |
|
---|
298 | [todo] WERROR PNP_GetFirstLogConf();
|
---|
299 |
|
---|
300 | /******************/
|
---|
301 | /* Function: 0x2d */
|
---|
302 |
|
---|
303 | [todo] WERROR PNP_GetNextLogConf();
|
---|
304 |
|
---|
305 | /******************/
|
---|
306 | /* Function: 0x2e */
|
---|
307 |
|
---|
308 | [todo] WERROR PNP_GetLogConfPriority();
|
---|
309 |
|
---|
310 | /******************/
|
---|
311 | /* Function: 0x2f */
|
---|
312 |
|
---|
313 | [todo] WERROR PNP_AddResDes();
|
---|
314 |
|
---|
315 | /******************/
|
---|
316 | /* Function: 0x30 */
|
---|
317 |
|
---|
318 | [todo] WERROR PNP_FreeResDes();
|
---|
319 |
|
---|
320 | /******************/
|
---|
321 | /* Function: 0x31 */
|
---|
322 |
|
---|
323 | [todo] WERROR PNP_GetNextResDes();
|
---|
324 |
|
---|
325 | /******************/
|
---|
326 | /* Function: 0x32 */
|
---|
327 |
|
---|
328 | [todo] WERROR PNP_GetResDesData();
|
---|
329 |
|
---|
330 | /******************/
|
---|
331 | /* Function: 0x33 */
|
---|
332 |
|
---|
333 | [todo] WERROR PNP_GetResDesDataSize();
|
---|
334 |
|
---|
335 | /******************/
|
---|
336 | /* Function: 0x34 */
|
---|
337 |
|
---|
338 | [todo] WERROR PNP_ModifyResDes();
|
---|
339 |
|
---|
340 | /******************/
|
---|
341 | /* Function: 0x35 */
|
---|
342 |
|
---|
343 | [todo] WERROR PNP_DetectResourceLimit();
|
---|
344 |
|
---|
345 | /******************/
|
---|
346 | /* Function: 0x36 */
|
---|
347 |
|
---|
348 | [todo] WERROR PNP_QueryResConfList();
|
---|
349 |
|
---|
350 | /******************/
|
---|
351 | /* Function: 0x37 */
|
---|
352 |
|
---|
353 | [todo] WERROR PNP_SetHwProf();
|
---|
354 |
|
---|
355 | /******************/
|
---|
356 | /* Function: 0x38 */
|
---|
357 |
|
---|
358 | [todo] WERROR PNP_QueryArbitratorFreeData();
|
---|
359 |
|
---|
360 | /******************/
|
---|
361 | /* Function: 0x39 */
|
---|
362 |
|
---|
363 | [todo] WERROR PNP_QueryArbitratorFreeSize();
|
---|
364 |
|
---|
365 | /******************/
|
---|
366 | /* Function: 0x3a */
|
---|
367 |
|
---|
368 | [todo] WERROR PNP_RunDetection();
|
---|
369 |
|
---|
370 | /******************/
|
---|
371 | /* Function: 0x3b */
|
---|
372 |
|
---|
373 | [todo] WERROR PNP_RegisterNotification();
|
---|
374 |
|
---|
375 | /******************/
|
---|
376 | /* Function: 0x3c */
|
---|
377 |
|
---|
378 | [todo] WERROR PNP_UnregisterNotification();
|
---|
379 |
|
---|
380 | /******************/
|
---|
381 | /* Function: 0x3d */
|
---|
382 |
|
---|
383 | [todo] WERROR PNP_GetCustomDevProp();
|
---|
384 |
|
---|
385 | /******************/
|
---|
386 | /* Function: 0x3e */
|
---|
387 |
|
---|
388 | [todo] WERROR PNP_GetVersionInternal();
|
---|
389 |
|
---|
390 | /******************/
|
---|
391 | /* Function: 0x3f */
|
---|
392 |
|
---|
393 | [todo] WERROR PNP_GetBlockedDriverInfo();
|
---|
394 |
|
---|
395 | /******************/
|
---|
396 | /* Function: 0x40 */
|
---|
397 |
|
---|
398 | [todo] WERROR PNP_GetServerSideDeviceInstallFlags();
|
---|
399 | }
|
---|