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,
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;
62typedef struct _BUSNUMBER_DES {
66 DWORD BUSD_Alloc_Base;
68} BUSNUMBER_DES, *PBUSNUMBER_DES;
70typedef struct _BUSNUMBER_RANGE {
73 DWORD BUSR_nBusNumbers;
75} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
77typedef struct _BUSNUMBER_RESOURCE {
78 BUSNUMBER_DES BusNumber_Header;
79 BUSNUMBER_RANGE BusNumber_Data[1];
80} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
82typedef struct _CS_DES {
83 DWORD CSD_SignatureLength;
84 DWORD CSD_LegacyDataOffset;
85 DWORD CSD_LegacyDataSize;
88 BYTE CSD_Signature[1];
91typedef struct _CS_RESOURCE {
93} CS_RESOURCE, *PCS_RESOURCE;
95typedef struct _DEVPRIVATE_DES {
102} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
104typedef struct _DEVPRIVATE_RANGE {
108} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
110typedef struct _DEVPRIVATE_RESOURCE {
111 DEVPRIVATE_DES PRV_Header;
112 DEVPRIVATE_RANGE PRV_Data[1];
113} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
115typedef struct _DMA_DES {
119 unsigned long DD_Alloc_Chan;
122typedef struct _DMA_RANGE {
126} DMA_RANGE, *PDMA_RANGE;
128typedef struct _DMA_RESOURCE {
130 DMA_RANGE DMA_Data[1];
131} DMA_RESOURCE, *PDMA_RESOURCE;
133typedef struct _IO_DES {
136 unsigned __int64 IOD_AllocBase;
137 unsigned __int64 IOD_AllocEnd;
141typedef struct _IO_RANGE {
142 unsigned __int64 IOR_Align;
144 unsigned __int64 IOR_Min;
145 unsigned __int64 IOR_Max;
146 DWORD IOR_RangeFlags;
147 unsigned __int64 IOR_Alias;
148} IO_RANGE, *PIO_RANGE;
150typedef struct _IO_RESOURCE {
153} IO_RESOURCE, *PIO_RESOURCE;
155typedef struct _IRQ_DES {
159 DWORD IRQD_Alloc_Num;
163typedef struct _IRQ_RANGE {
167} IRQ_RANGE, *PIRQ_RANGE;
169typedef struct _IRQ_RESOURCE {
171 IRQ_RANGE IO_Data[1];
172} IRQ_RESOURCE, *PIRQ_RESOURCE;
174typedef struct _MEM_DES {
177 unsigned __int64 MD_Alloc_Base;
178 unsigned __int64 MD_Alloc_End;
183typedef struct _MEM_RANGE {
190} MEM_RANGE, *PMEM_RANGE;
192typedef struct _MEM_RESOURCE {
194 MEM_RANGE MEM_Data[1];
195} MEM_RESOURCE, *PMEM_RESOURCE;
197typedef struct _MFCARD_DES {
201 BYTE PMF_ConfigOptions;
202 BYTE PMF_IoResourceIndex;
203 BYTE PMF_Reserved[2];
204 DWORD PMF_ConfigRegisterBase;
205} MFCARD_DES, *PMFCARD_DES;
207typedef struct _MFCARD_RESOURCE {
208 MFCARD_DES MfCard_Header;
209} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
211typedef struct _PCCARD_DES {
215 BYTE PCD_ConfigIndex;
216 BYTE PCD_Reserved[3];
217 DWORD PCD_MemoryCardBase1;
218 DWORD PCD_MemoryCardBase2;
219} PCCARD_DES, *PPCCARD_DES;
221typedef struct _PCCARD_RESOURCE {
222 PCCARD_DES PcCard_Header;
223} PCCARD_RESOURCE, *PPCARD_RESOURCE;
227typedef struct _PNP_CONFLICT_ENTRY {
228 DWORD DeviceInstance;
231 __int64 ResourceStart;
234} PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
236typedef struct _PNP_CONFLICT_LIST {
239 DWORD ConflictsCounted;
240 DWORD ConflictsListed;
241 DWORD RequiredBufferSize;
242 PNP_CONFLICT_ENTRY ConflictEntry[1];
243} PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
245typedef struct _PNP_CONFLICT_STRINGS {
246 DWORD NullDeviceInstance;
247 WCHAR DeviceInstanceStrings[1];
248} PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
250cpp_quote("#ifndef _DEVPROPDEF_H_")
251typedef struct _DEVPROPKEY {
258 uuid (8D9F4E40-A03D-11CE-8F69-08003E30051B),
260 pointer_default(unique),
261 endpoint("ncacn_np:[\\pipe\\plugplay]")
272 [in] handle_t hBinding); /* FIXME */
278 [in] handle_t hBinding); /* FIXME */
284 [in] handle_t hBinding,
285 [out] WORD *pVersion);
291 [in] handle_t hBinding,
292 [out] DWORD *pulState,
299 [in] handle_t hBinding);
305 [in] handle_t hBinding,
307 [in] DWORD ProcessId);
312 PNP_ValidateDeviceInstance(
313 [in] handle_t hBinding,
314 [in, string, ref] LPWSTR pDeviceID,
320 PNP_GetRootDeviceInstance(
321 [in] handle_t hBinding,
322 [out, string, size_is(ulLength)] LPWSTR pDeviceID,
323 [in] PNP_RPC_STRING_LEN ulLength);
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")
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,
340 cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
341 cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
344 PNP_EnumerateSubKeys(
345 [in] handle_t hBinding,
348 [out, string, size_is(ulLength)] LPWSTR Buffer,
349 [in] PNP_RPC_STRING_LEN ulLength,
350 [out] PNP_RPC_STRING_LEN *pulRequiredLen,
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,
366 PNP_GetDeviceListSize(
367 [in] handle_t hBinding,
368 [in, string, unique] LPWSTR pszFilter,
369 [out] PNP_RPC_BUFFER_SIZE *pulLen,
376 [in] handle_t hBinding,
377 [in, string, ref] LPWSTR pszDeviceID,
378 [out] DWORD *pulDepth,
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,
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,
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);
419 [in] handle_t hBinding,
420 [in, string, ref] LPWSTR pszSubKey,
421 [in] DWORD samDesired,
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,
438 [in] handle_t hBinding,
439 [out] DWORD *pulClassCount,
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,
456 [in] handle_t hBinding,
457 [in, string, ref] LPWSTR pszClassGuid,
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,
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,
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,
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,
509 PNP_UnregisterDeviceClassAssociation(
510 [in] handle_t hBinding,
511 [in, string, unique] LPWSTR pszInterfaceDevice,
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,
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,
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,
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")
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);
568 [in] handle_t hBinding,
569 [in, string, unique] LPWSTR pDeviceID,
570 [out] DWORD *pulStatus,
571 [out] DWORD *pulProblem,
577 PNP_SetDeviceProblem(
578 [in] handle_t hBinding,
579 [in, string, unique] LPWSTR pDeviceID,
580 [in] DWORD ulProblem,
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,
597 PNP_UninstallDevInst(
598 [in] handle_t hBinding,
599 [in, string, unique] LPWSTR pDeviceID,
606 [in] handle_t hBinding,
607 [in, string, unique] LPWSTR pszDeviceID,
608 [in, string, ref] LPWSTR pszID,
615 [in] handle_t hBinding,
616 [in, string, ref] LPWSTR pszDeviceID,
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,
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,
644 PNP_IsDockStationPresent(
645 [in] handle_t hBinding,
646 [in, out, unique] BOOL *Present);
652 [in] handle_t hBinding);
655 cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
656 cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
660 [in] handle_t hBinding,
662 [in, string, ref] LPWSTR pDeviceID,
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,
674 [in] handle_t hBinding,
676 [in, out, ref] HWPROFILEINFO *pHWProfileInfo,
677 [in, range(0, 168)] DWORD ulProfileInfoSize,
678 /* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
685 [in] handle_t hBinding,
686 [in, string, ref] LPWSTR pDeviceID,
687 [in] DWORD ulPriority,
688 [out] DWORD *pulLogConfTag,
695 [in] handle_t hBinding,
696 [in, string, ref] LPWSTR pDeviceID,
697 [in] DWORD ulLogConfType,
698 [in] DWORD ulLogConfTag,
705 [in] handle_t hBinding,
706 [in, string, ref] LPWSTR pDeviceID,
707 [in] DWORD ulLogConfType,
708 [out] DWORD *pulLogConfTag,
715 [in] handle_t hBinding,
716 [in, string, ref] LPWSTR pDeviceID,
717 [in] DWORD ulLogConfType,
718 [in] DWORD ulCurrentTag,
719 [out] DWORD *pulNextTag,
725 PNP_GetLogConfPriority(
726 [in] handle_t hBinding,
727 [in, string, ref] LPWSTR pDeviceID,
730 [out] DWORD *pPriority,
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,
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,
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,
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,
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,
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,
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,
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,
846 [in] handle_t hBinding,
847 [in] DWORD ulHardwareProfile,
853 PNP_QueryArbitratorFreeData(
854 [in] handle_t hBinding,
855 [out, size_is(DataLen)] BYTE *pData,
857 [in, string, ref] LPWSTR pDeviceID,
858 [in] RESOURCEID ResourceID,
864 PNP_QueryArbitratorFreeSize(
865 [in] handle_t hBinding,
866 [out] DWORD *pulSize,
867 [in, string, ref] LPWSTR pDeviceID,
868 [in] RESOURCEID ResourceID,
875 [in] handle_t hBinding,
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,
888 [out] PPNP_NOTIFY_HANDLE pNotifyHandle,
889 [in] DWORD ulProcessId,
890 [in] DWORD *pulUnknown9);
895 PNP_UnregisterNotification(
896 [in] handle_t hBinding,
897 [in, out] PPNP_NOTIFY_HANDLE pNotifyHandle);
899cpp_quote("#if _WIN32_WINNT >= 0x0501")
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,
917 PNP_GetVersionInternal(
918 [in] handle_t hBinding,
919 [in, out] WORD *pwVersion);
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,
934 PNP_GetServerSideDeviceInstallFlags(
935 [in] handle_t hBinding,
936 [out] DWORD *pulSSDIFlags,
939 /* Functions 65 to 74 are Vista+, see r63565 */
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
const unsigned long PNP_MAX_CULTURE_NAME_LEN
const unsigned long PNP_MAX_CM_PATH
unsigned long PNP_PROP_COUNT
const unsigned long PNP_MAX_DEVICE_ID_LEN
PNP_RPC_STRING_LEN * PPNP_RPC_STRING_LEN
struct _HWPROFILEINFO HWPROFILEINFO
const unsigned long PNP_MAX_GUID_STRING_LEN
PNP_PROP_COUNT * PPNP_PROP_COUNT
PNP_RPC_BUFFER_SIZE * PPNP_RPC_BUFFER_SIZE
unsigned long PNP_RPC_BUFFER_SIZE
const unsigned long PNP_MAX_STRING_LEN
PNP_PROP_SIZE * PPNP_PROP_SIZE
unsigned long PNP_RPC_STRING_LEN
PNP_NOTIFY_HANDLE * PPNP_NOTIFY_HANDLE
const unsigned long PNP_MAX_PROP_COUNT
const unsigned long PNP_MAX_DEVINTERFACE_LEN
const unsigned long PNP_MAX_BUFFER_SIZE
const unsigned long PNP_MAX_PROP_SIZE
unsigned long PNP_PROP_SIZE