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;
22 typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT;
23 typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN;
24 typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE;
25 typedef PNP_PROP_SIZE *PPNP_PROP_SIZE;
26 typedef PNP_PROP_COUNT *PPNP_PROP_COUNT;
27 typedef PNP_RPC_STRING_LEN *PPNP_RPC_STRING_LEN;
28 typedef PNP_RPC_BUFFER_SIZE *PPNP_RPC_BUFFER_SIZE;
30 cpp_quote("#ifndef _CFG_INCLUDED_")
32 typedef enum _PNP_VETO_TYPE {
33 PNP_VetoTypeUnknown = 0,
34 PNP_VetoLegacyDevice = 1,
35 PNP_VetoPendingClose = 2,
36 PNP_VetoWindowsApp = 3,
37 PNP_VetoWindowsService = 4,
38 PNP_VetoOutstandingOpen = 5,
41 PNP_VetoIllegalDeviceRequest = 8,
42 PNP_VetoInsufficientPower = 9,
43 PNP_VetoNonDisableable = 10,
44 PNP_VetoLegacyDriver = 11,
45 PNP_VetoInsufficientRights = 12,
52 typedef struct _BUSNUMBER_DES {
56 DWORD BUSD_Alloc_Base;
58 } BUSNUMBER_DES, *PBUSNUMBER_DES;
60 typedef struct _BUSNUMBER_RANGE {
63 DWORD BUSR_nBusNumbers;
65 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
67 typedef struct _BUSNUMBER_RESOURCE {
68 BUSNUMBER_DES BusNumber_Header;
69 BUSNUMBER_RANGE BusNumber_Data[1];
70 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
72 typedef struct _CS_DES {
73 DWORD CSD_SignatureLength;
74 DWORD CSD_LegacyDataOffset;
75 DWORD CSD_LegacyDataSize;
78 BYTE CSD_Signature[1];
81 typedef struct _CS_RESOURCE {
83 } CS_RESOURCE, *PCS_RESOURCE;
85 typedef struct _DEVPRIVATE_DES {
92 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
94 typedef struct _DEVPRIVATE_RANGE {
98 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
100 typedef struct _DEVPRIVATE_RESOURCE {
101 DEVPRIVATE_DES PRV_Header;
102 DEVPRIVATE_RANGE PRV_Data[1];
103 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
105 typedef struct _DMA_DES {
109 unsigned long DD_Alloc_Chan;
110 } DMA_DES, *PDMA_DES;
112 typedef struct _DMA_RANGE {
116 } DMA_RANGE, *PDMA_RANGE;
118 typedef struct _DMA_RESOURCE {
120 DMA_RANGE DMA_Data[1];
121 } DMA_RESOURCE, *PDMA_RESOURCE;
123 typedef struct _IO_DES {
126 unsigned __int64 IOD_AllocBase;
127 unsigned __int64 IOD_AllocEnd;
131 typedef struct _IO_RANGE {
132 unsigned __int64 IOR_Align;
134 unsigned __int64 IOR_Min;
135 unsigned __int64 IOR_Max;
136 DWORD IOR_RangeFlags;
137 unsigned __int64 IOR_Alias;
138 } IO_RANGE, *PIO_RANGE;
140 typedef struct _IO_RESOURCE {
143 } IO_RESOURCE, *PIO_RESOURCE;
145 typedef struct _IRQ_DES {
149 DWORD IRQD_Alloc_Num;
151 } IRQ_DES, *PIRQ_DES;
153 typedef struct _IRQ_RANGE {
157 } IRQ_RANGE, *PIRQ_RANGE;
159 typedef struct _IRQ_RESOURCE {
161 IRQ_RANGE IO_Data[1];
162 } IRQ_RESOURCE, *PIRQ_RESOURCE;
164 typedef struct _MEM_DES {
167 unsigned __int64 MD_Alloc_Base;
168 unsigned __int64 MD_Alloc_End;
171 } MEM_DES, *PMEM_DES;
173 typedef struct _MEM_RANGE {
180 } MEM_RANGE, *PMEM_RANGE;
182 typedef struct _MEM_RESOURCE {
184 MEM_RANGE MEM_Data[1];
185 } MEM_RESOURCE, *PMEM_RESOURCE;
187 typedef struct _MFCARD_DES {
191 BYTE PMF_ConfigOptions;
192 BYTE PMF_IoResourceIndex;
193 BYTE PMF_Reserved[2];
194 DWORD PMF_ConfigRegisterBase;
195 } MFCARD_DES, *PMFCARD_DES;
197 typedef struct _MFCARD_RESOURCE {
198 MFCARD_DES MfCard_Header;
199 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
201 typedef struct _PCCARD_DES {
205 BYTE PCD_ConfigIndex;
206 BYTE PCD_Reserved[3];
207 DWORD PCD_MemoryCardBase1;
208 DWORD PCD_MemoryCardBase2;
209 } PCCARD_DES, *PPCCARD_DES;
211 typedef struct _PCCARD_RESOURCE {
212 PCCARD_DES PcCard_Header;
213 } PCCARD_RESOURCE, *PPCARD_RESOURCE;
217 typedef struct _PNP_CONFLICT_ENTRY {
218 DWORD DeviceInstance;
221 __int64 ResourceStart;
224 } PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
226 typedef struct _PNP_CONFLICT_LIST {
229 DWORD ConflictsCounted;
230 DWORD ConflictsListed;
231 DWORD RequiredBufferSize;
232 PNP_CONFLICT_ENTRY ConflictEntry[1];
233 } PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
235 typedef struct _PNP_CONFLICT_STRINGS {
236 DWORD NullDeviceInstance;
237 WCHAR DeviceInstanceStrings[1];
238 } PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
240 typedef struct _DEVPROPKEY {
245 typedef struct _HWPROFILEINFO {
246 DWORD HWPI_ulHWProfile;
247 WCHAR HWPI_szFriendlyName[80];
252 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
254 pointer_default(unique)
262 DWORD PNP_Disconnect(
263 [in] handle_t hBinding); /* FIXME */
267 [in] handle_t hBinding); /* FIXME */
270 DWORD PNP_GetVersion(
271 [in] handle_t hBinding,
272 [out] WORD *pVersion);
275 DWORD PNP_GetGlobalState(
276 [in] handle_t hBinding,
277 [out] DWORD *pulState,
281 DWORD PNP_InitDetection(
282 [in] handle_t hBinding);
285 DWORD PNP_ReportLogOn(
286 [in] handle_t hBinding,
288 [in] DWORD ProcessId);
291 DWORD PNP_ValidateDeviceInstance(
292 [in] handle_t hBinding,
293 [in, string, ref] LPWSTR pDeviceID,
297 DWORD PNP_GetRootDeviceInstance(
298 [in] handle_t hBinding,
299 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
300 [in] PNP_RPC_STRING_LEN ulLength);
303 cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
304 cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
305 cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
306 DWORD PNP_GetRelatedDeviceInstance(
307 [in] handle_t hBinding,
308 [in] DWORD ulRelationship,
309 [in, string, ref] LPWSTR pDeviceID,
310 [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
311 [in, out] PNP_RPC_STRING_LEN *pulLength,
315 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
316 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
317 DWORD PNP_EnumerateSubKeys(
318 [in] handle_t hBinding,
321 [out, string, size_is(ulLength)] LPWSTR Buffer,
322 [in] PNP_RPC_STRING_LEN ulLength,
323 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
327 DWORD PNP_GetDeviceList(
328 [in] handle_t hBinding,
329 [in, string, unique] LPWSTR pszFilter,
330 [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
331 [in, out] PNP_RPC_STRING_LEN *pulLength,
335 DWORD PNP_GetDeviceListSize(
336 [in] handle_t hBinding,
337 [in, string, unique] LPWSTR pszFilter,
338 [out] PNP_RPC_BUFFER_SIZE *pulLen,
343 [in] handle_t hBinding,
344 [in, string, ref] LPWSTR pszDeviceID,
345 [out] DWORD *pulDepth,
349 DWORD PNP_GetDeviceRegProp(
350 [in] handle_t hBinding,
351 [in, string, ref] LPWSTR pDeviceID,
352 [in] DWORD ulProperty,
353 [in, out] DWORD *pulRegDataType,
354 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
355 [in, out] PNP_PROP_SIZE *pulTransferLen,
356 [in, out] PNP_PROP_SIZE *pulLength,
360 DWORD PNP_SetDeviceRegProp(
361 [in] handle_t hBinding,
362 [in, string, ref] LPWSTR pDeviceId,
363 [in] DWORD ulProperty,
364 [in] DWORD ulDataType,
365 [in, size_is(ulLength)] BYTE *Buffer,
366 [in] PNP_PROP_SIZE ulLength,
370 DWORD PNP_GetClassInstance(
371 [in] handle_t hBinding,
372 [in, string, ref] LPWSTR pDeviceId,
373 [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
374 [in] PNP_RPC_STRING_LEN ulLength);
378 [in] handle_t hBinding,
379 [in, string, ref] LPWSTR pszSubKey,
380 [in] DWORD samDesired,
384 DWORD PNP_DeleteRegistryKey(
385 [in] handle_t hBinding,
386 [in, string, ref] LPWSTR pszDeviceID,
387 [in, string, ref] LPWSTR pszParentKey,
388 [in, string, ref] LPWSTR pszChildKey,
392 DWORD PNP_GetClassCount(
393 [in] handle_t hBinding,
394 [out] DWORD *pulClassCount,
398 DWORD PNP_GetClassName(
399 [in] handle_t hBinding,
400 [in, string, ref] LPWSTR pszClassGuid,
401 [out, string, size_is(*pulLength)] LPWSTR Buffer,
402 [in, out] PNP_RPC_STRING_LEN *pulLength,
406 DWORD PNP_DeleteClassKey(
407 [in] handle_t hBinding,
408 [in, string, ref] LPWSTR pszClassGuid,
412 DWORD PNP_GetInterfaceDeviceAlias(
413 [in] handle_t hBinding,
414 [in, string, ref] LPWSTR pszInterfaceDevice,
415 [in] GUID *AliasInterfaceGuid,
416 [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
417 [in, out] PNP_RPC_STRING_LEN *pulLength,
418 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
422 DWORD PNP_GetInterfaceDeviceList(
423 [in] handle_t hBinding,
424 [in] GUID *InterfaceGuid,
425 [in, string, unique] LPWSTR pszDeviceID,
426 [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
427 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
431 DWORD PNP_GetInterfaceDeviceListSize(
432 [in] handle_t hBinding,
433 [out] PNP_RPC_BUFFER_SIZE *pulLen,
434 [in] GUID *InterfaceGuid,
435 [in, string, unique] LPWSTR pszDeviceID,
439 DWORD PNP_RegisterDeviceClassAssociation(
440 [in] handle_t hBinding,
441 [in, string, unique] LPWSTR pszDeviceID,
442 [in] GUID *InterfaceGuid,
443 [in, string, unique] LPWSTR pszReference,
444 [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
445 [in, out] PNP_RPC_STRING_LEN *pulLength,
446 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
450 DWORD PNP_UnregisterDeviceClassAssociation(
451 [in] handle_t hBinding,
452 [in, string, unique] LPWSTR pszInterfaceDevice,
456 DWORD PNP_GetClassRegProp(
457 [in] handle_t hBinding,
458 [in, string, ref] LPWSTR pszClassGuid,
459 [in] DWORD ulProperty,
460 [in, out] DWORD *pulRegDataType,
461 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
462 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
463 [in, out] PNP_RPC_STRING_LEN *pulLength,
467 DWORD PNP_SetClassRegProp(
468 [in] handle_t hBinding,
469 [in, string, ref] LPWSTR *pszClassGuid,
470 [in] DWORD ulProperty,
471 [in] DWORD ulDataType,
472 [in, size_is(ulLength)] BYTE *Buffer,
473 [in] PNP_PROP_SIZE ulLength,
477 DWORD PNP_CreateDevInst(
478 [in] handle_t hBinding,
479 [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
480 [in, string, ref] LPWSTR pszParentDeviceID,
481 [in] PNP_RPC_STRING_LEN ulLength,
485 cpp_quote("#define PNP_DEVINST_MOVE 0x2")
486 cpp_quote("#define PNP_DEVINST_SETUP 0x3")
487 cpp_quote("#define PNP_DEVINST_ENABLE 0x4")
488 cpp_quote("#define PNP_DEVINST_DISABLE 0x5")
489 cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
490 DWORD PNP_DeviceInstanceAction(
491 [in] handle_t hBinding,
494 [in, string, unique] LPWSTR pszDeviceInstance1,
495 [in, string, unique] LPWSTR pszDeviceInstance2);
498 DWORD PNP_GetDeviceStatus(
499 [in] handle_t hBinding,
500 [in, string, unique] LPWSTR pDeviceID,
501 [out] DWORD *pulStatus,
502 [out] DWORD *pulProblem,
506 DWORD PNP_SetDeviceProblem(
507 [in] handle_t hBinding,
508 [in, string, unique] LPWSTR pDeviceID,
509 [in] DWORD ulProblem,
513 DWORD PNP_DisableDevInst(
514 [in] handle_t hBinding,
515 [in, string, unique] LPWSTR pDeviceID,
516 [in, out, unique] PPNP_VETO_TYPE pVetoType,
517 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
518 [in] DWORD ulNameLength,
522 DWORD PNP_UninstallDevInst(
523 [in] handle_t hBinding,
524 [in, string, unique] LPWSTR pDeviceID,
529 [in] handle_t hBinding,
530 [in, string, unique] LPWSTR pszDeviceID,
531 [in, string, ref] LPWSTR pszID,
535 DWORD PNP_RegisterDriver(
536 [in] handle_t hBinding,
537 [in, string, ref] LPWSTR pszDeviceID,
541 DWORD PNP_QueryRemove(
542 [in] handle_t hBinding,
543 [in, string, ref] LPWSTR pszDeviceID,
544 [in, out, unique] PPNP_VETO_TYPE pVetoType,
545 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
546 [in] DWORD ulNameLength,
550 DWORD PNP_RequestDeviceEject(
551 [in] handle_t hBinding,
552 [in, string, ref] LPWSTR pszDeviceID,
553 [in, out, unique] PPNP_VETO_TYPE pVetoType,
554 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
555 [in] DWORD ulNameLength,
559 DWORD PNP_IsDockStationPresent(
560 [in] handle_t hBinding,
561 [in, out, unique] BOOL *Present);
564 DWORD PNP_RequestEjectPC(
565 [in] handle_t hBinding);
568 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
569 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
570 DWORD PNP_HwProfFlags(
571 [in] handle_t hBinding,
573 [in, string, ref] LPWSTR pDeviceID,
575 [in, out] DWORD *pulValue,
576 [in, out, unique] PPNP_VETO_TYPE pVetoType,
577 [in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
578 [in] DWORD ulNameLength,
582 DWORD PNP_GetHwProfInfo(
583 [in] handle_t hBinding,
585 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
586 [in, range(0, 168)] DWORD ulProfileInfoSize,
587 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
591 DWORD PNP_AddEmptyLogConf(
592 [in] handle_t hBinding,
593 [in, string, ref] LPWSTR pDeviceID,
594 [in] DWORD ulPriority,
595 [out] DWORD *pulLogConfTag,
599 DWORD PNP_FreeLogConf(
600 [in] handle_t hBinding,
601 [in, string, ref] LPWSTR pDeviceID,
602 [in] DWORD ulLogConfType,
603 [in] DWORD ulLogConfTag,
607 DWORD PNP_GetFirstLogConf(
608 [in] handle_t hBinding,
609 [in, string, ref] LPWSTR pDeviceID,
610 [in] DWORD ulLogConfType,
611 [out] DWORD *pulLogConfTag,
615 DWORD PNP_GetNextLogConf(
616 [in] handle_t hBinding,
617 [in, string, ref] LPWSTR pDeviceID,
618 [in] DWORD ulLogConfType,
619 [in] DWORD ulCurrentTag,
620 [out] DWORD *pulNextTag,
624 DWORD PNP_GetLogConfPriority(
625 [in] handle_t hBinding,
626 [in, string, ref] LPWSTR pDeviceID,
629 [out] DWORD *pPriority,
634 [in] handle_t hBinding,
635 [in, string, ref] LPWSTR pDeviceID,
636 [in] DWORD ulLogConfTag,
637 [in] DWORD ulLogConfType,
638 [in] RESOURCEID ResourceID,
639 [out] DWORD *pulResourceTag,
640 [in, size_is(ResourceLen)] BYTE *ResourceData,
641 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
645 DWORD PNP_FreeResDes(
646 [in] handle_t hBinding,
647 [in, string, ref] LPWSTR pDeviceID,
648 [in] DWORD ulLogConfTag,
649 [in] DWORD ulLogConfType,
650 [in] RESOURCEID ResourceID,
651 [in] DWORD ulResourceTag,
652 [out] DWORD *pulPreviousResType,
653 [out] DWORD *pulPreviousResTag,
657 DWORD PNP_GetNextResDes(
658 [in] handle_t hBinding,
659 [in, string, ref] LPWSTR pDeviceID,
660 [in] DWORD ulLogConfTag,
661 [in] DWORD ulLogConfType,
662 [in] RESOURCEID ResourceID,
663 [in] DWORD ulResourceTag,
664 [out] DWORD *pulNextResType,
665 [out] DWORD *pulNextResTag,
669 DWORD PNP_GetResDesData(
670 [in] handle_t hBinding,
671 [in, string, ref] LPWSTR pDeviceID,
672 [in] DWORD ulLogConfTag,
673 [in] DWORD ulLogConfType,
674 [in] RESOURCEID ResourceID,
675 [in] DWORD ulResourceTag,
676 [out, size_is(BufferLen)] BYTE *Buffer,
677 [in] PNP_RPC_BUFFER_SIZE BufferLen,
681 DWORD PNP_GetResDesDataSize(
682 [in] handle_t hBinding,
683 [in, string, ref] LPWSTR pDeviceID,
684 [in] DWORD ulLogConfTag,
685 [in] DWORD ulLogConfType,
686 [in] RESOURCEID ResourceID,
687 [in] DWORD ulResourceTag,
688 [out] DWORD *pulSize,
692 DWORD PNP_ModifyResDes(
693 [in] handle_t hBinding,
694 [in, string, ref] LPWSTR pDeviceID,
695 [in] DWORD ulLogConfTag,
696 [in] DWORD ulLogConfType,
697 [in] RESOURCEID CurrentResourceID,
698 [in] RESOURCEID NewResourceID,
699 [in] DWORD ulResourceTag,
700 [in, size_is(ResourceLen)] BYTE *ResourceData,
701 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
705 DWORD PNP_DetectResourceConflict(
706 [in] handle_t hBinding,
707 [in, string, ref] LPWSTR pDeviceID,
708 [in] RESOURCEID ResourceID,
709 [in, size_is(ResourceLen)] BYTE *ResourceData,
710 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
711 [out] BOOL *pbConflictDetected,
715 DWORD PNP_QueryResConfList(
716 [in] handle_t hBinding,
717 [in, string, ref] LPWSTR pDeviceID,
718 [in] RESOURCEID ResourceID,
719 [in, size_is(ResourceLen)] BYTE *ResourceData,
720 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
721 [out, size_is(BufferLen)] BYTE *Buffer,
722 [in] PNP_RPC_BUFFER_SIZE BufferLen,
727 [in] handle_t hBinding,
728 [in] DWORD ulHardwareProfile,
732 DWORD PNP_QueryArbitratorFreeData(
733 [in] handle_t hBinding);
736 DWORD PNP_QueryArbitratorFreeSize(
737 [in] handle_t hBinding);
740 DWORD PNP_RunDetection(
741 [in] handle_t hBinding,
745 DWORD PNP_RegisterNotification(
746 [in] handle_t hBinding);
749 DWORD PNP_UnregisterNotification(
750 [in] handle_t hBinding);
752 cpp_quote("#if _WIN32_WINNT >= 0x0501")
755 DWORD PNP_GetCustomDevProp(
756 [in] handle_t hBinding,
757 [in, string, ref] LPWSTR pDeviceID,
758 [in, string, ref] LPWSTR CustomPropName,
759 [out] DWORD *pulRegDataType,
760 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
761 [out] PNP_RPC_STRING_LEN *pulTransferLen,
762 [in, out] PNP_RPC_STRING_LEN *pulLength,
766 DWORD PNP_GetVersionInternal(
767 [in] handle_t hBinding,
768 [in, out] WORD *pwVersion);
771 DWORD PNP_GetBlockedDriverInfo(
772 [in] handle_t hBinding,
773 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
774 [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
775 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
779 DWORD PNP_GetServerSideDeviceInstallFlags(
780 [in] handle_t hBinding,
781 [out] DWORD *pulSSDIFlags,
784 cpp_quote("#if _WIN32_WINNT >= 0x0600")
787 DWORD PNP_GetObjectPropKeys(
788 [in] handle_t hBinding,
789 [in, string, ref] LPWSTR ObjectName,
790 [in] DWORD ObjectType,
791 [in, string, unique] LPWSTR PropertyCultureName,
792 [in, out] PNP_PROP_COUNT *PropertyCount,
793 [out] PNP_PROP_COUNT *TransferLen,
794 [out, size_is(*PropertyCount), length_is(*TransferLen)] DEVPROPKEY *PropertyKeys,
798 DWORD PNP_GetObjectProp(
799 [in] handle_t hBinding,
800 [in, string, ref] LPWSTR ObjectName,
801 [in] DWORD ObjectType,
802 [in, string, unique] LPWSTR PropertyCultureName,
803 [in] const DEVPROPKEY *PropertyKey,
804 [out] DEVPROPTYPE *PropertyType,
805 [in, out] PNP_PROP_SIZE *PropertySize,
806 [out] PNP_PROP_SIZE *TransferLen,
807 [out, size_is(*PropertySize), length_is(*TransferLen)] BYTE *PropertyBuffer,
811 DWORD PNP_SetObjectProp(
812 [in] handle_t hBinding,
813 [in, string, ref] LPWSTR ObjectName,
814 [in] DWORD ObjectType,
815 [in, string, unique] LPWSTR PropertyCultureName,
816 [in] const DEVPROPKEY *PropertyKey,
817 [in] DEVPROPTYPE PropertyType,
818 [in] PNP_PROP_SIZE PropertySize,
819 [in, unique, size_is(PropertySize)] BYTE *PropertyBuffer,
823 DWORD PNP_InstallDevInst(
824 [in] handle_t hBinding); /* FIXME */
827 DWORD PNP_ApplyPowerSettings(
828 [in] handle_t hBinding); /* FIXME */
831 DWORD PNP_DriverStoreAddDriverPackage(
832 [in] handle_t hBinding); /* FIXME */
835 DWORD PNP_DriverStoreDeleteDriverPackage(
836 [in] handle_t hBinding); /* FIXME */
839 DWORD PNP_RegisterServiceNotification(
840 [in] handle_t hBinding); /* FIXME */
843 DWORD PNP_SetActiveService(
844 [in] handle_t hBinding); /* FIXME */
847 DWORD PNP_DeleteServiceDevices(
848 [in] handle_t hBinding); /* FIXME */
850 cpp_quote("#endif /* WIN32_WINNT >= 0x0600 */")
851 cpp_quote("#endif /* WIN32_WINNT >= 0x0501 */")