2 * Plug and Play Manager RPC interface definition
5 #define WORD unsigned short
6 #define DWORD unsigned long
7 #define CONFIGRET unsigned long
8 #define PBOOL unsigned long *
11 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
13 pointer_default(unique),
19 // CONFIGRET PNP_Unknown0(handle_t BindingHandle);
22 // CONFIGRET PNP_Unknown1(handle_t BindingHandle);
25 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
29 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
30 [out] unsigned long *State,
31 [in] unsigned long Flags);
34 CONFIGRET PNP_InitDetection(handle_t BindingHandle);
37 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
38 [in, string] wchar_t *DeviceInstance,
42 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
43 [out, string, size_is(Length)] wchar_t *DeviceInstance,
47 cpp_quote("#define PNP_DEVICE_PARENT 1")
48 cpp_quote("#define PNP_DEVICE_CHILD 2")
49 cpp_quote("#define PNP_DEVICE_SIBLING 3")
50 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
51 [in] DWORD Relationship,
52 [in, string] wchar_t *DeviceId,
53 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
58 cpp_quote("#define PNP_BRANCH_ENUM 1")
59 cpp_quote("#define PNP_BRANCH_CLASS 2")
60 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
61 [in] unsigned long Branch,
62 [in] unsigned long Index,
63 [out, string, size_is(Length)] wchar_t *Buffer,
64 [in] unsigned long Length,
65 [out] unsigned long *RequiredLength,
69 // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
70 // [in, unique, string] wchar_t *Filter,
71 // [out, string, size_is(*Length)] unsigned char *Buffer
72 // [in, out] unsigned long *Length,
76 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
77 [in, unique, string] wchar_t *Filter,
78 [out] unsigned long *Length,
82 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
83 [in, string] wchar_t *DeviceInstance,
84 [out] unsigned long *Depth,
88 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
89 [in, string] wchar_t *DeviceInstance,
90 [in] unsigned long Property,
91 [in, out] unsigned long *DataType,
92 [out, size_is(*TransferLen)] char *Buffer,
93 [in, out] unsigned long *TransferLen,
94 [in, out] unsigned long *Length,
98 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
99 [in, string] wchar_t *DeviceId,
100 [in] unsigned long Property,
101 [in] unsigned long DataType,
102 [in, size_is(Length)] char *Buffer,
103 [in] unsigned long Length,
104 [in] unsigned long Flags);
107 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
108 [in, string] wchar_t *SubKey,
109 [in] unsigned long DesiredAccess,
110 [in] unsigned long Flags);
113 CONFIGRET PNP_DeleteRegistryKey(handle_t BindingHandle,
114 [in, string] wchar_t *DeviceId,
115 [in, string] wchar_t *ParentKey,
116 [in, string] wchar_t *ChildKey,
117 [in] unsigned long Flags);
120 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
121 [in, string] wchar_t *ClassGuid,
122 [out, string, size_is(*Length)] wchar_t *Buffer,
123 [in, out] unsigned long *Length,
124 [in] unsigned long Flags);
127 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
128 [in, string] wchar_t *ClassGuid,
129 [in] unsigned long Flags);
132 CONFIGRET PNP_DeviceInstanceAction(handle_t BindingHandle,
133 [in] unsigned long MajorAction,
134 [in] unsigned long MinorAction,
135 [in, unique, string] wchar_t *DeviceInstance1,
136 [in, unique, string] wchar_t *DeviceInstance2);
139 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
140 [in, string] wchar_t *DeviceInstance,
141 [out] unsigned long *Status,
142 [out] unsigned long *Problem,
146 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
147 [in, string] wchar_t *DeviceInstance,
148 [in] unsigned long Problem,
152 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
156 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
159 CONFIGRET PNP_RunDetection(handle_t BindingHandle,
160 [in] unsigned long Flags);