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 struct _HWPROFILEINFO {
21 DWORD HWPI_ulHWProfile;
22 WCHAR HWPI_szFriendlyName[80];
27 typedef unsigned long DEVPROPTYPE;
28 typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
29 typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT;
30 typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN;
31 typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE;
32 typedef PNP_PROP_SIZE *PPNP_PROP_SIZE;
33 typedef PNP_PROP_COUNT *PPNP_PROP_COUNT;
34 typedef PNP_RPC_STRING_LEN *PPNP_RPC_STRING_LEN;
35 typedef PNP_RPC_BUFFER_SIZE *PPNP_RPC_BUFFER_SIZE;
37 cpp_quote("#ifndef _CFG_INCLUDED_")
39 typedef enum _PNP_VETO_TYPE {
40 PNP_VetoTypeUnknown = 0,
41 PNP_VetoLegacyDevice = 1,
42 PNP_VetoPendingClose = 2,
43 PNP_VetoWindowsApp = 3,
44 PNP_VetoWindowsService = 4,
45 PNP_VetoOutstandingOpen = 5,
48 PNP_VetoIllegalDeviceRequest = 8,
49 PNP_VetoInsufficientPower = 9,
50 PNP_VetoNonDisableable = 10,
51 PNP_VetoLegacyDriver = 11,
52 PNP_VetoInsufficientRights = 12,
59 typedef struct _BUSNUMBER_DES {
63 DWORD BUSD_Alloc_Base;
65 } BUSNUMBER_DES, *PBUSNUMBER_DES;
67 typedef struct _BUSNUMBER_RANGE {
70 DWORD BUSR_nBusNumbers;
72 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
74 typedef struct _BUSNUMBER_RESOURCE {
75 BUSNUMBER_DES BusNumber_Header;
76 BUSNUMBER_RANGE BusNumber_Data[1];
77 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
79 typedef struct _CS_DES {
80 DWORD CSD_SignatureLength;
81 DWORD CSD_LegacyDataOffset;
82 DWORD CSD_LegacyDataSize;
85 BYTE CSD_Signature[1];
88 typedef struct _CS_RESOURCE {
90 } CS_RESOURCE, *PCS_RESOURCE;
92 typedef struct _DEVPRIVATE_DES {
99 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
101 typedef struct _DEVPRIVATE_RANGE {
105 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
107 typedef struct _DEVPRIVATE_RESOURCE {
108 DEVPRIVATE_DES PRV_Header;
109 DEVPRIVATE_RANGE PRV_Data[1];
110 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
112 typedef struct _DMA_DES {
116 unsigned long DD_Alloc_Chan;
117 } DMA_DES, *PDMA_DES;
119 typedef struct _DMA_RANGE {
123 } DMA_RANGE, *PDMA_RANGE;
125 typedef struct _DMA_RESOURCE {
127 DMA_RANGE DMA_Data[1];
128 } DMA_RESOURCE, *PDMA_RESOURCE;
130 typedef struct _IO_DES {
133 unsigned __int64 IOD_AllocBase;
134 unsigned __int64 IOD_AllocEnd;
138 typedef struct _IO_RANGE {
139 unsigned __int64 IOR_Align;
141 unsigned __int64 IOR_Min;
142 unsigned __int64 IOR_Max;
143 DWORD IOR_RangeFlags;
144 unsigned __int64 IOR_Alias;
145 } IO_RANGE, *PIO_RANGE;
147 typedef struct _IO_RESOURCE {
150 } IO_RESOURCE, *PIO_RESOURCE;
152 typedef struct _IRQ_DES {
156 DWORD IRQD_Alloc_Num;
158 } IRQ_DES, *PIRQ_DES;
160 typedef struct _IRQ_RANGE {
164 } IRQ_RANGE, *PIRQ_RANGE;
166 typedef struct _IRQ_RESOURCE {
168 IRQ_RANGE IO_Data[1];
169 } IRQ_RESOURCE, *PIRQ_RESOURCE;
171 typedef struct _MEM_DES {
174 unsigned __int64 MD_Alloc_Base;
175 unsigned __int64 MD_Alloc_End;
178 } MEM_DES, *PMEM_DES;
180 typedef struct _MEM_RANGE {
187 } MEM_RANGE, *PMEM_RANGE;
189 typedef struct _MEM_RESOURCE {
191 MEM_RANGE MEM_Data[1];
192 } MEM_RESOURCE, *PMEM_RESOURCE;
194 typedef struct _MFCARD_DES {
198 BYTE PMF_ConfigOptions;
199 BYTE PMF_IoResourceIndex;
200 BYTE PMF_Reserved[2];
201 DWORD PMF_ConfigRegisterBase;
202 } MFCARD_DES, *PMFCARD_DES;
204 typedef struct _MFCARD_RESOURCE {
205 MFCARD_DES MfCard_Header;
206 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
208 typedef struct _PCCARD_DES {
212 BYTE PCD_ConfigIndex;
213 BYTE PCD_Reserved[3];
214 DWORD PCD_MemoryCardBase1;
215 DWORD PCD_MemoryCardBase2;
216 } PCCARD_DES, *PPCCARD_DES;
218 typedef struct _PCCARD_RESOURCE {
219 PCCARD_DES PcCard_Header;
220 } PCCARD_RESOURCE, *PPCARD_RESOURCE;
224 typedef struct _PNP_CONFLICT_ENTRY {
225 DWORD DeviceInstance;
228 __int64 ResourceStart;
231 } PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
233 typedef struct _PNP_CONFLICT_LIST {
236 DWORD ConflictsCounted;
237 DWORD ConflictsListed;
238 DWORD RequiredBufferSize;
239 PNP_CONFLICT_ENTRY ConflictEntry[1];
240 } PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
242 typedef struct _PNP_CONFLICT_STRINGS {
243 DWORD NullDeviceInstance;
244 WCHAR DeviceInstanceStrings[1];
245 } PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
247 typedef struct _DEVPROPKEY {
253 uuid (8D9F4E40-A03D-11CE-8F69-08003E30051B),
255 pointer_default(unique)
263 DWORD PNP_Disconnect(
264 [in] handle_t hBinding); /* FIXME */
268 [in] handle_t hBinding); /* FIXME */
271 DWORD PNP_GetVersion(
272 [in] handle_t hBinding,
273 [out] WORD *pVersion);
276 DWORD PNP_GetGlobalState(
277 [in] handle_t hBinding,
278 [out] DWORD *pulState,
282 DWORD PNP_InitDetection(
283 [in] handle_t hBinding);
286 DWORD PNP_ReportLogOn(
287 [in] handle_t hBinding,
289 [in] DWORD ProcessId);
292 DWORD PNP_ValidateDeviceInstance(
293 [in] handle_t hBinding,
294 [in, string, ref] LPWSTR pDeviceID,
298 DWORD PNP_GetRootDeviceInstance(
299 [in] handle_t hBinding,
300 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
301 [in] PNP_RPC_STRING_LEN ulLength);
304 cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
305 cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
306 cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
307 DWORD PNP_GetRelatedDeviceInstance(
308 [in] handle_t hBinding,
309 [in] DWORD ulRelationship,
310 [in, string, ref] LPWSTR pDeviceID,
311 [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
312 [in, out] PNP_RPC_STRING_LEN *pulLength,
316 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
317 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
318 DWORD PNP_EnumerateSubKeys(
319 [in] handle_t hBinding,
322 [out, string, size_is(ulLength)] LPWSTR Buffer,
323 [in] PNP_RPC_STRING_LEN ulLength,
324 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
328 DWORD PNP_GetDeviceList(
329 [in] handle_t hBinding,
330 [in, string, unique] LPWSTR pszFilter,
331 [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
332 [in, out] PNP_RPC_STRING_LEN *pulLength,
336 DWORD PNP_GetDeviceListSize(
337 [in] handle_t hBinding,
338 [in, string, unique] LPWSTR pszFilter,
339 [out] PNP_RPC_BUFFER_SIZE *pulLen,
344 [in] handle_t hBinding,
345 [in, string, ref] LPWSTR pszDeviceID,
346 [out] DWORD *pulDepth,
350 DWORD PNP_GetDeviceRegProp(
351 [in] handle_t hBinding,
352 [in, string, ref] LPWSTR pDeviceID,
353 [in] DWORD ulProperty,
354 [in, out] DWORD *pulRegDataType,
355 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
356 [in, out] PNP_PROP_SIZE *pulTransferLen,
357 [in, out] PNP_PROP_SIZE *pulLength,
361 DWORD PNP_SetDeviceRegProp(
362 [in] handle_t hBinding,
363 [in, string, ref] LPWSTR pDeviceId,
364 [in] DWORD ulProperty,
365 [in] DWORD ulDataType,
366 [in, size_is(ulLength)] BYTE *Buffer,
367 [in] PNP_PROP_SIZE ulLength,
371 DWORD PNP_GetClassInstance(
372 [in] handle_t hBinding,
373 [in, string, ref] LPWSTR pDeviceId,
374 [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
375 [in] PNP_RPC_STRING_LEN ulLength);
379 [in] handle_t hBinding,
380 [in, string, ref] LPWSTR pszSubKey,
381 [in] DWORD samDesired,
385 DWORD PNP_DeleteRegistryKey(
386 [in] handle_t hBinding,
387 [in, string, ref] LPWSTR pszDeviceID,
388 [in, string, ref] LPWSTR pszParentKey,
389 [in, string, ref] LPWSTR pszChildKey,
393 DWORD PNP_GetClassCount(
394 [in] handle_t hBinding,
395 [out] DWORD *pulClassCount,
399 DWORD PNP_GetClassName(
400 [in] handle_t hBinding,
401 [in, string, ref] LPWSTR pszClassGuid,
402 [out, string, size_is(*pulLength)] LPWSTR Buffer,
403 [in, out] PNP_RPC_STRING_LEN *pulLength,
407 DWORD PNP_DeleteClassKey(
408 [in] handle_t hBinding,
409 [in, string, ref] LPWSTR pszClassGuid,
413 DWORD PNP_GetInterfaceDeviceAlias(
414 [in] handle_t hBinding,
415 [in, string, ref] LPWSTR pszInterfaceDevice,
416 [in] GUID *AliasInterfaceGuid,
417 [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
418 [in, out] PNP_RPC_STRING_LEN *pulLength,
419 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
423 DWORD PNP_GetInterfaceDeviceList(
424 [in] handle_t hBinding,
425 [in] GUID *InterfaceGuid,
426 [in, string, unique] LPWSTR pszDeviceID,
427 [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
428 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
432 DWORD PNP_GetInterfaceDeviceListSize(
433 [in] handle_t hBinding,
434 [out] PNP_RPC_BUFFER_SIZE *pulLen,
435 [in] GUID *InterfaceGuid,
436 [in, string, unique] LPWSTR pszDeviceID,
440 DWORD PNP_RegisterDeviceClassAssociation(
441 [in] handle_t hBinding,
442 [in, string, unique] LPWSTR pszDeviceID,
443 [in] GUID *InterfaceGuid,
444 [in, string, unique] LPWSTR pszReference,
445 [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
446 [in, out] PNP_RPC_STRING_LEN *pulLength,
447 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
451 DWORD PNP_UnregisterDeviceClassAssociation(
452 [in] handle_t hBinding,
453 [in, string, unique] LPWSTR pszInterfaceDevice,
457 DWORD PNP_GetClassRegProp(
458 [in] handle_t hBinding,
459 [in, string, ref] LPWSTR pszClassGuid,
460 [in] DWORD ulProperty,
461 [in, out] DWORD *pulRegDataType,
462 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
463 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
464 [in, out] PNP_RPC_STRING_LEN *pulLength,
468 DWORD PNP_SetClassRegProp(
469 [in] handle_t hBinding,
470 [in, string, ref] LPWSTR *pszClassGuid,
471 [in] DWORD ulProperty,
472 [in] DWORD ulDataType,
473 [in, size_is(ulLength)] BYTE *Buffer,
474 [in] PNP_PROP_SIZE ulLength,
478 DWORD PNP_CreateDevInst(
479 [in] handle_t hBinding,
480 [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
481 [in, string, ref] LPWSTR pszParentDeviceID,
482 [in] PNP_RPC_STRING_LEN ulLength,
486 cpp_quote("#define PNP_DEVINST_MOVE 0x2")
487 cpp_quote("#define PNP_DEVINST_SETUP 0x3")
488 cpp_quote("#define PNP_DEVINST_ENABLE 0x4")
489 cpp_quote("#define PNP_DEVINST_DISABLE 0x5")
490 cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
491 DWORD PNP_DeviceInstanceAction(
492 [in] handle_t hBinding,
495 [in, string, unique] LPWSTR pszDeviceInstance1,
496 [in, string, unique] LPWSTR pszDeviceInstance2);
499 DWORD PNP_GetDeviceStatus(
500 [in] handle_t hBinding,
501 [in, string, unique] LPWSTR pDeviceID,
502 [out] DWORD *pulStatus,
503 [out] DWORD *pulProblem,
507 DWORD PNP_SetDeviceProblem(
508 [in] handle_t hBinding,
509 [in, string, unique] LPWSTR pDeviceID,
510 [in] DWORD ulProblem,
514 DWORD PNP_DisableDevInst(
515 [in] handle_t hBinding,
516 [in, string, unique] LPWSTR pDeviceID,
517 [in, out, unique] PPNP_VETO_TYPE pVetoType,
518 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
519 [in] DWORD ulNameLength,
523 DWORD PNP_UninstallDevInst(
524 [in] handle_t hBinding,
525 [in, string, unique] LPWSTR pDeviceID,
530 [in] handle_t hBinding,
531 [in, string, unique] LPWSTR pszDeviceID,
532 [in, string, ref] LPWSTR pszID,
536 DWORD PNP_RegisterDriver(
537 [in] handle_t hBinding,
538 [in, string, ref] LPWSTR pszDeviceID,
542 DWORD PNP_QueryRemove(
543 [in] handle_t hBinding,
544 [in, string, ref] LPWSTR pszDeviceID,
545 [in, out, unique] PPNP_VETO_TYPE pVetoType,
546 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
547 [in] DWORD ulNameLength,
551 DWORD PNP_RequestDeviceEject(
552 [in] handle_t hBinding,
553 [in, string, ref] LPWSTR pszDeviceID,
554 [in, out, unique] PPNP_VETO_TYPE pVetoType,
555 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
556 [in] DWORD ulNameLength,
560 DWORD PNP_IsDockStationPresent(
561 [in] handle_t hBinding,
562 [in, out, unique] BOOL *Present);
565 DWORD PNP_RequestEjectPC(
566 [in] handle_t hBinding);
569 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
570 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
571 DWORD PNP_HwProfFlags(
572 [in] handle_t hBinding,
574 [in, string, ref] LPWSTR pDeviceID,
576 [in, out] DWORD *pulValue,
577 [in, out, unique] PPNP_VETO_TYPE pVetoType,
578 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
579 [in] DWORD ulNameLength,
583 DWORD PNP_GetHwProfInfo(
584 [in] handle_t hBinding,
586 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
587 [in, range(0, 168)] DWORD ulProfileInfoSize,
588 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
592 DWORD PNP_AddEmptyLogConf(
593 [in] handle_t hBinding,
594 [in, string, ref] LPWSTR pDeviceID,
595 [in] DWORD ulPriority,
596 [out] DWORD *pulLogConfTag,
600 DWORD PNP_FreeLogConf(
601 [in] handle_t hBinding,
602 [in, string, ref] LPWSTR pDeviceID,
603 [in] DWORD ulLogConfType,
604 [in] DWORD ulLogConfTag,
608 DWORD PNP_GetFirstLogConf(
609 [in] handle_t hBinding,
610 [in, string, ref] LPWSTR pDeviceID,
611 [in] DWORD ulLogConfType,
612 [out] DWORD *pulLogConfTag,
616 DWORD PNP_GetNextLogConf(
617 [in] handle_t hBinding,
618 [in, string, ref] LPWSTR pDeviceID,
619 [in] DWORD ulLogConfType,
620 [in] DWORD ulCurrentTag,
621 [out] DWORD *pulNextTag,
625 DWORD PNP_GetLogConfPriority(
626 [in] handle_t hBinding,
627 [in, string, ref] LPWSTR pDeviceID,
630 [out] DWORD *pPriority,
635 [in] handle_t hBinding,
636 [in, string, ref] LPWSTR pDeviceID,
637 [in] DWORD ulLogConfTag,
638 [in] DWORD ulLogConfType,
639 [in] RESOURCEID ResourceID,
640 [out] DWORD *pulResourceTag,
641 [in, size_is(ResourceLen)] BYTE *ResourceData,
642 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
646 DWORD PNP_FreeResDes(
647 [in] handle_t hBinding,
648 [in, string, ref] LPWSTR pDeviceID,
649 [in] DWORD ulLogConfTag,
650 [in] DWORD ulLogConfType,
651 [in] RESOURCEID ResourceID,
652 [in] DWORD ulResourceTag,
653 [out] DWORD *pulPreviousResType,
654 [out] DWORD *pulPreviousResTag,
658 DWORD PNP_GetNextResDes(
659 [in] handle_t hBinding,
660 [in, string, ref] LPWSTR pDeviceID,
661 [in] DWORD ulLogConfTag,
662 [in] DWORD ulLogConfType,
663 [in] RESOURCEID ResourceID,
664 [in] DWORD ulResourceTag,
665 [out] DWORD *pulNextResType,
666 [out] DWORD *pulNextResTag,
670 DWORD PNP_GetResDesData(
671 [in] handle_t hBinding,
672 [in, string, ref] LPWSTR pDeviceID,
673 [in] DWORD ulLogConfTag,
674 [in] DWORD ulLogConfType,
675 [in] RESOURCEID ResourceID,
676 [in] DWORD ulResourceTag,
677 [out, size_is(BufferLen)] BYTE *Buffer,
678 [in] PNP_RPC_BUFFER_SIZE BufferLen,
682 DWORD PNP_GetResDesDataSize(
683 [in] handle_t hBinding,
684 [in, string, ref] LPWSTR pDeviceID,
685 [in] DWORD ulLogConfTag,
686 [in] DWORD ulLogConfType,
687 [in] RESOURCEID ResourceID,
688 [in] DWORD ulResourceTag,
689 [out] DWORD *pulSize,
693 DWORD PNP_ModifyResDes(
694 [in] handle_t hBinding,
695 [in, string, ref] LPWSTR pDeviceID,
696 [in] DWORD ulLogConfTag,
697 [in] DWORD ulLogConfType,
698 [in] RESOURCEID CurrentResourceID,
699 [in] RESOURCEID NewResourceID,
700 [in] DWORD ulResourceTag,
701 [in, size_is(ResourceLen)] BYTE *ResourceData,
702 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
706 DWORD PNP_DetectResourceConflict(
707 [in] handle_t hBinding,
708 [in, string, ref] LPWSTR pDeviceID,
709 [in] RESOURCEID ResourceID,
710 [in, size_is(ResourceLen)] BYTE *ResourceData,
711 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
712 [out] BOOL *pbConflictDetected,
716 DWORD PNP_QueryResConfList(
717 [in] handle_t hBinding,
718 [in, string, ref] LPWSTR pDeviceID,
719 [in] RESOURCEID ResourceID,
720 [in, size_is(ResourceLen)] BYTE *ResourceData,
721 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
722 [out, size_is(BufferLen)] BYTE *Buffer,
723 [in] PNP_RPC_BUFFER_SIZE BufferLen,
728 [in] handle_t hBinding,
729 [in] DWORD ulHardwareProfile,
733 DWORD PNP_QueryArbitratorFreeData(
734 [in] handle_t hBinding);
737 DWORD PNP_QueryArbitratorFreeSize(
738 [in] handle_t hBinding);
741 DWORD PNP_RunDetection(
742 [in] handle_t hBinding,
746 DWORD PNP_RegisterNotification(
747 [in] handle_t hBinding);
750 DWORD PNP_UnregisterNotification(
751 [in] handle_t hBinding);
753 cpp_quote("#if _WIN32_WINNT >= 0x0501")
756 DWORD PNP_GetCustomDevProp(
757 [in] handle_t hBinding,
758 [in, string, ref] LPWSTR pDeviceID,
759 [in, string, ref] LPWSTR CustomPropName,
760 [out] DWORD *pulRegDataType,
761 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
762 [out] PNP_RPC_STRING_LEN *pulTransferLen,
763 [in, out] PNP_RPC_STRING_LEN *pulLength,
767 DWORD PNP_GetVersionInternal(
768 [in] handle_t hBinding,
769 [in, out] WORD *pwVersion);
772 DWORD PNP_GetBlockedDriverInfo(
773 [in] handle_t hBinding,
774 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
775 [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
776 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
780 DWORD PNP_GetServerSideDeviceInstallFlags(
781 [in] handle_t hBinding,
782 [out] DWORD *pulSSDIFlags,
785 cpp_quote("#if _WIN32_WINNT >= 0x0600")
788 DWORD PNP_GetObjectPropKeys(
789 [in] handle_t hBinding,
790 [in, string, ref] LPWSTR ObjectName,
791 [in] DWORD ObjectType,
792 [in, string, unique] LPWSTR PropertyCultureName,
793 [in, out] PNP_PROP_COUNT *PropertyCount,
794 [out] PNP_PROP_COUNT *TransferLen,
795 [out, size_is(*PropertyCount), length_is(*TransferLen)] DEVPROPKEY *PropertyKeys,
799 DWORD PNP_GetObjectProp(
800 [in] handle_t hBinding,
801 [in, string, ref] LPWSTR ObjectName,
802 [in] DWORD ObjectType,
803 [in, string, unique] LPWSTR PropertyCultureName,
804 [in] const DEVPROPKEY *PropertyKey,
805 [out] DEVPROPTYPE *PropertyType,
806 [in, out] PNP_PROP_SIZE *PropertySize,
807 [out] PNP_PROP_SIZE *TransferLen,
808 [out, size_is(*PropertySize), length_is(*TransferLen)] BYTE *PropertyBuffer,
812 DWORD PNP_SetObjectProp(
813 [in] handle_t hBinding,
814 [in, string, ref] LPWSTR ObjectName,
815 [in] DWORD ObjectType,
816 [in, string, unique] LPWSTR PropertyCultureName,
817 [in] const DEVPROPKEY *PropertyKey,
818 [in] DEVPROPTYPE PropertyType,
819 [in] PNP_PROP_SIZE PropertySize,
820 [in, unique, size_is(PropertySize)] BYTE *PropertyBuffer,
824 DWORD PNP_InstallDevInst(
825 [in] handle_t hBinding); /* FIXME */
828 DWORD PNP_ApplyPowerSettings(
829 [in] handle_t hBinding); /* FIXME */
832 DWORD PNP_DriverStoreAddDriverPackage(
833 [in] handle_t hBinding); /* FIXME */
836 DWORD PNP_DriverStoreDeleteDriverPackage(
837 [in] handle_t hBinding); /* FIXME */
840 DWORD PNP_RegisterServiceNotification(
841 [in] handle_t hBinding); /* FIXME */
844 DWORD PNP_SetActiveService(
845 [in] handle_t hBinding); /* FIXME */
848 DWORD PNP_DeleteServiceDevices(
849 [in] handle_t hBinding); /* FIXME */
851 cpp_quote("#endif /* WIN32_WINNT >= 0x0600 */")
852 cpp_quote("#endif /* WIN32_WINNT >= 0x0501 */")