2 * Plug and Play Manager RPC interface definition
7 const unsigned long PNP_MAX_STRING_LEN = 32767;
8 const unsigned long PNP_MAX_DEVICE_ID_LEN = 200;
9 const unsigned long PNP_MAX_GUID_STRING_LEN = 39;
10 const unsigned long PNP_MAX_DEVINTERFACE_LEN = PNP_MAX_STRING_LEN;
11 const unsigned long PNP_MAX_CULTURE_NAME_LEN = 85;
12 const unsigned long PNP_MAX_CM_PATH = 360;
13 const unsigned long PNP_MAX_PROP_SIZE = 65534;
14 const unsigned long PNP_MAX_PROP_COUNT = 32767;
15 const unsigned long PNP_MAX_BUFFER_SIZE = 16000000;
17 cpp_quote("#ifndef _CFGMGR32_H_")
18 typedef unsigned long RESOURCEID;
20 typedef unsigned long DEVPROPTYPE;
21 typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE, *PPNP_PROP_SIZE;
22 typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT, *PPNP_PROP_COUNT;
23 typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN, *PPNP_RPC_STRING_LEN;
24 typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE, *PPNP_RPC_BUFFER_SIZE;
26 cpp_quote("#ifndef _CFG_INCLUDED_")
28 typedef enum _PNP_VETO_TYPE {
29 PNP_VetoTypeUnknown = 0,
30 PNP_VetoLegacyDevice = 1,
31 PNP_VetoPendingClose = 2,
32 PNP_VetoWindowsApp = 3,
33 PNP_VetoWindowsService = 4,
34 PNP_VetoOutstandingOpen = 5,
37 PNP_VetoIllegalDeviceRequest = 8,
38 PNP_VetoInsufficientPower = 9,
39 PNP_VetoNonDisableable = 10,
40 PNP_VetoLegacyDriver = 11,
41 PNP_VetoInsufficientRights = 12,
48 typedef struct _BUSNUMBER_DES {
52 DWORD BUSD_Alloc_Base;
54 } BUSNUMBER_DES, *PBUSNUMBER_DES;
56 typedef struct _BUSNUMBER_RANGE {
59 DWORD BUSR_nBusNumbers;
61 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
63 typedef struct _BUSNUMBER_RESOURCE {
64 BUSNUMBER_DES BusNumber_Header;
65 BUSNUMBER_RANGE BusNumber_Data[1];
66 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
68 typedef struct _CS_DES {
69 DWORD CSD_SignatureLength;
70 DWORD CSD_LegacyDataOffset;
71 DWORD CSD_LegacyDataSize;
74 BYTE CSD_Signature[1];
77 typedef struct _CS_RESOURCE {
79 } CS_RESOURCE, *PCS_RESOURCE;
81 typedef struct _DEVPRIVATE_DES {
88 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
90 typedef struct _DEVPRIVATE_RANGE {
94 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
96 typedef struct _DEVPRIVATE_RESOURCE {
97 DEVPRIVATE_DES PRV_Header;
98 DEVPRIVATE_RANGE PRV_Data[1];
99 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
101 typedef struct _DMA_DES {
105 unsigned long DD_Alloc_Chan;
106 } DMA_DES, *PDMA_DES;
108 typedef struct _DMA_RANGE {
112 } DMA_RANGE, *PDMA_RANGE;
114 typedef struct _DMA_RESOURCE {
116 DMA_RANGE DMA_Data[1];
117 } DMA_RESOURCE, *PDMA_RESOURCE;
119 typedef struct _IO_DES {
122 unsigned __int64 IOD_AllocBase;
123 unsigned __int64 IOD_AllocEnd;
127 typedef struct _IO_RANGE {
128 unsigned __int64 IOR_Align;
130 unsigned __int64 IOR_Min;
131 unsigned __int64 IOR_Max;
132 DWORD IOR_RangeFlags;
133 unsigned __int64 IOR_Alias;
134 } IO_RANGE, *PIO_RANGE;
136 typedef struct _IO_RESOURCE {
139 } IO_RESOURCE, *PIO_RESOURCE;
141 typedef struct _IRQ_DES {
145 DWORD IRQD_Alloc_Num;
147 } IRQ_DES, *PIRQ_DES;
149 typedef struct _IRQ_RANGE {
153 } IRQ_RANGE, *PIRQ_RANGE;
155 typedef struct _IRQ_RESOURCE {
157 IRQ_RANGE IO_Data[1];
158 } IRQ_RESOURCE, *PIRQ_RESOURCE;
160 typedef struct _MEM_DES {
163 unsigned __int64 MD_Alloc_Base;
164 unsigned __int64 MD_Alloc_End;
167 } MEM_DES, *PMEM_DES;
169 typedef struct _MEM_RANGE {
176 } MEM_RANGE, *PMEM_RANGE;
178 typedef struct _MEM_RESOURCE {
180 MEM_RANGE MEM_Data[1];
181 } MEM_RESOURCE, *PMEM_RESOURCE;
183 typedef struct _MFCARD_DES {
187 BYTE PMF_ConfigOptions;
188 BYTE PMF_IoResourceIndex;
189 BYTE PMF_Reserved[2];
190 DWORD PMF_ConfigRegisterBase;
191 } MFCARD_DES, *PMFCARD_DES;
193 typedef struct _MFCARD_RESOURCE {
194 MFCARD_DES MfCard_Header;
195 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
197 typedef struct _PCCARD_DES {
201 BYTE PCD_ConfigIndex;
202 BYTE PCD_Reserved[3];
203 DWORD PCD_MemoryCardBase1;
204 DWORD PCD_MemoryCardBase2;
205 } PCCARD_DES, *PPCCARD_DES;
207 typedef struct _PCCARD_RESOURCE {
208 PCCARD_DES PcCard_Header;
209 } PCCARD_RESOURCE, *PPCARD_RESOURCE;
213 typedef struct _PNP_CONFLICT_ENTRY {
214 DWORD DeviceInstance;
217 __int64 ResourceStart;
220 } PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
222 typedef struct _PNP_CONFLICT_LIST {
225 DWORD ConflictsCounted;
226 DWORD ConflictsListed;
227 DWORD RequiredBufferSize;
228 PNP_CONFLICT_ENTRY ConflictEntry[1];
229 } PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
231 typedef struct _PNP_CONFLICT_STRINGS {
232 DWORD NullDeviceInstance;
233 WCHAR DeviceInstanceStrings[1];
234 } PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
236 typedef struct _DEVPROPKEY {
241 typedef struct _HWPROFILEINFO {
242 DWORD HWPI_ulHWProfile;
243 WCHAR HWPI_szFriendlyName[80];
248 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
250 pointer_default(unique)
258 DWORD PNP_Disconnect(
259 [in] handle_t hBinding); /* FIXME */
263 [in] handle_t hBinding); /* FIXME */
266 DWORD PNP_GetVersion(
267 [in] handle_t hBinding,
268 [out] WORD *pVersion);
271 DWORD PNP_GetGlobalState(
272 [in] handle_t hBinding,
273 [out] DWORD *pulState,
277 DWORD PNP_InitDetection(
278 [in] handle_t hBinding);
281 DWORD PNP_ReportLogOn(
282 [in] handle_t hBinding,
284 [in] DWORD ProcessId);
287 DWORD PNP_ValidateDeviceInstance(
288 [in] handle_t hBinding,
289 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
293 DWORD PNP_GetRootDeviceInstance(
294 [in] handle_t hBinding,
295 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
296 [in] PNP_RPC_STRING_LEN ulLength);
299 cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
300 cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
301 cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
302 DWORD PNP_GetRelatedDeviceInstance(
303 [in] handle_t hBinding,
304 [in] DWORD ulRelationship,
305 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
306 [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
307 [in, out] PNP_RPC_STRING_LEN *pulLength,
311 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
312 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
313 DWORD PNP_EnumerateSubKeys(
314 [in] handle_t hBinding,
317 [out, string, size_is(ulLength)] LPWSTR Buffer,
318 [in] PNP_RPC_STRING_LEN ulLength,
319 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
323 DWORD PNP_GetDeviceList(
324 [in] handle_t hBinding,
325 [in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszFilter,
326 [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
327 [in, out] PNP_RPC_STRING_LEN *pulLength,
331 DWORD PNP_GetDeviceListSize(
332 [in] handle_t hBinding,
333 [in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszFilter,
334 [out] PNP_RPC_BUFFER_SIZE *pulLen,
339 [in] handle_t hBinding,
340 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
341 [out] DWORD *pulDepth,
345 DWORD PNP_GetDeviceRegProp(
346 [in] handle_t hBinding,
347 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
348 [in] DWORD ulProperty,
349 [in, out] DWORD *pulRegDataType,
350 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
351 [in, out] PNP_PROP_SIZE *pulTransferLen,
352 [in, out] PNP_PROP_SIZE *pulLength,
356 DWORD PNP_SetDeviceRegProp(
357 [in] handle_t hBinding,
358 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceId,
359 [in] DWORD ulProperty,
360 [in] DWORD ulDataType,
361 [in, size_is(ulLength)] BYTE *Buffer,
362 [in] PNP_PROP_SIZE ulLength,
366 DWORD PNP_GetClassInstance(
367 [in] handle_t hBinding,
368 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceId,
369 [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
370 [in] PNP_RPC_STRING_LEN ulLength);
374 [in] handle_t hBinding,
375 [in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszSubKey,
376 [in] DWORD samDesired,
380 DWORD PNP_DeleteRegistryKey(
381 [in] handle_t hBinding,
382 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
383 [in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszParentKey,
384 [in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszChildKey,
388 DWORD PNP_GetClassCount(
389 [in] handle_t hBinding,
390 [out] DWORD *pulClassCount,
394 DWORD PNP_GetClassName(
395 [in] handle_t hBinding,
396 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
397 [out, string, size_is(*pulLength)] LPWSTR Buffer,
398 [in, out] PNP_RPC_STRING_LEN *pulLength,
402 DWORD PNP_DeleteClassKey(
403 [in] handle_t hBinding,
404 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
408 DWORD PNP_GetInterfaceDeviceAlias(
409 [in] handle_t hBinding,
410 [in, string, ref, range(0, PNP_MAX_DEVINTERFACE_LEN)] LPWSTR pszInterfaceDevice,
411 [in] GUID *AliasInterfaceGuid,
412 [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
413 [in, out] PNP_RPC_STRING_LEN *pulLength,
414 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
418 DWORD PNP_GetInterfaceDeviceList(
419 [in] handle_t hBinding,
420 [in] GUID *InterfaceGuid,
421 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
422 [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
423 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
427 DWORD PNP_GetInterfaceDeviceListSize(
428 [in] handle_t hBinding,
429 [out] PNP_RPC_BUFFER_SIZE *pulLen,
430 [in] GUID *InterfaceGuid,
431 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
435 DWORD PNP_RegisterDeviceClassAssociation(
436 [in] handle_t hBinding,
437 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
438 [in] GUID *InterfaceGuid,
439 [in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszReference,
440 [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
441 [in, out] PNP_RPC_STRING_LEN *pulLength,
442 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
446 DWORD PNP_UnregisterDeviceClassAssociation(
447 [in] handle_t hBinding,
448 [in, string, unique, range(0, PNP_MAX_DEVINTERFACE_LEN)] LPWSTR pszInterfaceDevice,
452 DWORD PNP_GetClassRegProp(
453 [in] handle_t hBinding,
454 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
455 [in] DWORD ulProperty,
456 [in, out] DWORD *pulRegDataType,
457 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
458 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
459 [in, out] PNP_RPC_STRING_LEN *pulLength,
463 DWORD PNP_SetClassRegProp(
464 [in] handle_t hBinding,
465 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR *pszClassGuid,
466 [in] DWORD ulProperty,
467 [in] DWORD ulDataType,
468 [in, size_is(ulLength)] BYTE *Buffer,
469 [in] PNP_PROP_SIZE ulLength,
473 DWORD PNP_CreateDevInst(
474 [in] handle_t hBinding,
475 [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
476 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszParentDeviceID,
477 [in] PNP_RPC_STRING_LEN ulLength,
481 DWORD PNP_DeviceInstanceAction(
482 [in] handle_t hBinding,
483 [in] DWORD ulMajorAction,
484 [in] DWORD ulMinorAction,
485 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceInstance1,
486 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceInstance2);
489 DWORD PNP_GetDeviceStatus(
490 [in] handle_t hBinding,
491 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
492 [out] DWORD *pulStatus,
493 [out] DWORD *pulProblem,
497 DWORD PNP_SetDeviceProblem(
498 [in] handle_t hBinding,
499 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
500 [in] DWORD ulProblem,
504 DWORD PNP_DisableDevInst(
505 [in] handle_t hBinding,
506 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
507 [in, out, unique] PPNP_VETO_TYPE pVetoType,
508 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
509 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
510 [in] DWORD ulNameLength,
514 DWORD PNP_UninstallDevInst(
515 [in] handle_t hBinding,
516 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
521 [in] handle_t hBinding,
522 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
523 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszID,
527 DWORD PNP_RegisterDriver(
528 [in] handle_t hBinding,
529 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
533 DWORD PNP_QueryRemove(
534 [in] handle_t hBinding,
535 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
536 [in, out, unique] PPNP_VETO_TYPE pVetoType,
537 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
538 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
539 [in] DWORD ulNameLength,
543 DWORD PNP_RequestDeviceEject(
544 [in] handle_t hBinding,
545 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
546 [in, out, unique] PPNP_VETO_TYPE pVetoType,
547 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
548 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
549 [in] DWORD ulNameLength,
553 DWORD PNP_IsDockStationPresent(
554 [in] handle_t hBinding,
555 [in, out, unique] BOOL *Present);
558 DWORD PNP_RequestEjectPC(
559 [in] handle_t hBinding);
562 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
563 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
564 DWORD PNP_HwProfFlags(
565 [in] handle_t hBinding,
567 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
569 [in, out] DWORD *pulValue,
570 [in, out, unique] PPNP_VETO_TYPE pVetoType,
571 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
572 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
573 [in] DWORD ulNameLength,
577 DWORD PNP_GetHwProfInfo(
578 [in] handle_t hBinding,
580 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
581 [in, range(0, 168)] DWORD ulProfileInfoSize,
582 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
586 DWORD PNP_AddEmptyLogConf(
587 [in] handle_t hBinding,
588 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
589 [in] DWORD ulPriority,
590 [out] DWORD *pulLogConfTag,
594 DWORD PNP_FreeLogConf(
595 [in] handle_t hBinding,
596 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
597 [in] DWORD ulLogConfType,
598 [in] DWORD ulLogConfTag,
602 DWORD PNP_GetFirstLogConf(
603 [in] handle_t hBinding,
604 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
605 [in] DWORD ulLogConfType,
606 [out] DWORD *pulLogConfTag,
610 DWORD PNP_GetNextLogConf(
611 [in] handle_t hBinding,
612 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
613 [in] DWORD ulLogConfType,
614 [in] DWORD ulCurrentTag,
615 [out] DWORD *pulNextTag,
619 DWORD PNP_GetLogConfPriority(
620 [in] handle_t hBinding,
621 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
624 [out] DWORD *pPriority,
629 [in] handle_t hBinding,
630 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
631 [in] DWORD ulLogConfTag,
632 [in] DWORD ulLogConfType,
633 [in] RESOURCEID ResourceID,
634 [out] DWORD *pulResourceTag,
635 [in, size_is(ResourceLen)] BYTE *ResourceData,
636 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
640 DWORD PNP_FreeResDes(
641 [in] handle_t hBinding,
642 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
643 [in] DWORD ulLogConfTag,
644 [in] DWORD ulLogConfType,
645 [in] RESOURCEID ResourceID,
646 [in] DWORD ulResourceTag,
647 [out] DWORD *pulPreviousResType,
648 [out] DWORD *pulPreviousResTag,
652 DWORD PNP_GetNextResDes(
653 [in] handle_t hBinding,
654 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
655 [in] DWORD ulLogConfTag,
656 [in] DWORD ulLogConfType,
657 [in] RESOURCEID ResourceID,
658 [in] DWORD ulResourceTag,
659 [out] DWORD *pulNextResType,
660 [out] DWORD *pulNextResTag,
664 DWORD PNP_GetResDesData(
665 [in] handle_t hBinding,
666 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
667 [in] DWORD ulLogConfTag,
668 [in] DWORD ulLogConfType,
669 [in] RESOURCEID ResourceID,
670 [in] DWORD ulResourceTag,
671 [out, size_is(BufferLen)] BYTE *Buffer,
672 [in] PNP_RPC_BUFFER_SIZE BufferLen,
676 DWORD PNP_GetResDesDataSize(
677 [in] handle_t hBinding,
678 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
679 [in] DWORD ulLogConfTag,
680 [in] DWORD ulLogConfType,
681 [in] RESOURCEID ResourceID,
682 [in] DWORD ulResourceTag,
683 [out] DWORD *pulSize,
687 DWORD PNP_ModifyResDes(
688 [in] handle_t hBinding,
689 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
690 [in] DWORD ulLogConfTag,
691 [in] DWORD ulLogConfType,
692 [in] RESOURCEID CurrentResourceID,
693 [in] RESOURCEID NewResourceID,
694 [in] DWORD ulResourceTag,
695 [in, size_is(ResourceLen)] BYTE *ResourceData,
696 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
700 DWORD PNP_DetectResourceConflict(
701 [in] handle_t hBinding,
702 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
703 [in] RESOURCEID ResourceID,
704 [in, size_is(ResourceLen)] BYTE *ResourceData,
705 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
706 [out] BOOL *pbConflictDetected,
710 DWORD PNP_QueryResConfList(
711 [in] handle_t hBinding,
712 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
713 [in] RESOURCEID ResourceID,
714 [in, size_is(ResourceLen)] BYTE *ResourceData,
715 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
716 [out, size_is(BufferLen)] BYTE *Buffer,
717 [in] PNP_RPC_BUFFER_SIZE BufferLen,
722 [in] handle_t hBinding);
725 DWORD PNP_QueryArbitratorFreeData(
726 [in] handle_t hBinding);
729 DWORD PNP_QueryArbitratorFreeSize(
730 [in] handle_t hBinding);
733 DWORD PNP_RunDetection(
734 [in] handle_t hBinding,
738 DWORD PNP_RegisterNotification(
739 [in] handle_t hBinding);
742 DWORD PNP_UnregisterNotification(
743 [in] handle_t hBinding);
745 cpp_quote("#if _WIN32_WINNT >= 0x0501")
748 DWORD PNP_GetCustomDevProp(
749 [in] handle_t hBinding,
750 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
751 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR CustomPropName,
752 [out] DWORD *pulRegDataType,
753 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
754 [out] PNP_RPC_STRING_LEN *pulTransferLen,
755 [in, out] PNP_RPC_STRING_LEN *pulLength,
759 DWORD PNP_GetVersionInternal(
760 [in] handle_t hBinding,
761 [in, out] WORD *pwVersion);
764 DWORD PNP_GetBlockedDriverInfo(
765 [in] handle_t hBinding,
766 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
767 [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
768 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
772 DWORD PNP_GetServerSideDeviceInstallFlags(
773 [in] handle_t hBinding,
774 [out] DWORD *pulSSDIFlags,
777 cpp_quote("#if _WIN32_WINNT >= 0x0600")
780 DWORD PNP_GetObjectPropKeys(
781 [in] handle_t hBinding,
782 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
783 [in] DWORD ObjectType,
784 [in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
785 [in, out] PNP_PROP_COUNT *PropertyCount,
786 [out] PNP_PROP_COUNT *TransferLen,
787 [out, size_is(*PropertyCount), length_is(*TransferLen)] DEVPROPKEY *PropertyKeys,
791 DWORD PNP_GetObjectProp(
792 [in] handle_t hBinding,
793 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
794 [in] DWORD ObjectType,
795 [in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
796 [in] const DEVPROPKEY *PropertyKey,
797 [out] DEVPROPTYPE *PropertyType,
798 [in, out] PNP_PROP_SIZE *PropertySize,
799 [out] PNP_PROP_SIZE *TransferLen,
800 [out, size_is(*PropertySize), length_is(*TransferLen)] BYTE *PropertyBuffer,
804 DWORD PNP_SetObjectProp(
805 [in] handle_t hBinding,
806 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
807 [in] DWORD ObjectType,
808 [in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
809 [in] const DEVPROPKEY *PropertyKey,
810 [in] DEVPROPTYPE PropertyType,
811 [in] PNP_PROP_SIZE PropertySize,
812 [in, unique, size_is(PropertySize)] BYTE *PropertyBuffer,
816 DWORD PNP_InstallDevInst(
817 [in] handle_t hBinding); /* FIXME */
820 DWORD PNP_ApplyPowerSettings(
821 [in] handle_t hBinding); /* FIXME */
824 DWORD PNP_DriverStoreAddDriverPackage(
825 [in] handle_t hBinding); /* FIXME */
828 DWORD PNP_DriverStoreDeleteDriverPackage(
829 [in] handle_t hBinding); /* FIXME */
832 DWORD PNP_RegisterServiceNotification(
833 [in] handle_t hBinding); /* FIXME */
836 DWORD PNP_SetActiveService(
837 [in] handle_t hBinding); /* FIXME */
840 DWORD PNP_DeleteServiceDevices(
841 [in] handle_t hBinding); /* FIXME */
843 cpp_quote("#endif /* WIN32_WINNT >= 0x0600 */")
844 cpp_quote("#endif /* WIN32_WINNT >= 0x0501 */")