2 * Plug and Play Manager RPC interface definition
5 #include "include/reactos/idl/wtypes.idl"
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 typedef unsigned long RESOURCEID;
18 typedef unsigned long DEVPROPTYPE;
19 typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE, *PPNP_PROP_SIZE;
20 typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT, *PPNP_PROP_COUNT;
21 typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN, *PPNP_RPC_STRING_LEN;
22 typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE, *PPNP_RPC_BUFFER_SIZE;
24 cpp_quote("#ifndef _CFG_INCLUDED_")
26 typedef enum _PNP_VETO_TYPE {
27 PNP_VetoTypeUnknown = 0,
28 PNP_VetoLegacyDevice = 1,
29 PNP_VetoPendingClose = 2,
30 PNP_VetoWindowsApp = 3,
31 PNP_VetoWindowsService = 4,
32 PNP_VetoOutstandingOpen = 5,
35 PNP_VetoIllegalDeviceRequest = 8,
36 PNP_VetoInsufficientPower = 9,
37 PNP_VetoNonDisableable = 10,
38 PNP_VetoLegacyDriver = 11,
39 PNP_VetoInsufficientRights = 12,
46 typedef struct _BUSNUMBER_DES {
50 DWORD BUSD_Alloc_Base;
52 } BUSNUMBER_DES, *PBUSNUMBER_DES;
54 typedef struct _BUSNUMBER_RANGE {
57 DWORD BUSR_nBusNumbers;
59 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
61 typedef struct _BUSNUMBER_RESOURCE {
62 BUSNUMBER_DES BusNumber_Header;
63 BUSNUMBER_RANGE BusNumber_Data[1];
64 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
66 typedef struct _CS_DES {
67 DWORD CSD_SignatureLength;
68 DWORD CSD_LegacyDataOffset;
69 DWORD CSD_LegacyDataSize;
72 BYTE CSD_Signature[1];
75 typedef struct _CS_RESOURCE {
77 } CS_RESOURCE, *PCS_RESOURCE;
79 typedef struct _DEVPRIVATE_DES {
86 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
88 typedef struct _DEVPRIVATE_RANGE {
92 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
94 typedef struct _DEVPRIVATE_RESOURCE {
95 DEVPRIVATE_DES PRV_Header;
96 DEVPRIVATE_RANGE PRV_Data[1];
97 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
99 typedef struct _DMA_DES {
103 unsigned long DD_Alloc_Chan;
104 } DMA_DES, *PDMA_DES;
106 typedef struct _DMA_RANGE {
110 } DMA_RANGE, *PDMA_RANGE;
112 typedef struct _DMA_RESOURCE {
114 DMA_RANGE DMA_Data[1];
115 } DMA_RESOURCE, *PDMA_RESOURCE;
117 typedef struct _IO_DES {
120 unsigned __int64 IOD_AllocBase;
121 unsigned __int64 IOD_AllocEnd;
125 typedef struct _IO_RANGE {
126 unsigned __int64 IOR_Align;
128 unsigned __int64 IOR_Min;
129 unsigned __int64 IOR_Max;
130 DWORD IOR_RangeFlags;
131 unsigned __int64 IOR_Alias;
132 } IO_RANGE, *PIO_RANGE;
134 typedef struct _IO_RESOURCE {
137 } IO_RESOURCE, *PIO_RESOURCE;
139 typedef struct _IRQ_DES {
143 DWORD IRQD_Alloc_Num;
145 } IRQ_DES, *PIRQ_DES;
147 typedef struct _IRQ_RANGE {
151 } IRQ_RANGE, *PIRQ_RANGE;
153 typedef struct _IRQ_RESOURCE {
155 IRQ_RANGE IO_Data[1];
156 } IRQ_RESOURCE, *PIRQ_RESOURCE;
158 typedef struct _MEM_DES {
161 unsigned __int64 MD_Alloc_Base;
162 unsigned __int64 MD_Alloc_End;
165 } MEM_DES, *PMEM_DES;
167 typedef struct _MEM_RANGE {
174 } MEM_RANGE, *PMEM_RANGE;
176 typedef struct _MEM_RESOURCE {
178 MEM_RANGE MEM_Data[1];
179 } MEM_RESOURCE, *PMEM_RESOURCE;
181 typedef struct _MFCARD_DES {
185 BYTE PMF_ConfigOptions;
186 BYTE PMF_IoResourceIndex;
187 BYTE PMF_Reserved[2];
188 DWORD PMF_ConfigRegisterBase;
189 } MFCARD_DES, *PMFCARD_DES;
191 typedef struct _MFCARD_RESOURCE {
192 MFCARD_DES MfCard_Header;
193 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
195 typedef struct _PCCARD_DES {
199 BYTE PCD_ConfigIndex;
200 BYTE PCD_Reserved[3];
201 DWORD PCD_MemoryCardBase1;
202 DWORD PCD_MemoryCardBase2;
203 } PCCARD_DES, *PPCCARD_DES;
205 typedef struct _PCCARD_RESOURCE {
206 PCCARD_DES PcCard_Header;
207 } PCCARD_RESOURCE, *PPCARD_RESOURCE;
211 typedef struct _PNP_CONFLICT_ENTRY {
212 DWORD DeviceInstance;
215 __int64 ResourceStart;
218 } PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
220 typedef struct _PNP_CONFLICT_LIST {
223 DWORD ConflictsCounted;
224 DWORD ConflictsListed;
225 DWORD RequiredBufferSize;
226 PNP_CONFLICT_ENTRY ConflictEntry[1];
227 } PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
229 typedef struct _PNP_CONFLICT_STRINGS {
230 DWORD NullDeviceInstance;
231 WCHAR DeviceInstanceStrings[1];
232 } PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
234 typedef struct _DEVPROPKEY {
239 typedef struct _HWPROFILEINFO {
240 DWORD HWPI_ulHWProfile;
241 WCHAR HWPI_szFriendlyName[80];
246 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
248 pointer_default(unique)
257 [in] handle_t hBinding); /* FIXME */
261 [in] handle_t hBinding); /* FIXME */
264 DWORD PNP_GetVersion(
265 [in] handle_t hBinding,
266 [out] WORD *pVersion);
269 DWORD PNP_GetGlobalState(
270 [in] handle_t hBinding,
271 [out] DWORD *pulState,
275 DWORD PNP_InitDetection(
276 [in] handle_t hBinding);
279 DWORD PNP_ReportLogOn(
280 [in] handle_t hBinding,
282 [in] DWORD ProcessId);
285 DWORD PNP_ValidateDeviceInstance(
286 [in] handle_t hBinding,
287 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
291 DWORD PNP_GetRootDeviceInstance(
292 [in] handle_t hBinding,
293 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
294 [in] PNP_RPC_STRING_LEN ulLength);
297 cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1");
298 cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2");
299 cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3");
300 DWORD PNP_GetRelatedDeviceInstance(
301 [in] handle_t hBinding,
302 [in] DWORD ulRelationship,
303 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
304 [out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
305 [in, out] PNP_RPC_STRING_LEN *pulLength,
309 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1");
310 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2");
311 DWORD PNP_EnumerateSubKeys(
312 [in] handle_t hBinding,
315 [out, string, size_is(ulLength)] LPWSTR Buffer,
316 [in] PNP_RPC_STRING_LEN ulLength,
317 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
321 DWORD PNP_GetDeviceList(
322 [in] handle_t hBinding,
323 [in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszFilter,
324 [out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
325 [in, out] PNP_RPC_STRING_LEN *pulLength,
329 DWORD PNP_GetDeviceListSize(
330 [in] handle_t hBinding,
331 [in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszFilter,
332 [out] PNP_RPC_BUFFER_SIZE *pulLen,
337 [in] handle_t hBinding,
338 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
339 [out] DWORD *pulDepth,
343 DWORD PNP_GetDeviceRegProp(
344 [in] handle_t hBinding,
345 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
346 [in] DWORD ulProperty,
347 [in, out] DWORD *pulRegDataType,
348 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
349 [in, out] PNP_PROP_SIZE *pulTransferLen,
350 [in, out] PNP_PROP_SIZE *pulLength,
354 DWORD PNP_SetDeviceRegProp(
355 [in] handle_t hBinding,
356 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceId,
357 [in] DWORD ulProperty,
358 [in] DWORD ulDataType,
359 [in, size_is(ulLength)] BYTE *Buffer,
360 [in] PNP_PROP_SIZE ulLength,
364 DWORD PNP_GetClassInstance(
365 [in] handle_t hBinding,
366 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceId,
367 [out, string, size_is(ulLength)] LPWSTR pszClassInstance,
368 [in] PNP_RPC_STRING_LEN ulLength);
372 [in] handle_t hBinding,
373 [in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszSubKey,
374 [in] DWORD samDesired,
378 DWORD PNP_DeleteRegistryKey(
379 [in] handle_t hBinding,
380 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
381 [in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszParentKey,
382 [in, string, ref, range(0, PNP_MAX_CM_PATH)] LPWSTR pszChildKey,
386 DWORD PNP_GetClassCount(
387 [in] handle_t hBinding,
388 [out] DWORD *pulClassCount,
392 DWORD PNP_GetClassName(
393 [in] handle_t hBinding,
394 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
395 [out, string, size_is(*pulLength)] LPWSTR Buffer,
396 [in, out] PNP_RPC_STRING_LEN *pulLength,
400 DWORD PNP_DeleteClassKey(
401 [in] handle_t hBinding,
402 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
406 DWORD PNP_GetInterfaceDeviceAlias(
407 [in] handle_t hBinding,
408 [in, string, ref, range(0, PNP_MAX_DEVINTERFACE_LEN)] LPWSTR pszInterfaceDevice,
409 [in] GUID *AliasInterfaceGuid,
410 [out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
411 [in, out] PNP_RPC_STRING_LEN *pulLength,
412 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
416 DWORD PNP_GetInterfaceDeviceList(
417 [in] handle_t hBinding,
418 [in] GUID *InterfaceGuid,
419 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
420 [out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
421 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
425 DWORD PNP_GetInterfaceDeviceListSize(
426 [in] handle_t hBinding,
427 [out] PNP_RPC_BUFFER_SIZE *pulLen,
428 [in] GUID *InterfaceGuid,
429 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
433 DWORD PNP_RegisterDeviceClassAssociation(
434 [in] handle_t hBinding,
435 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
436 [in] GUID *InterfaceGuid,
437 [in, string, unique, range(0, PNP_MAX_STRING_LEN)] LPWSTR pszReference,
438 [out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
439 [in, out] PNP_RPC_STRING_LEN *pulLength,
440 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
444 DWORD PNP_UnregisterDeviceClassAssociation(
445 [in] handle_t hBinding,
446 [in, string, unique, range(0, PNP_MAX_DEVINTERFACE_LEN)] LPWSTR pszInterfaceDevice,
450 DWORD PNP_GetClassRegProp(
451 [in] handle_t hBinding,
452 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR pszClassGuid,
453 [in] DWORD ulProperty,
454 [in, out] DWORD *pulRegDataType,
455 [out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
456 [in, out] PNP_RPC_STRING_LEN *pulTransferLen,
457 [in, out] PNP_RPC_STRING_LEN *pulLength,
461 DWORD PNP_SetClassRegProp(
462 [in] handle_t hBinding,
463 [in, string, ref, range(0, PNP_MAX_GUID_STRING_LEN)] LPWSTR *pszClassGuid,
464 [in] DWORD ulProperty,
465 [in] DWORD ulDataType,
466 [in, size_is(ulLength)] BYTE *Buffer,
467 [in] PNP_PROP_SIZE ulLength,
471 DWORD PNP_CreateDevInst(
472 [in] handle_t hBinding,
473 [in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
474 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszParentDeviceID,
475 [in] PNP_RPC_STRING_LEN ulLength,
479 DWORD PNP_DeviceInstanceAction(
480 [in] handle_t hBinding,
481 [in] DWORD ulMajorAction,
482 [in] DWORD ulMinorAction,
483 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceInstance1,
484 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceInstance2);
487 DWORD PNP_GetDeviceStatus(
488 [in] handle_t hBinding,
489 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
490 [out] DWORD *pulStatus,
491 [out] DWORD *pulProblem,
495 DWORD PNP_SetDeviceProblem(
496 [in] handle_t hBinding,
497 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
498 [in] DWORD ulProblem,
502 DWORD PNP_DisableDevInst(
503 [in] handle_t hBinding,
504 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
505 [in, out, unique] PPNP_VETO_TYPE pVetoType,
506 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
507 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
508 [in] DWORD ulNameLength,
512 DWORD PNP_UninstallDevInst(
513 [in] handle_t hBinding,
514 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
519 [in] handle_t hBinding,
520 [in, string, unique, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
521 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszID,
525 DWORD PNP_RegisterDriver(
526 [in] handle_t hBinding,
527 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
531 DWORD PNP_QueryRemove(
532 [in] handle_t hBinding,
533 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
534 [in, out, unique] PPNP_VETO_TYPE pVetoType,
535 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
536 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
537 [in] DWORD ulNameLength,
541 DWORD PNP_RequestDeviceEject(
542 [in] handle_t hBinding,
543 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pszDeviceID,
544 [in, out, unique] PPNP_VETO_TYPE pVetoType,
545 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
546 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
547 [in] DWORD ulNameLength,
551 DWORD PNP_IsDockStationPresent(
552 [in] handle_t hBinding,
553 [in, out, unique] BOOL *Present);
556 DWORD PNP_RequestEjectPC(
557 [in] handle_t hBinding);
560 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1");
561 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2");
562 DWORD PNP_HwProfFlags(
563 [in] handle_t hBinding,
565 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
567 [in, out] DWORD *pulValue,
568 [in, out, unique] PPNP_VETO_TYPE pVetoType,
569 [in, out, string, unique, size_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName,
570 /* FIXME: should be [in, out, string, unique, max_is(ulNameLength), range(0, PNP_MAX_STRING_LEN)] LPWSTR pszVetoName, */
571 [in] DWORD ulNameLength,
575 DWORD PNP_GetHwProfInfo(
576 [in] handle_t hBinding,
578 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
579 [in, range(0, 168)] DWORD ulProfileInfoSize,
580 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
584 DWORD PNP_AddEmptyLogConf(
585 [in] handle_t hBinding,
586 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
587 [in] DWORD ulPriority,
588 [out] DWORD *pulLogConfTag,
592 DWORD PNP_FreeLogConf(
593 [in] handle_t hBinding,
594 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
595 [in] DWORD ulLogConfType,
596 [in] DWORD ulLogConfTag,
600 DWORD PNP_GetFirstLogConf(
601 [in] handle_t hBinding,
602 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
603 [in] DWORD ulLogConfType,
604 [out] DWORD *pulLogConfTag,
608 DWORD PNP_GetNextLogConf(
609 [in] handle_t hBinding,
610 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
611 [in] DWORD ulLogConfType,
612 [in] DWORD ulCurrentTag,
613 [out] DWORD *pulNextTag,
617 DWORD PNP_GetLogConfPriority(
618 [in] handle_t hBinding,
619 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
622 [out] DWORD *pPriority,
627 [in] handle_t hBinding,
628 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
629 [in] DWORD ulLogConfTag,
630 [in] DWORD ulLogConfType,
631 [in] RESOURCEID ResourceID,
632 [out] DWORD *pulResourceTag,
633 [in, size_is(ResourceLen)] BYTE *ResourceData,
634 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
638 DWORD PNP_FreeResDes(
639 [in] handle_t hBinding,
640 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
641 [in] DWORD ulLogConfTag,
642 [in] DWORD ulLogConfType,
643 [in] RESOURCEID ResourceID,
644 [in] DWORD ulResourceTag,
645 [out] DWORD *pulPreviousResType,
646 [out] DWORD *pulPreviousResTag,
650 DWORD PNP_GetNextResDes(
651 [in] handle_t hBinding,
652 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
653 [in] DWORD ulLogConfTag,
654 [in] DWORD ulLogConfType,
655 [in] RESOURCEID ResourceID,
656 [in] DWORD ulResourceTag,
657 [out] DWORD *pulNextResType,
658 [out] DWORD *pulNextResTag,
662 DWORD PNP_GetResDesData(
663 [in] handle_t hBinding,
664 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
665 [in] DWORD ulLogConfTag,
666 [in] DWORD ulLogConfType,
667 [in] RESOURCEID ResourceID,
668 [in] DWORD ulResourceTag,
669 [out, size_is(BufferLen)] BYTE *Buffer,
670 [in] PNP_RPC_BUFFER_SIZE BufferLen,
674 DWORD PNP_GetResDesDataSize(
675 [in] handle_t hBinding,
676 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
677 [in] DWORD ulLogConfTag,
678 [in] DWORD ulLogConfType,
679 [in] RESOURCEID ResourceID,
680 [in] DWORD ulResourceTag,
681 [out] DWORD *pulSize,
685 DWORD PNP_ModifyResDes(
686 [in] handle_t hBinding,
687 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
688 [in] DWORD ulLogConfTag,
689 [in] DWORD ulLogConfType,
690 [in] RESOURCEID CurrentResourceID,
691 [in] RESOURCEID NewResourceID,
692 [in] DWORD ulResourceTag,
693 [in, size_is(ResourceLen)] BYTE *ResourceData,
694 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
698 DWORD PNP_DetectResourceConflict(
699 [in] handle_t hBinding,
700 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
701 [in] RESOURCEID ResourceID,
702 [in, size_is(ResourceLen)] BYTE *ResourceData,
703 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
704 [out] BOOL *pbConflictDetected,
708 DWORD PNP_QueryResConfList(
709 [in] handle_t hBinding,
710 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
711 [in] RESOURCEID ResourceID,
712 [in, size_is(ResourceLen)] BYTE *ResourceData,
713 [in] PNP_RPC_BUFFER_SIZE ResourceLen,
714 [out, size_is(BufferLen)] BYTE *Buffer,
715 [in] PNP_RPC_BUFFER_SIZE BufferLen,
719 DWORD PNP_Function55(
720 [in] handle_t hBinding);
723 DWORD PNP_Function56(
724 [in] handle_t hBinding);
727 DWORD PNP_Function57(
728 [in] handle_t hBinding);
731 DWORD PNP_RunDetection(
732 [in] handle_t hBinding,
736 DWORD PNP_Function59(
737 [in] handle_t hBinding);
740 DWORD PNP_Function60(
741 [in] handle_t hBinding);
744 DWORD PNP_GetCustomDevProp(
745 [in] handle_t hBinding,
746 [in, string, ref, range(0, PNP_MAX_DEVICE_ID_LEN)] LPWSTR pDeviceID,
747 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR CustomPropName,
748 [out] DWORD *pulRegDataType,
749 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
750 [out] PNP_RPC_STRING_LEN *pulTransferLen,
751 [in, out] PNP_RPC_STRING_LEN *pulLength,
755 DWORD PNP_GetVersionInternal(
756 [in] handle_t hBinding,
757 [in, out] WORD *pwVersion);
760 DWORD PNP_GetBlockedDriverInfo(
761 [in] handle_t hBinding,
762 [out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
763 [out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
764 [in, out] PNP_RPC_BUFFER_SIZE *pulLength,
768 DWORD PNP_GetServerSideDeviceInstallFlags(
769 [in] handle_t hBinding,
770 [out] DWORD *pulSSDIFlags,
774 DWORD PNP_GetObjectPropKeys(
775 [in] handle_t hBinding,
776 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
777 [in] DWORD ObjectType,
778 [in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
779 [in, out] PNP_PROP_COUNT *PropertyCount,
780 [out] PNP_PROP_COUNT *TransferLen,
781 [out, size_is(*PropertyCount), length_is(*TransferLen)] DEVPROPKEY *PropertyKeys,
785 DWORD PNP_GetObjectProp(
786 [in] handle_t hBinding,
787 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
788 [in] DWORD ObjectType,
789 [in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
790 [in] const DEVPROPKEY *PropertyKey,
791 [out] DEVPROPTYPE *PropertyType,
792 [in, out] PNP_PROP_SIZE *PropertySize,
793 [out] PNP_PROP_SIZE *TransferLen,
794 [out, size_is(*PropertySize), length_is(*TransferLen)] BYTE *PropertyBuffer,
798 DWORD PNP_SetObjectProp(
799 [in] handle_t hBinding,
800 [in, string, ref, range(0, PNP_MAX_STRING_LEN)] LPWSTR ObjectName,
801 [in] DWORD ObjectType,
802 [in, string, unique, range(0, PNP_MAX_CULTURE_NAME_LEN)] LPWSTR PropertyCultureName,
803 [in] const DEVPROPKEY *PropertyKey,
804 [in] DEVPROPTYPE PropertyType,
805 [in] PNP_PROP_SIZE PropertySize,
806 [in, unique, size_is(PropertySize)] BYTE *PropertyBuffer,