Implement CM_Get_HW_Prof_Flags[_Ex]A/W and add PNP_HwProfFlags stub.
[reactos.git] / reactos / include / reactos / idl / pnp.idl
1 /*
2 * Plug and Play Manager RPC interface definition
3 */
4
5 #define WORD unsigned short
6 #define DWORD unsigned long
7 #define CONFIGRET unsigned long
8 #define BOOL unsigned long
9 #define PBOOL unsigned long *
10
11 [
12 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
13 version(1.0),
14 pointer_default(unique)
15 #ifndef __midl
16 ,explicit_handle
17 #endif
18 ]
19 interface pnp
20 {
21 /* Function 0 */
22 // CONFIGRET PNP_Unknown0(handle_t BindingHandle);
23
24 /* Function 1 */
25 // CONFIGRET PNP_Unknown1(handle_t BindingHandle);
26
27 /* Function 2 */
28 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
29 [out] WORD *Version);
30
31 /* Function 3 */
32 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
33 [out] unsigned long *State,
34 [in] unsigned long Flags);
35
36 /* Function 4 */
37 CONFIGRET PNP_InitDetection(handle_t BindingHandle);
38
39 /* Function 5 */
40 CONFIGRET PNP_ReportLogOn(handle_t BindingHandle,
41 [in] BOOL Admin,
42 [in] DWORD ProcessId);
43
44 /* Function 6 */
45 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
46 [in, string] wchar_t *DeviceInstance,
47 [in] DWORD Flags);
48
49 /* Function 7 */
50 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
51 [out, string, size_is(Length)] wchar_t *DeviceInstance,
52 [in] DWORD Length);
53
54 /* Function 8 */
55 cpp_quote("#define PNP_DEVICE_PARENT 1")
56 cpp_quote("#define PNP_DEVICE_CHILD 2")
57 cpp_quote("#define PNP_DEVICE_SIBLING 3")
58 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
59 [in] DWORD Relationship,
60 [in, string] wchar_t *DeviceId,
61 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
62 [in] DWORD Length,
63 [in] DWORD Flags);
64
65 /* Function 9 */
66 cpp_quote("#define PNP_BRANCH_ENUM 1")
67 cpp_quote("#define PNP_BRANCH_CLASS 2")
68 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
69 [in] unsigned long Branch,
70 [in] unsigned long Index,
71 [out, string, size_is(Length)] wchar_t *Buffer,
72 [in] unsigned long Length,
73 [out] unsigned long *RequiredLength,
74 [in] DWORD Flags);
75
76 /* Function 10 */
77 // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
78 // [in, unique, string] wchar_t *Filter,
79 // [out, string, size_is(*Length)] unsigned char *Buffer
80 // [in, out] unsigned long *Length,
81 // [in] DWORD Flags);
82
83 /* Function 11 */
84 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
85 [in, unique, string] wchar_t *Filter,
86 [out] unsigned long *Length,
87 [in] DWORD Flags);
88
89 /* Function 12 */
90 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
91 [in, string] wchar_t *DeviceInstance,
92 [out] unsigned long *Depth,
93 [in] DWORD Flags);
94
95 /* Function 13 */
96 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
97 [in, string] wchar_t *DeviceInstance,
98 [in] unsigned long Property,
99 [in, out] unsigned long *DataType,
100 [out, size_is(*TransferLen)] char *Buffer,
101 [in, out] unsigned long *TransferLen,
102 [in, out] unsigned long *Length,
103 [in] DWORD Flags);
104
105 /* Function 14 */
106 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
107 [in, string] wchar_t *DeviceId,
108 [in] unsigned long Property,
109 [in] unsigned long DataType,
110 [in, size_is(Length)] char *Buffer,
111 [in] unsigned long Length,
112 [in] unsigned long Flags);
113
114 /* Function 15 */
115 CONFIGRET PNP_GetClassInstance(handle_t BindingHandle,
116 [in, string] wchar_t *DeviceId,
117 [out, string, size_is(Length)] wchar_t *Buffer,
118 [in] unsigned long Length);
119
120 /* Function 16 */
121 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
122 [in, string] wchar_t *SubKey,
123 [in] unsigned long DesiredAccess,
124 [in] unsigned long Flags);
125
126 /* Function 17 */
127 CONFIGRET PNP_DeleteRegistryKey(handle_t BindingHandle,
128 [in, string] wchar_t *DeviceId,
129 [in, string] wchar_t *ParentKey,
130 [in, string] wchar_t *ChildKey,
131 [in] unsigned long Flags);
132
133 /* Function 19 */
134 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
135 [in, string] wchar_t *ClassGuid,
136 [out, string, size_is(*Length)] wchar_t *Buffer,
137 [in, out] unsigned long *Length,
138 [in] unsigned long Flags);
139
140 /* Function 20 */
141 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
142 [in, string] wchar_t *ClassGuid,
143 [in] unsigned long Flags);
144
145 /* Function 28 */
146 CONFIGRET PNP_CreateDevInst(handle_t BindingHandle,
147 [in, out, string, size_is(Length)] wchar_t *DeviceId,
148 [in, string] wchar_t *ParentDeviceId,
149 [in] unsigned long Length,
150 [in] unsigned long Flags);
151
152 /* Function 29 */
153 CONFIGRET PNP_DeviceInstanceAction(handle_t BindingHandle,
154 [in] unsigned long MajorAction,
155 [in] unsigned long MinorAction,
156 [in, unique, string] wchar_t *DeviceInstance1,
157 [in, unique, string] wchar_t *DeviceInstance2);
158
159 /* Function 30 */
160 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
161 [in, string] wchar_t *DeviceInstance,
162 [out] unsigned long *Status,
163 [out] unsigned long *Problem,
164 [in] DWORD Flags);
165
166 /* Function 31 */
167 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
168 [in, string] wchar_t *DeviceInstance,
169 [in] unsigned long Problem,
170 [in] DWORD Flags);
171
172 /* Function 33 */
173 CONFIGRET PNP_UninstallDevInst(handle_t BindingHandle,
174 [in, string] wchar_t *DeviceInstance,
175 [in] DWORD Flags);
176
177 /* Function 34 */
178 CONFIGRET PNP_AddID(handle_t BindingHandle,
179 [in, string, unique] wchar_t *DeviceInstance,
180 [in, string] wchar_t *DeviceId,
181 [in] DWORD Flags);
182
183 /* Function 38 */
184 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
185 [out]PBOOL Present);
186
187 /* Function 39 */
188 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
189
190 /* Function 40 */
191 cpp_quote("#define PNP_SET_HW_PROFILE_FLAGS 0")
192 cpp_quote("#define PNP_GET_HW_PROFILE_FLAGS 1")
193 CONFIGRET PNP_HwProfFlags(handle_t BindingHandle,
194 [in] DWORD Action,
195 [in, string] wchar_t *DeviceId,
196 [in] DWORD ProfileId,
197 [in, out] unsigned long *Value,
198 [in] DWORD Flags);
199
200 /* Function 58 */
201 CONFIGRET PNP_RunDetection(handle_t BindingHandle,
202 [in] unsigned long Flags);
203 }