ReactOS 0.4.17-dev-116-ga4b6fe9
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
250cpp_quote("#ifndef _DEVPROPDEF_H_")
251typedef struct _DEVPROPKEY {
252 GUID fmtid;
253 DWORD pid;
254} DEVPROPKEY;
255cpp_quote("#endif")
256
257[
258 uuid (8D9F4E40-A03D-11CE-8F69-08003E30051B),
259 version(1.0),
260 pointer_default(unique),
261 endpoint("ncacn_np:[\\pipe\\plugplay]")
262 #ifndef __midl
263 ,explicit_handle
264 #endif
265]
266interface pnp
267{
268 /* Function 0 */
269 DWORD
270 __stdcall
271 PNP_Disconnect(
272 [in] handle_t hBinding); /* FIXME */
273
274 /* Function 1 */
275 DWORD
276 __stdcall
277 PNP_Connect(
278 [in] handle_t hBinding); /* FIXME */
279
280 /* Function 2 */
281 DWORD
282 __stdcall
283 PNP_GetVersion(
284 [in] handle_t hBinding,
285 [out] WORD *pVersion);
286
287 /* Function 3 */
288 DWORD
289 __stdcall
290 PNP_GetGlobalState(
291 [in] handle_t hBinding,
292 [out] DWORD *pulState,
293 [in] DWORD ulFlags);
294
295 /* Function 4 */
296 DWORD
297 __stdcall
298 PNP_InitDetection(
299 [in] handle_t hBinding);
300
301 /* Function 5 */
302 DWORD
303 __stdcall
304 PNP_ReportLogOn(
305 [in] handle_t hBinding,
306 [in] BOOL Admin,
307 [in] DWORD ProcessId);
308
309 /* Function 6 */
310 DWORD
311 __stdcall
312 PNP_ValidateDeviceInstance(
313 [in] handle_t hBinding,
314 [in, string, ref] LPWSTR pDeviceID,
315 [in] DWORD ulFlags);
316
317 /* Function 7 */
318 DWORD
319 __stdcall
320 PNP_GetRootDeviceInstance(
321 [in] handle_t hBinding,
322 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
323 [in] PNP_RPC_STRING_LEN ulLength);
324
325 /* Function 8 */
326 cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
327 cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
328 cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
329 DWORD
330 __stdcall
331 PNP_GetRelatedDeviceInstance(
332 [in] handle_t hBinding,
333 [in] DWORD ulRelationship,
334 [in, string, ref] LPWSTR pDeviceID,
335 [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
336 [in, out] PNP_RPC_STRING_LEN *pulLength,
337 [in] DWORD ulFlags);
338
339 /* Function 9 */
340 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
341 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
342 DWORD
343 __stdcall
344 PNP_EnumerateSubKeys(
345 [in] handle_t hBinding,
346 [in] DWORD ulBranch,
347 [in] DWORD ulIndex,
348 [out, string, size_is(ulLength)] LPWSTR Buffer,
349 [in] PNP_RPC_STRING_LEN ulLength,
350 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
351 [in] DWORD ulFlags);
352
353 /* Function 10 */
354 DWORD
355 __stdcall
356 PNP_GetDeviceList(
357 [in] handle_t hBinding,
358 [in, string, unique] LPWSTR pszFilter,
359 [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
360 [in, out] PNP_RPC_STRING_LEN *pulLength,
361 [in] DWORD ulFlags);
362
363 /* Function 11 */
364 DWORD
365 __stdcall
366 PNP_GetDeviceListSize(
367 [in] handle_t hBinding,
368 [in, string, unique] LPWSTR pszFilter,
369 [out] PNP_RPC_BUFFER_SIZE *pulLen,
370 [in] DWORD ulFlags);
371
372 /* Function 12 */
373 DWORD
374 __stdcall
375 PNP_GetDepth(
376 [in] handle_t hBinding,
377 [in, string, ref] LPWSTR pszDeviceID,
378 [out] DWORD *pulDepth,
379 [in] DWORD ulFlags);
380
381 /* Function 13 */
382 DWORD
383 __stdcall
384 PNP_GetDeviceRegProp(
385 [in] handle_t hBinding,
386 [in, string, ref] LPWSTR pDeviceID,
387 [in] DWORD ulProperty,
388 [in, out] DWORD *pulRegDataType,
389 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
390 [in, out] PNP_PROP_SIZE *pulTransferLen,
391 [in, out] PNP_PROP_SIZE *pulLength,
392 [in] DWORD ulFlags);
393
394 /* Function 14 */
395 DWORD
396 __stdcall
397 PNP_SetDeviceRegProp(
398 [in] handle_t hBinding,
399 [in, string, ref] LPWSTR pDeviceId,
400 [in] DWORD ulProperty,
401 [in] DWORD ulDataType,
402 [in, size_is(ulLength)] BYTE *Buffer,
403 [in] PNP_PROP_SIZE ulLength,
404 [in] DWORD ulFlags);
405
406 /* Function 15 */
407 DWORD
408 __stdcall
409 PNP_GetClassInstance(
410 [in] handle_t hBinding,
411 [in, string, ref] LPWSTR pDeviceId,
412 [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
413 [in] PNP_RPC_STRING_LEN ulLength);
414
415 /* Function 16 */
416 DWORD
417 __stdcall
418 PNP_CreateKey(
419 [in] handle_t hBinding,
420 [in, string, ref] LPWSTR pszSubKey,
421 [in] DWORD samDesired,
422 [in] DWORD ulFlags);
423
424 /* Function 17 */
425 DWORD
426 __stdcall
427 PNP_DeleteRegistryKey(
428 [in] handle_t hBinding,
429 [in, string, ref] LPWSTR pszDeviceID,
430 [in, string, ref] LPWSTR pszParentKey,
431 [in, string, ref] LPWSTR pszChildKey,
432 [in] DWORD ulFlags);
433
434 /* Function 18 */
435 DWORD
436 __stdcall
437 PNP_GetClassCount(
438 [in] handle_t hBinding,
439 [out] DWORD *pulClassCount,
440 [in] DWORD ulFlags);
441
442 /* Function 19 */
443 DWORD
444 __stdcall
445 PNP_GetClassName(
446 [in] handle_t hBinding,
447 [in, string, ref] LPWSTR pszClassGuid,
448 [out, string, size_is(*pulLength)] LPWSTR Buffer,
449 [in, out] PNP_RPC_STRING_LEN *pulLength,
450 [in] DWORD ulFlags);
451
452 /* Function 20 */
453 DWORD
454 __stdcall
455 PNP_DeleteClassKey(
456 [in] handle_t hBinding,
457 [in, string, ref] LPWSTR pszClassGuid,
458 [in] DWORD ulFlags);
459
460 /* Function 21 */
461 DWORD
462 __stdcall
463 PNP_GetInterfaceDeviceAlias(
464 [in] handle_t hBinding,
465 [in, string, ref] LPWSTR pszInterfaceDevice,
466 [in] GUID *AliasInterfaceGuid,
467 [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
468 [in, out] PNP_RPC_STRING_LEN *pulLength,
469 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
470 [in] DWORD ulFlags);
471
472 /* Function 22 */
473 DWORD
474 __stdcall
475 PNP_GetInterfaceDeviceList(
476 [in] handle_t hBinding,
477 [in] GUID *InterfaceGuid,
478 [in, string, unique] LPWSTR pszDeviceID,
479 [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
480 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
481 [in] DWORD ulFlags);
482
483 /* Function 23 */
484 DWORD
485 __stdcall
486 PNP_GetInterfaceDeviceListSize(
487 [in] handle_t hBinding,
488 [out] PNP_RPC_BUFFER_SIZE *pulLen,
489 [in] GUID *InterfaceGuid,
490 [in, string, unique] LPWSTR pszDeviceID,
491 [in] DWORD ulFlags);
492
493 /* Function 24 */
494 DWORD
495 __stdcall
496 PNP_RegisterDeviceClassAssociation(
497 [in] handle_t hBinding,
498 [in, string, unique] LPWSTR pszDeviceID,
499 [in] GUID *InterfaceGuid,
500 [in, string, unique] LPWSTR pszReference,
501 [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
502 [in, out] PNP_RPC_STRING_LEN *pulLength,
503 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
504 [in] DWORD ulFlags);
505
506 /* Function 25 */
507 DWORD
508 __stdcall
509 PNP_UnregisterDeviceClassAssociation(
510 [in] handle_t hBinding,
511 [in, string, unique] LPWSTR pszInterfaceDevice,
512 [in] DWORD ulFlags);
513
514 /* Function 26 */
515 DWORD
516 __stdcall
517 PNP_GetClassRegProp(
518 [in] handle_t hBinding,
519 [in, string, ref] LPWSTR pszClassGuid,
520 [in] DWORD ulProperty,
521 [in, out] DWORD *pulRegDataType,
522 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
523 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
524 [in, out] PNP_RPC_STRING_LEN *pulLength,
525 [in] DWORD ulFlags);
526
527 /* Function 27 */
528 DWORD
529 __stdcall
530 PNP_SetClassRegProp(
531 [in] handle_t hBinding,
532 [in, string, ref] LPWSTR pszClassGuid,
533 [in] DWORD ulProperty,
534 [in] DWORD ulDataType,
535 [in, size_is(ulLength)] BYTE *Buffer,
536 [in] PNP_PROP_SIZE ulLength,
537 [in] DWORD ulFlags);
538
539 /* Function 28 */
540 DWORD
541 __stdcall
542 PNP_CreateDevInst(
543 [in] handle_t hBinding,
544 [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
545 [in, string, ref] LPWSTR pszParentDeviceID,
546 [in] PNP_RPC_STRING_LEN ulLength,
547 [in] DWORD ulFlags);
548
549 /* Function 29 */
550 cpp_quote("#define PNP_DEVINST_MOVE 0x2")
551 cpp_quote("#define PNP_DEVINST_SETUP 0x3")
552 cpp_quote("#define PNP_DEVINST_ENABLE 0x4")
553 cpp_quote("#define PNP_DEVINST_DISABLE 0x5")
554 cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
555 DWORD
556 __stdcall
557 PNP_DeviceInstanceAction(
558 [in] handle_t hBinding,
559 [in] DWORD ulMajorAction,
560 [in] DWORD ulMinorAction,
561 [in, string, unique] LPWSTR pszDeviceInstance1,
562 [in, string, unique] LPWSTR pszDeviceInstance2);
563
564 /* Function 30 */
565 DWORD
566 __stdcall
567 PNP_GetDeviceStatus(
568 [in] handle_t hBinding,
569 [in, string, unique] LPWSTR pDeviceID,
570 [out] DWORD *pulStatus,
571 [out] DWORD *pulProblem,
572 [in] DWORD ulFlags);
573
574 /* Function 31 */
575 DWORD
576 __stdcall
577 PNP_SetDeviceProblem(
578 [in] handle_t hBinding,
579 [in, string, unique] LPWSTR pDeviceID,
580 [in] DWORD ulProblem,
581 [in] DWORD ulFlags);
582
583 /* Function 32 */
584 DWORD
585 __stdcall
586 PNP_DisableDevInst(
587 [in] handle_t hBinding,
588 [in, string, unique] LPWSTR pDeviceID,
589 [in, out, unique] PPNP_VETO_TYPE pVetoType,
590 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
591 [in] DWORD ulNameLength,
592 [in] DWORD ulFlags);
593
594 /* Function 33 */
595 DWORD
596 __stdcall
597 PNP_UninstallDevInst(
598 [in] handle_t hBinding,
599 [in, string, unique] LPWSTR pDeviceID,
600 [in] DWORD ulFlags);
601
602 /* Function 34 */
603 DWORD
604 __stdcall
605 PNP_AddID(
606 [in] handle_t hBinding,
607 [in, string, unique] LPWSTR pszDeviceID,
608 [in, string, ref] LPWSTR pszID,
609 [in] DWORD ulFlags);
610
611 /* Function 35 */
612 DWORD
613 __stdcall
614 PNP_RegisterDriver(
615 [in] handle_t hBinding,
616 [in, string, ref] LPWSTR pszDeviceID,
617 [in] DWORD ulFlags);
618
619 /* Function 36 */
620 DWORD
621 __stdcall
622 PNP_QueryRemove(
623 [in] handle_t hBinding,
624 [in, string, ref] LPWSTR pszDeviceID,
625 [in, out, unique] PPNP_VETO_TYPE pVetoType,
626 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
627 [in] DWORD ulNameLength,
628 [in] DWORD ulFlags);
629
630 /* Function 37 */
631 DWORD
632 __stdcall
633 PNP_RequestDeviceEject(
634 [in] handle_t hBinding,
635 [in, string, ref] LPWSTR pszDeviceID,
636 [in, out, unique] PPNP_VETO_TYPE pVetoType,
637 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
638 [in] DWORD ulNameLength,
639 [in] DWORD ulFlags);
640
641 /* Function 38 */
642 DWORD
643 __stdcall
644 PNP_IsDockStationPresent(
645 [in] handle_t hBinding,
646 [in, out, unique] BOOL *Present);
647
648 /* Function 39 */
649 DWORD
650 __stdcall
651 PNP_RequestEjectPC(
652 [in] handle_t hBinding);
653
654 /* Function 40 */
655 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
656 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
657 DWORD
658 __stdcall
659 PNP_HwProfFlags(
660 [in] handle_t hBinding,
661 [in] DWORD ulAction,
662 [in, string, ref] LPWSTR pDeviceID,
663 [in] DWORD ulConfig,
664 [in, out] DWORD *pulValue,
665 [in, out, unique] PPNP_VETO_TYPE pVetoType,
666 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
667 [in] DWORD ulNameLength,
668 [in] DWORD ulFlags);
669
670 /* Function 41 */
671 DWORD
672 __stdcall
673 PNP_GetHwProfInfo(
674 [in] handle_t hBinding,
675 [in] DWORD ulIndex,
676 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
677 [in, range(0, 168)] DWORD ulProfileInfoSize,
678 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
679 [in] DWORD ulFlags);
680
681 /* Function 42 */
682 DWORD
683 __stdcall
684 PNP_AddEmptyLogConf(
685 [in] handle_t hBinding,
686 [in, string, ref] LPWSTR pDeviceID,
687 [in] DWORD ulPriority,
688 [out] DWORD *pulLogConfTag,
689 [in] DWORD ulFlags);
690
691 /* Function 43 */
692 DWORD
693 __stdcall
694 PNP_FreeLogConf(
695 [in] handle_t hBinding,
696 [in, string, ref] LPWSTR pDeviceID,
697 [in] DWORD ulLogConfType,
698 [in] DWORD ulLogConfTag,
699 [in] DWORD ulFlags);
700
701 /* Function 44 */
702 DWORD
703 __stdcall
704 PNP_GetFirstLogConf(
705 [in] handle_t hBinding,
706 [in, string, ref] LPWSTR pDeviceID,
707 [in] DWORD ulLogConfType,
708 [out] DWORD *pulLogConfTag,
709 [in] DWORD ulFlags);
710
711 /* Function 45 */
712 DWORD
713 __stdcall
714 PNP_GetNextLogConf(
715 [in] handle_t hBinding,
716 [in, string, ref] LPWSTR pDeviceID,
717 [in] DWORD ulLogConfType,
718 [in] DWORD ulCurrentTag,
719 [out] DWORD *pulNextTag,
720 [in] DWORD ulFlags);
721
722 /* Function 46 */
723 DWORD
724 __stdcall
725 PNP_GetLogConfPriority(
726 [in] handle_t hBinding,
727 [in, string, ref] LPWSTR pDeviceID,
728 [in] DWORD ulType,
729 [in] DWORD ulTag,
730 [out] DWORD *pPriority,
731 [in] DWORD ulFlags);
732
733 /* Function 47 */
734 DWORD
735 __stdcall
736 PNP_AddResDes(
737 [in] handle_t hBinding,
738 [in, string, ref] LPWSTR pDeviceID,
739 [in] DWORD ulLogConfTag,
740 [in] DWORD ulLogConfType,
741 [in] RESOURCEID ResourceID,
742 [out] DWORD *pulResourceTag,
743 [in, size_is(ResourceLen)] BYTE *ResourceData,
744 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
745 [in] DWORD ulFlags);
746
747 /* Function 48 */
748 DWORD
749 __stdcall
750 PNP_FreeResDes(
751 [in] handle_t hBinding,
752 [in, string, ref] LPWSTR pDeviceID,
753 [in] DWORD ulLogConfTag,
754 [in] DWORD ulLogConfType,
755 [in] RESOURCEID ResourceID,
756 [in] DWORD ulResourceTag,
757 [out] DWORD *pulPreviousResType,
758 [out] DWORD *pulPreviousResTag,
759 [in] DWORD ulFlags);
760
761 /* Function 49 */
762 DWORD
763 __stdcall
764 PNP_GetNextResDes(
765 [in] handle_t hBinding,
766 [in, string, ref] LPWSTR pDeviceID,
767 [in] DWORD ulLogConfTag,
768 [in] DWORD ulLogConfType,
769 [in] RESOURCEID ResourceID,
770 [in] DWORD ulResourceTag,
771 [out] DWORD *pulNextResType,
772 [out] DWORD *pulNextResTag,
773 [in] DWORD ulFlags);
774
775 /* Function 50 */
776 DWORD
777 __stdcall
778 PNP_GetResDesData(
779 [in] handle_t hBinding,
780 [in, string, ref] LPWSTR pDeviceID,
781 [in] DWORD ulLogConfTag,
782 [in] DWORD ulLogConfType,
783 [in] RESOURCEID ResourceID,
784 [in] DWORD ulResourceTag,
785 [out, size_is(BufferLen)] BYTE *Buffer,
786 [in] PNP_RPC_BUFFER_SIZE BufferLen,
787 [in] DWORD ulFlags);
788
789 /* Function 51 */
790 DWORD
791 __stdcall
792 PNP_GetResDesDataSize(
793 [in] handle_t hBinding,
794 [in, string, ref] LPWSTR pDeviceID,
795 [in] DWORD ulLogConfTag,
796 [in] DWORD ulLogConfType,
797 [in] RESOURCEID ResourceID,
798 [in] DWORD ulResourceTag,
799 [out] DWORD *pulSize,
800 [in] DWORD ulFlags);
801
802 /* Function 52 */
803 DWORD
804 __stdcall
805 PNP_ModifyResDes(
806 [in] handle_t hBinding,
807 [in, string, ref] LPWSTR pDeviceID,
808 [in] DWORD ulLogConfTag,
809 [in] DWORD ulLogConfType,
810 [in] RESOURCEID CurrentResourceID,
811 [in] RESOURCEID NewResourceID,
812 [in] DWORD ulResourceTag,
813 [in, size_is(ResourceLen)] BYTE *ResourceData,
814 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
815 [in] DWORD ulFlags);
816
817 /* Function 53 */
818 DWORD
819 __stdcall
820 PNP_DetectResourceConflict(
821 [in] handle_t hBinding,
822 [in, string, ref] LPWSTR pDeviceID,
823 [in] RESOURCEID ResourceID,
824 [in, size_is(ResourceLen)] BYTE *ResourceData,
825 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
826 [out] BOOL *pbConflictDetected,
827 [in] DWORD ulFlags);
828
829 /* Function 54 */
830 DWORD
831 __stdcall
832 PNP_QueryResConfList(
833 [in] handle_t hBinding,
834 [in, string, ref] LPWSTR pDeviceID,
835 [in] RESOURCEID ResourceID,
836 [in, size_is(ResourceLen)] BYTE *ResourceData,
837 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
838 [out, size_is(BufferLen)] BYTE *Buffer,
839 [in] PNP_RPC_BUFFER_SIZE BufferLen,
840 [in] DWORD ulFlags);
841
842 /* Function 55 */
843 DWORD
844 __stdcall
845 PNP_SetHwProf(
846 [in] handle_t hBinding,
847 [in] DWORD ulHardwareProfile,
848 [in] DWORD ulFlags);
849
850 /* Function 56 */
851 DWORD
852 __stdcall
853 PNP_QueryArbitratorFreeData(
854 [in] handle_t hBinding,
855 [out, size_is(DataLen)] BYTE *pData,
856 [in] DWORD DataLen,
857 [in, string, ref] LPWSTR pDeviceID,
858 [in] RESOURCEID ResourceID,
859 [in] DWORD ulFlags);
860
861 /* Function 57 */
862 DWORD
863 __stdcall
864 PNP_QueryArbitratorFreeSize(
865 [in] handle_t hBinding,
866 [out] DWORD *pulSize,
867 [in, string, ref] LPWSTR pDeviceID,
868 [in] RESOURCEID ResourceID,
869 [in] DWORD ulFlags);
870
871 /* Function 58 */
872 DWORD
873 __stdcall
874 PNP_RunDetection(
875 [in] handle_t hBinding,
876 [in] DWORD ulFlags);
877
878 /* Function 59 */
879 DWORD
880 __stdcall
881 PNP_RegisterNotification(
882 [in] handle_t hBinding,
883 [in] DWORD_PTR hRecipient,
884 [in, string, ref] LPWSTR pszName,
885 [in, size_is(ulNotificationFilterSize)] BYTE *pNotificationFilter,
886 [in] DWORD ulNotificationFilterSize,
887 [in] DWORD ulFlags,
888 [out] PPNP_NOTIFY_HANDLE pNotifyHandle,
889 [in] DWORD ulProcessId,
890 [in] DWORD *pulUnknown9);
891
892 /* Function 60 */
893 DWORD
894 __stdcall
895 PNP_UnregisterNotification(
896 [in] handle_t hBinding,
897 [in, out] PPNP_NOTIFY_HANDLE pNotifyHandle);
898
899cpp_quote("#if _WIN32_WINNT >= 0x0501")
900
901 /* Function 61 */
902 DWORD
903 __stdcall
904 PNP_GetCustomDevProp(
905 [in] handle_t hBinding,
906 [in, string, ref] LPWSTR pDeviceID,
907 [in, string, ref] LPWSTR CustomPropName,
908 [out] DWORD *pulRegDataType,
909 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
910 [out] PNP_RPC_STRING_LEN *pulTransferLen,
911 [in, out] PNP_RPC_STRING_LEN *pulLength,
912 [in] DWORD ulFlags);
913
914 /* Function 62 */
915 DWORD
916 __stdcall
917 PNP_GetVersionInternal(
918 [in] handle_t hBinding,
919 [in, out] WORD *pwVersion);
920
921 /* Function 63 */
922 DWORD
923 __stdcall
924 PNP_GetBlockedDriverInfo(
925 [in] handle_t hBinding,
926 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
927 [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
928 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
929 [in] DWORD ulFlags);
930
931 /* Function 64 */
932 DWORD
933 __stdcall
934 PNP_GetServerSideDeviceInstallFlags(
935 [in] handle_t hBinding,
936 [out] DWORD *pulSSDIFlags,
937 [in] DWORD ulFlags);
938
939 /* Functions 65 to 74 are Vista+, see r63565 */
940
941cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */")
942
943}
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
short WCHAR
Definition: pedump.c:58
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