ReactOS 0.4.15-dev-7918-g2a2556c
pnp.idl
Go to the documentation of this file.
1/*
2 * Plug and Play Manager RPC interface definition
3 */
4
5#include <ms-dtyp.idl>
6
7typedef [context_handle] void *PNP_NOTIFY_HANDLE;
9
10const unsigned long PNP_MAX_STRING_LEN = 32767;
11const unsigned long PNP_MAX_DEVICE_ID_LEN = 200;
12const unsigned long PNP_MAX_GUID_STRING_LEN = 39;
14const unsigned long PNP_MAX_CULTURE_NAME_LEN = 85;
15const unsigned long PNP_MAX_CM_PATH = 360;
16const unsigned long PNP_MAX_PROP_SIZE = 65534;
17const unsigned long PNP_MAX_PROP_COUNT = 32767;
18const unsigned long PNP_MAX_BUFFER_SIZE = 16000000;
19
20cpp_quote("#ifndef _CFGMGR32_H_")
21typedef unsigned long RESOURCEID;
22
25 WCHAR HWPI_szFriendlyName[80];
28
29cpp_quote("#endif")
30typedef unsigned long DEVPROPTYPE;
31typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
32typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT;
33typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN;
34typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE;
39
40cpp_quote("#ifndef _CFG_INCLUDED_")
41
42typedef enum _PNP_VETO_TYPE {
43 PNP_VetoTypeUnknown = 0,
44 PNP_VetoLegacyDevice = 1,
45 PNP_VetoPendingClose = 2,
46 PNP_VetoWindowsApp = 3,
47 PNP_VetoWindowsService = 4,
48 PNP_VetoOutstandingOpen = 5,
49 PNP_VetoDevice = 6,
50 PNP_VetoDriver = 7,
51 PNP_VetoIllegalDeviceRequest = 8,
52 PNP_VetoInsufficientPower = 9,
53 PNP_VetoNonDisableable = 10,
54 PNP_VetoLegacyDriver = 11,
55 PNP_VetoInsufficientRights = 12,
56} PNP_VETO_TYPE, *PPNP_VETO_TYPE;
57
58cpp_quote("#endif")
59
60cpp_quote("#if 0")
61
62typedef struct _BUSNUMBER_DES {
63 DWORD BUSD_Count;
64 DWORD BUSD_Type;
65 DWORD BUSD_Flags;
66 DWORD BUSD_Alloc_Base;
67 DWORD BUSD_Alloc_End;
68} BUSNUMBER_DES, *PBUSNUMBER_DES;
69
70typedef struct _BUSNUMBER_RANGE {
71 DWORD BUSR_Min;
72 DWORD BUSR_Max;
73 DWORD BUSR_nBusNumbers;
74 DWORD BUSR_Flags;
75} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
76
77typedef struct _BUSNUMBER_RESOURCE {
78 BUSNUMBER_DES BusNumber_Header;
79 BUSNUMBER_RANGE BusNumber_Data[1];
80} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
81
82typedef struct _CS_DES {
83 DWORD CSD_SignatureLength;
84 DWORD CSD_LegacyDataOffset;
85 DWORD CSD_LegacyDataSize;
86 DWORD CSD_Flags;
87 GUID CSD_ClassGuid;
88 BYTE CSD_Signature[1];
89} CS_DES, *PCS_DES;
90
91typedef struct _CS_RESOURCE {
92 CS_DES CS_Header;
93} CS_RESOURCE, *PCS_RESOURCE;
94
95typedef struct _DEVPRIVATE_DES {
96 DWORD PD_Count;
97 DWORD PD_Type;
98 DWORD PD_Data1;
99 DWORD PD_Data2;
100 DWORD PD_Data3;
101 DWORD PD_Flags;
102} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
103
104typedef struct _DEVPRIVATE_RANGE {
105 DWORD PR_Data1;
106 DWORD PR_Data2;
107 DWORD PR_Data3;
108} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
109
110typedef struct _DEVPRIVATE_RESOURCE {
111 DEVPRIVATE_DES PRV_Header;
112 DEVPRIVATE_RANGE PRV_Data[1];
113} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
114
115typedef struct _DMA_DES {
116 DWORD DD_Count;
117 DWORD DD_Type;
118 DWORD DD_Flags;
119 unsigned long DD_Alloc_Chan;
120} DMA_DES, *PDMA_DES;
121
122typedef struct _DMA_RANGE {
123 DWORD DR_Min;
124 DWORD DR_Max;
125 DWORD DR_Flags;
126} DMA_RANGE, *PDMA_RANGE;
127
128typedef struct _DMA_RESOURCE {
129 DMA_DES DMA_Header;
130 DMA_RANGE DMA_Data[1];
131} DMA_RESOURCE, *PDMA_RESOURCE;
132
133typedef struct _IO_DES {
134 DWORD IOD_Count;
135 DWORD IOD_Type;
136 unsigned __int64 IOD_AllocBase;
137 unsigned __int64 IOD_AllocEnd;
138 DWORD IOD_DesFlags;
139} IO_DES, *PIO_DES;
140
141typedef struct _IO_RANGE {
142 unsigned __int64 IOR_Align;
143 DWORD IOR_nPorts;
144 unsigned __int64 IOR_Min;
145 unsigned __int64 IOR_Max;
146 DWORD IOR_RangeFlags;
147 unsigned __int64 IOR_Alias;
148} IO_RANGE, *PIO_RANGE;
149
150typedef struct _IO_RESOURCE {
151 IO_DES IO_Header;
152 IO_RANGE IO_Data[1];
153} IO_RESOURCE, *PIO_RESOURCE;
154
155typedef struct _IRQ_DES {
156 DWORD IRQD_Count;
157 DWORD IRQD_Type;
158 DWORD IRQD_Flags;
159 DWORD IRQD_Alloc_Num;
160 DWORD IRQD_Affinity;
161} IRQ_DES, *PIRQ_DES;
162
163typedef struct _IRQ_RANGE {
164 DWORD IRQR_Min;
165 DWORD IRQR_Max;
166 DWORD IRQR_Flags;
167} IRQ_RANGE, *PIRQ_RANGE;
168
169typedef struct _IRQ_RESOURCE {
170 IRQ_DES IO_Header;
171 IRQ_RANGE IO_Data[1];
172} IRQ_RESOURCE, *PIRQ_RESOURCE;
173
174typedef struct _MEM_DES {
175 DWORD MD_Count;
176 DWORD MD_Type;
177 unsigned __int64 MD_Alloc_Base;
178 unsigned __int64 MD_Alloc_End;
179 DWORD MD_Flags;
180 DWORD Reserved;
181} MEM_DES, *PMEM_DES;
182
183typedef struct _MEM_RANGE {
184 __int64 MR_Align;
185 DWORD MR_nBytes;
186 __int64 MR_Min;
187 __int64 MR_Max;
188 DWORD MR_Flags;
189 DWORD MR_Reserved;
190} MEM_RANGE, *PMEM_RANGE;
191
192typedef struct _MEM_RESOURCE {
193 MEM_DES MEM_Header;
194 MEM_RANGE MEM_Data[1];
195} MEM_RESOURCE, *PMEM_RESOURCE;
196
197typedef struct _MFCARD_DES {
198 DWORD PMF_Count;
199 DWORD PMF_Type;
200 DWORD PMF_Flags;
201 BYTE PMF_ConfigOptions;
202 BYTE PMF_IoResourceIndex;
203 BYTE PMF_Reserved[2];
204 DWORD PMF_ConfigRegisterBase;
205} MFCARD_DES, *PMFCARD_DES;
206
207typedef struct _MFCARD_RESOURCE {
208 MFCARD_DES MfCard_Header;
209} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
210
211typedef struct _PCCARD_DES {
212 DWORD PCD_Count;
213 DWORD PCD_Type;
214 DWORD PCD_Flags;
215 BYTE PCD_ConfigIndex;
216 BYTE PCD_Reserved[3];
217 DWORD PCD_MemoryCardBase1;
218 DWORD PCD_MemoryCardBase2;
219} PCCARD_DES, *PPCCARD_DES;
220
221typedef struct _PCCARD_RESOURCE {
222 PCCARD_DES PcCard_Header;
223} PCCARD_RESOURCE, *PPCARD_RESOURCE;
224
225cpp_quote("#endif")
226
227typedef struct _PNP_CONFLICT_ENTRY {
228 DWORD DeviceInstance;
229 DWORD DeviceFlags;
230 DWORD ResourceType;
231 __int64 ResourceStart;
232 __int64 ResourceEnd;
233 DWORD ResourceFlags;
234} PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
235
236typedef struct _PNP_CONFLICT_LIST {
237 DWORD Reserved1;
238 DWORD Reserved2;
239 DWORD ConflictsCounted;
240 DWORD ConflictsListed;
241 DWORD RequiredBufferSize;
242 PNP_CONFLICT_ENTRY ConflictEntry[1];
243} PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
244
245typedef struct _PNP_CONFLICT_STRINGS {
246 DWORD NullDeviceInstance;
247 WCHAR DeviceInstanceStrings[1];
248} PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
249
250typedef struct _DEVPROPKEY {
251 GUID fmtid;
252 DWORD pid;
253} DEVPROPKEY;
254
255[
256 uuid (8D9F4E40-A03D-11CE-8F69-08003E30051B),
257 version(1.0),
258 pointer_default(unique),
259 endpoint("ncacn_np:[\\pipe\\plugplay]")
260 #ifndef __midl
261 ,explicit_handle
262 #endif
263]
264interface pnp
265{
266 /* Function 0 */
267 DWORD
268 __stdcall
269 PNP_Disconnect(
270 [in] handle_t hBinding); /* FIXME */
271
272 /* Function 1 */
273 DWORD
274 __stdcall
275 PNP_Connect(
276 [in] handle_t hBinding); /* FIXME */
277
278 /* Function 2 */
279 DWORD
280 __stdcall
281 PNP_GetVersion(
282 [in] handle_t hBinding,
283 [out] WORD *pVersion);
284
285 /* Function 3 */
286 DWORD
287 __stdcall
288 PNP_GetGlobalState(
289 [in] handle_t hBinding,
290 [out] DWORD *pulState,
291 [in] DWORD ulFlags);
292
293 /* Function 4 */
294 DWORD
295 __stdcall
296 PNP_InitDetection(
297 [in] handle_t hBinding);
298
299 /* Function 5 */
300 DWORD
301 __stdcall
302 PNP_ReportLogOn(
303 [in] handle_t hBinding,
304 [in] BOOL Admin,
305 [in] DWORD ProcessId);
306
307 /* Function 6 */
308 DWORD
309 __stdcall
310 PNP_ValidateDeviceInstance(
311 [in] handle_t hBinding,
312 [in, string, ref] LPWSTR pDeviceID,
313 [in] DWORD ulFlags);
314
315 /* Function 7 */
316 DWORD
317 __stdcall
318 PNP_GetRootDeviceInstance(
319 [in] handle_t hBinding,
320 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
321 [in] PNP_RPC_STRING_LEN ulLength);
322
323 /* Function 8 */
324 cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
325 cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
326 cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
327 DWORD
328 __stdcall
329 PNP_GetRelatedDeviceInstance(
330 [in] handle_t hBinding,
331 [in] DWORD ulRelationship,
332 [in, string, ref] LPWSTR pDeviceID,
333 [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
334 [in, out] PNP_RPC_STRING_LEN *pulLength,
335 [in] DWORD ulFlags);
336
337 /* Function 9 */
338 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
339 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
340 DWORD
341 __stdcall
342 PNP_EnumerateSubKeys(
343 [in] handle_t hBinding,
344 [in] DWORD ulBranch,
345 [in] DWORD ulIndex,
346 [out, string, size_is(ulLength)] LPWSTR Buffer,
347 [in] PNP_RPC_STRING_LEN ulLength,
348 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
349 [in] DWORD ulFlags);
350
351 /* Function 10 */
352 DWORD
353 __stdcall
354 PNP_GetDeviceList(
355 [in] handle_t hBinding,
356 [in, string, unique] LPWSTR pszFilter,
357 [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
358 [in, out] PNP_RPC_STRING_LEN *pulLength,
359 [in] DWORD ulFlags);
360
361 /* Function 11 */
362 DWORD
363 __stdcall
364 PNP_GetDeviceListSize(
365 [in] handle_t hBinding,
366 [in, string, unique] LPWSTR pszFilter,
367 [out] PNP_RPC_BUFFER_SIZE *pulLen,
368 [in] DWORD ulFlags);
369
370 /* Function 12 */
371 DWORD
372 __stdcall
373 PNP_GetDepth(
374 [in] handle_t hBinding,
375 [in, string, ref] LPWSTR pszDeviceID,
376 [out] DWORD *pulDepth,
377 [in] DWORD ulFlags);
378
379 /* Function 13 */
380 DWORD
381 __stdcall
382 PNP_GetDeviceRegProp(
383 [in] handle_t hBinding,
384 [in, string, ref] LPWSTR pDeviceID,
385 [in] DWORD ulProperty,
386 [in, out] DWORD *pulRegDataType,
387 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
388 [in, out] PNP_PROP_SIZE *pulTransferLen,
389 [in, out] PNP_PROP_SIZE *pulLength,
390 [in] DWORD ulFlags);
391
392 /* Function 14 */
393 DWORD
394 __stdcall
395 PNP_SetDeviceRegProp(
396 [in] handle_t hBinding,
397 [in, string, ref] LPWSTR pDeviceId,
398 [in] DWORD ulProperty,
399 [in] DWORD ulDataType,
400 [in, size_is(ulLength)] BYTE *Buffer,
401 [in] PNP_PROP_SIZE ulLength,
402 [in] DWORD ulFlags);
403
404 /* Function 15 */
405 DWORD
406 __stdcall
407 PNP_GetClassInstance(
408 [in] handle_t hBinding,
409 [in, string, ref] LPWSTR pDeviceId,
410 [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
411 [in] PNP_RPC_STRING_LEN ulLength);
412
413 /* Function 16 */
414 DWORD
415 __stdcall
416 PNP_CreateKey(
417 [in] handle_t hBinding,
418 [in, string, ref] LPWSTR pszSubKey,
419 [in] DWORD samDesired,
420 [in] DWORD ulFlags);
421
422 /* Function 17 */
423 DWORD
424 __stdcall
425 PNP_DeleteRegistryKey(
426 [in] handle_t hBinding,
427 [in, string, ref] LPWSTR pszDeviceID,
428 [in, string, ref] LPWSTR pszParentKey,
429 [in, string, ref] LPWSTR pszChildKey,
430 [in] DWORD ulFlags);
431
432 /* Function 18 */
433 DWORD
434 __stdcall
435 PNP_GetClassCount(
436 [in] handle_t hBinding,
437 [out] DWORD *pulClassCount,
438 [in] DWORD ulFlags);
439
440 /* Function 19 */
441 DWORD
442 __stdcall
443 PNP_GetClassName(
444 [in] handle_t hBinding,
445 [in, string, ref] LPWSTR pszClassGuid,
446 [out, string, size_is(*pulLength)] LPWSTR Buffer,
447 [in, out] PNP_RPC_STRING_LEN *pulLength,
448 [in] DWORD ulFlags);
449
450 /* Function 20 */
451 DWORD
452 __stdcall
453 PNP_DeleteClassKey(
454 [in] handle_t hBinding,
455 [in, string, ref] LPWSTR pszClassGuid,
456 [in] DWORD ulFlags);
457
458 /* Function 21 */
459 DWORD
460 __stdcall
461 PNP_GetInterfaceDeviceAlias(
462 [in] handle_t hBinding,
463 [in, string, ref] LPWSTR pszInterfaceDevice,
464 [in] GUID *AliasInterfaceGuid,
465 [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
466 [in, out] PNP_RPC_STRING_LEN *pulLength,
467 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
468 [in] DWORD ulFlags);
469
470 /* Function 22 */
471 DWORD
472 __stdcall
473 PNP_GetInterfaceDeviceList(
474 [in] handle_t hBinding,
475 [in] GUID *InterfaceGuid,
476 [in, string, unique] LPWSTR pszDeviceID,
477 [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
478 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
479 [in] DWORD ulFlags);
480
481 /* Function 23 */
482 DWORD
483 __stdcall
484 PNP_GetInterfaceDeviceListSize(
485 [in] handle_t hBinding,
486 [out] PNP_RPC_BUFFER_SIZE *pulLen,
487 [in] GUID *InterfaceGuid,
488 [in, string, unique] LPWSTR pszDeviceID,
489 [in] DWORD ulFlags);
490
491 /* Function 24 */
492 DWORD
493 __stdcall
494 PNP_RegisterDeviceClassAssociation(
495 [in] handle_t hBinding,
496 [in, string, unique] LPWSTR pszDeviceID,
497 [in] GUID *InterfaceGuid,
498 [in, string, unique] LPWSTR pszReference,
499 [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
500 [in, out] PNP_RPC_STRING_LEN *pulLength,
501 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
502 [in] DWORD ulFlags);
503
504 /* Function 25 */
505 DWORD
506 __stdcall
507 PNP_UnregisterDeviceClassAssociation(
508 [in] handle_t hBinding,
509 [in, string, unique] LPWSTR pszInterfaceDevice,
510 [in] DWORD ulFlags);
511
512 /* Function 26 */
513 DWORD
514 __stdcall
515 PNP_GetClassRegProp(
516 [in] handle_t hBinding,
517 [in, string, ref] LPWSTR pszClassGuid,
518 [in] DWORD ulProperty,
519 [in, out] DWORD *pulRegDataType,
520 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
521 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
522 [in, out] PNP_RPC_STRING_LEN *pulLength,
523 [in] DWORD ulFlags);
524
525 /* Function 27 */
526 DWORD
527 __stdcall
528 PNP_SetClassRegProp(
529 [in] handle_t hBinding,
530 [in, string, ref] LPWSTR pszClassGuid,
531 [in] DWORD ulProperty,
532 [in] DWORD ulDataType,
533 [in, size_is(ulLength)] BYTE *Buffer,
534 [in] PNP_PROP_SIZE ulLength,
535 [in] DWORD ulFlags);
536
537 /* Function 28 */
538 DWORD
539 __stdcall
540 PNP_CreateDevInst(
541 [in] handle_t hBinding,
542 [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
543 [in, string, ref] LPWSTR pszParentDeviceID,
544 [in] PNP_RPC_STRING_LEN ulLength,
545 [in] DWORD ulFlags);
546
547 /* Function 29 */
548 cpp_quote("#define PNP_DEVINST_MOVE 0x2")
549 cpp_quote("#define PNP_DEVINST_SETUP 0x3")
550 cpp_quote("#define PNP_DEVINST_ENABLE 0x4")
551 cpp_quote("#define PNP_DEVINST_DISABLE 0x5")
552 cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
553 DWORD
554 __stdcall
555 PNP_DeviceInstanceAction(
556 [in] handle_t hBinding,
557 [in] DWORD ulMajorAction,
558 [in] DWORD ulMinorAction,
559 [in, string, unique] LPWSTR pszDeviceInstance1,
560 [in, string, unique] LPWSTR pszDeviceInstance2);
561
562 /* Function 30 */
563 DWORD
564 __stdcall
565 PNP_GetDeviceStatus(
566 [in] handle_t hBinding,
567 [in, string, unique] LPWSTR pDeviceID,
568 [out] DWORD *pulStatus,
569 [out] DWORD *pulProblem,
570 [in] DWORD ulFlags);
571
572 /* Function 31 */
573 DWORD
574 __stdcall
575 PNP_SetDeviceProblem(
576 [in] handle_t hBinding,
577 [in, string, unique] LPWSTR pDeviceID,
578 [in] DWORD ulProblem,
579 [in] DWORD ulFlags);
580
581 /* Function 32 */
582 DWORD
583 __stdcall
584 PNP_DisableDevInst(
585 [in] handle_t hBinding,
586 [in, string, unique] LPWSTR pDeviceID,
587 [in, out, unique] PPNP_VETO_TYPE pVetoType,
588 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
589 [in] DWORD ulNameLength,
590 [in] DWORD ulFlags);
591
592 /* Function 33 */
593 DWORD
594 __stdcall
595 PNP_UninstallDevInst(
596 [in] handle_t hBinding,
597 [in, string, unique] LPWSTR pDeviceID,
598 [in] DWORD ulFlags);
599
600 /* Function 34 */
601 DWORD
602 __stdcall
603 PNP_AddID(
604 [in] handle_t hBinding,
605 [in, string, unique] LPWSTR pszDeviceID,
606 [in, string, ref] LPWSTR pszID,
607 [in] DWORD ulFlags);
608
609 /* Function 35 */
610 DWORD
611 __stdcall
612 PNP_RegisterDriver(
613 [in] handle_t hBinding,
614 [in, string, ref] LPWSTR pszDeviceID,
615 [in] DWORD ulFlags);
616
617 /* Function 36 */
618 DWORD
619 __stdcall
620 PNP_QueryRemove(
621 [in] handle_t hBinding,
622 [in, string, ref] LPWSTR pszDeviceID,
623 [in, out, unique] PPNP_VETO_TYPE pVetoType,
624 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
625 [in] DWORD ulNameLength,
626 [in] DWORD ulFlags);
627
628 /* Function 37 */
629 DWORD
630 __stdcall
631 PNP_RequestDeviceEject(
632 [in] handle_t hBinding,
633 [in, string, ref] LPWSTR pszDeviceID,
634 [in, out, unique] PPNP_VETO_TYPE pVetoType,
635 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
636 [in] DWORD ulNameLength,
637 [in] DWORD ulFlags);
638
639 /* Function 38 */
640 DWORD
641 __stdcall
642 PNP_IsDockStationPresent(
643 [in] handle_t hBinding,
644 [in, out, unique] BOOL *Present);
645
646 /* Function 39 */
647 DWORD
648 __stdcall
649 PNP_RequestEjectPC(
650 [in] handle_t hBinding);
651
652 /* Function 40 */
653 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
654 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
655 DWORD
656 __stdcall
657 PNP_HwProfFlags(
658 [in] handle_t hBinding,
659 [in] DWORD ulAction,
660 [in, string, ref] LPWSTR pDeviceID,
661 [in] DWORD ulConfig,
662 [in, out] DWORD *pulValue,
663 [in, out, unique] PPNP_VETO_TYPE pVetoType,
664 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
665 [in] DWORD ulNameLength,
666 [in] DWORD ulFlags);
667
668 /* Function 41 */
669 DWORD
670 __stdcall
671 PNP_GetHwProfInfo(
672 [in] handle_t hBinding,
673 [in] DWORD ulIndex,
674 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
675 [in, range(0, 168)] DWORD ulProfileInfoSize,
676 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
677 [in] DWORD ulFlags);
678
679 /* Function 42 */
680 DWORD
681 __stdcall
682 PNP_AddEmptyLogConf(
683 [in] handle_t hBinding,
684 [in, string, ref] LPWSTR pDeviceID,
685 [in] DWORD ulPriority,
686 [out] DWORD *pulLogConfTag,
687 [in] DWORD ulFlags);
688
689 /* Function 43 */
690 DWORD
691 __stdcall
692 PNP_FreeLogConf(
693 [in] handle_t hBinding,
694 [in, string, ref] LPWSTR pDeviceID,
695 [in] DWORD ulLogConfType,
696 [in] DWORD ulLogConfTag,
697 [in] DWORD ulFlags);
698
699 /* Function 44 */
700 DWORD
701 __stdcall
702 PNP_GetFirstLogConf(
703 [in] handle_t hBinding,
704 [in, string, ref] LPWSTR pDeviceID,
705 [in] DWORD ulLogConfType,
706 [out] DWORD *pulLogConfTag,
707 [in] DWORD ulFlags);
708
709 /* Function 45 */
710 DWORD
711 __stdcall
712 PNP_GetNextLogConf(
713 [in] handle_t hBinding,
714 [in, string, ref] LPWSTR pDeviceID,
715 [in] DWORD ulLogConfType,
716 [in] DWORD ulCurrentTag,
717 [out] DWORD *pulNextTag,
718 [in] DWORD ulFlags);
719
720 /* Function 46 */
721 DWORD
722 __stdcall
723 PNP_GetLogConfPriority(
724 [in] handle_t hBinding,
725 [in, string, ref] LPWSTR pDeviceID,
726 [in] DWORD ulType,
727 [in] DWORD ulTag,
728 [out] DWORD *pPriority,
729 [in] DWORD ulFlags);
730
731 /* Function 47 */
732 DWORD
733 __stdcall
734 PNP_AddResDes(
735 [in] handle_t hBinding,
736 [in, string, ref] LPWSTR pDeviceID,
737 [in] DWORD ulLogConfTag,
738 [in] DWORD ulLogConfType,
739 [in] RESOURCEID ResourceID,
740 [out] DWORD *pulResourceTag,
741 [in, size_is(ResourceLen)] BYTE *ResourceData,
742 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
743 [in] DWORD ulFlags);
744
745 /* Function 48 */
746 DWORD
747 __stdcall
748 PNP_FreeResDes(
749 [in] handle_t hBinding,
750 [in, string, ref] LPWSTR pDeviceID,
751 [in] DWORD ulLogConfTag,
752 [in] DWORD ulLogConfType,
753 [in] RESOURCEID ResourceID,
754 [in] DWORD ulResourceTag,
755 [out] DWORD *pulPreviousResType,
756 [out] DWORD *pulPreviousResTag,
757 [in] DWORD ulFlags);
758
759 /* Function 49 */
760 DWORD
761 __stdcall
762 PNP_GetNextResDes(
763 [in] handle_t hBinding,
764 [in, string, ref] LPWSTR pDeviceID,
765 [in] DWORD ulLogConfTag,
766 [in] DWORD ulLogConfType,
767 [in] RESOURCEID ResourceID,
768 [in] DWORD ulResourceTag,
769 [out] DWORD *pulNextResType,
770 [out] DWORD *pulNextResTag,
771 [in] DWORD ulFlags);
772
773 /* Function 50 */
774 DWORD
775 __stdcall
776 PNP_GetResDesData(
777 [in] handle_t hBinding,
778 [in, string, ref] LPWSTR pDeviceID,
779 [in] DWORD ulLogConfTag,
780 [in] DWORD ulLogConfType,
781 [in] RESOURCEID ResourceID,
782 [in] DWORD ulResourceTag,
783 [out, size_is(BufferLen)] BYTE *Buffer,
784 [in] PNP_RPC_BUFFER_SIZE BufferLen,
785 [in] DWORD ulFlags);
786
787 /* Function 51 */
788 DWORD
789 __stdcall
790 PNP_GetResDesDataSize(
791 [in] handle_t hBinding,
792 [in, string, ref] LPWSTR pDeviceID,
793 [in] DWORD ulLogConfTag,
794 [in] DWORD ulLogConfType,
795 [in] RESOURCEID ResourceID,
796 [in] DWORD ulResourceTag,
797 [out] DWORD *pulSize,
798 [in] DWORD ulFlags);
799
800 /* Function 52 */
801 DWORD
802 __stdcall
803 PNP_ModifyResDes(
804 [in] handle_t hBinding,
805 [in, string, ref] LPWSTR pDeviceID,
806 [in] DWORD ulLogConfTag,
807 [in] DWORD ulLogConfType,
808 [in] RESOURCEID CurrentResourceID,
809 [in] RESOURCEID NewResourceID,
810 [in] DWORD ulResourceTag,
811 [in, size_is(ResourceLen)] BYTE *ResourceData,
812 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
813 [in] DWORD ulFlags);
814
815 /* Function 53 */
816 DWORD
817 __stdcall
818 PNP_DetectResourceConflict(
819 [in] handle_t hBinding,
820 [in, string, ref] LPWSTR pDeviceID,
821 [in] RESOURCEID ResourceID,
822 [in, size_is(ResourceLen)] BYTE *ResourceData,
823 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
824 [out] BOOL *pbConflictDetected,
825 [in] DWORD ulFlags);
826
827 /* Function 54 */
828 DWORD
829 __stdcall
830 PNP_QueryResConfList(
831 [in] handle_t hBinding,
832 [in, string, ref] LPWSTR pDeviceID,
833 [in] RESOURCEID ResourceID,
834 [in, size_is(ResourceLen)] BYTE *ResourceData,
835 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
836 [out, size_is(BufferLen)] BYTE *Buffer,
837 [in] PNP_RPC_BUFFER_SIZE BufferLen,
838 [in] DWORD ulFlags);
839
840 /* Function 55 */
841 DWORD
842 __stdcall
843 PNP_SetHwProf(
844 [in] handle_t hBinding,
845 [in] DWORD ulHardwareProfile,
846 [in] DWORD ulFlags);
847
848 /* Function 56 */
849 DWORD
850 __stdcall
851 PNP_QueryArbitratorFreeData(
852 [in] handle_t hBinding,
853 [out, size_is(DataLen)] BYTE *pData,
854 [in] DWORD DataLen,
855 [in, string, ref] LPWSTR pDeviceID,
856 [in] RESOURCEID ResourceID,
857 [in] DWORD ulFlags);
858
859 /* Function 57 */
860 DWORD
861 __stdcall
862 PNP_QueryArbitratorFreeSize(
863 [in] handle_t hBinding,
864 [out] DWORD *pulSize,
865 [in, string, ref] LPWSTR pDeviceID,
866 [in] RESOURCEID ResourceID,
867 [in] DWORD ulFlags);
868
869 /* Function 58 */
870 DWORD
871 __stdcall
872 PNP_RunDetection(
873 [in] handle_t hBinding,
874 [in] DWORD ulFlags);
875
876 /* Function 59 */
877 DWORD
878 __stdcall
879 PNP_RegisterNotification(
880 [in] handle_t hBinding,
881 [in] DWORD_PTR hRecipient,
882 [in, string, ref] LPWSTR pszName,
883 [in, size_is(ulNotificationFilterSize)] BYTE *pNotificationFilter,
884 [in] DWORD ulNotificationFilterSize,
885 [in] DWORD ulFlags,
886 [out] PPNP_NOTIFY_HANDLE pNotifyHandle,
887 [in] DWORD ulProcessId,
888 [in] DWORD *pulUnknown9);
889
890 /* Function 60 */
891 DWORD
892 __stdcall
893 PNP_UnregisterNotification(
894 [in] handle_t hBinding,
895 [in, out] PPNP_NOTIFY_HANDLE pNotifyHandle);
896
897cpp_quote("#if _WIN32_WINNT >= 0x0501")
898
899 /* Function 61 */
900 DWORD
901 __stdcall
902 PNP_GetCustomDevProp(
903 [in] handle_t hBinding,
904 [in, string, ref] LPWSTR pDeviceID,
905 [in, string, ref] LPWSTR CustomPropName,
906 [out] DWORD *pulRegDataType,
907 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
908 [out] PNP_RPC_STRING_LEN *pulTransferLen,
909 [in, out] PNP_RPC_STRING_LEN *pulLength,
910 [in] DWORD ulFlags);
911
912 /* Function 62 */
913 DWORD
914 __stdcall
915 PNP_GetVersionInternal(
916 [in] handle_t hBinding,
917 [in, out] WORD *pwVersion);
918
919 /* Function 63 */
920 DWORD
921 __stdcall
922 PNP_GetBlockedDriverInfo(
923 [in] handle_t hBinding,
924 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
925 [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
926 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
927 [in] DWORD ulFlags);
928
929 /* Function 64 */
930 DWORD
931 __stdcall
932 PNP_GetServerSideDeviceInstallFlags(
933 [in] handle_t hBinding,
934 [out] DWORD *pulSSDIFlags,
935 [in] DWORD ulFlags);
936
937 /* Functions 65 to 74 are Vista+, see r63565 */
938
939cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */")
940
941}
ULONG RESOURCEID
Definition: cfgmgr32.h:96
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491
ULONG DEVPROPTYPE
Definition: devpropdef.h:24
unsigned long DWORD
Definition: ntddk_ex.h:95
GLenum GLint * range
Definition: glext.h:7539
const unsigned long PNP_MAX_CULTURE_NAME_LEN
Definition: pnp.idl:14
const unsigned long PNP_MAX_CM_PATH
Definition: pnp.idl:15
unsigned long PNP_PROP_COUNT
Definition: pnp.idl:32
const unsigned long PNP_MAX_DEVICE_ID_LEN
Definition: pnp.idl:11
PNP_RPC_STRING_LEN * PPNP_RPC_STRING_LEN
Definition: pnp.idl:37
struct _HWPROFILEINFO HWPROFILEINFO
const unsigned long PNP_MAX_GUID_STRING_LEN
Definition: pnp.idl:12
PNP_PROP_COUNT * PPNP_PROP_COUNT
Definition: pnp.idl:36
PNP_RPC_BUFFER_SIZE * PPNP_RPC_BUFFER_SIZE
Definition: pnp.idl:38
unsigned long PNP_RPC_BUFFER_SIZE
Definition: pnp.idl:34
void * PNP_NOTIFY_HANDLE
Definition: pnp.idl:7
const unsigned long PNP_MAX_STRING_LEN
Definition: pnp.idl:10
PNP_PROP_SIZE * PPNP_PROP_SIZE
Definition: pnp.idl:35
unsigned long PNP_RPC_STRING_LEN
Definition: pnp.idl:33
PNP_NOTIFY_HANDLE * PPNP_NOTIFY_HANDLE
Definition: pnp.idl:8
const unsigned long PNP_MAX_PROP_COUNT
Definition: pnp.idl:17
const unsigned long PNP_MAX_DEVINTERFACE_LEN
Definition: pnp.idl:13
const unsigned long PNP_MAX_BUFFER_SIZE
Definition: pnp.idl:18
const unsigned long PNP_MAX_PROP_SIZE
Definition: pnp.idl:16
unsigned long PNP_PROP_SIZE
Definition: pnp.idl:31
DWORD HWPI_ulHWProfile
Definition: pnp.idl:24
DWORD HWPI_dwFlags
Definition: pnp.idl:26
__wchar_t WCHAR
Definition: xmlstorage.h:180