- Implement CM_Disable_DevNode[_Ex], CM_Enable_DevNode[_Ex], CM_Reenumerate_DevNode...
[reactos.git] / reactos / include / 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 PBOOL unsigned long *
9
10 [
11 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
12 version(1.0),
13 pointer_default(unique),
14 explicit_handle
15 ]
16 interface pnp
17 {
18 /* Function 0 */
19 // CONFIGRET PNP_Unknown0(handle_t BindingHandle);
20
21 /* Function 1 */
22 // CONFIGRET PNP_Unknown1(handle_t BindingHandle);
23
24 /* Function 2 */
25 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
26 [out] WORD *Version);
27
28 /* Function 3 */
29 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
30 [out] unsigned long *State,
31 [in] unsigned long Flags);
32
33 /* Function 4 */
34 CONFIGRET PNP_InitDetection(handle_t BindingHandle);
35
36 /* Function 6 */
37 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
38 [in, string] wchar_t *DeviceInstance,
39 [in] DWORD Flags);
40
41 /* Function 7 */
42 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
43 [out, string, size_is(Length)] wchar_t *DeviceInstance,
44 [in] DWORD Length);
45
46 /* Function 8 */
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,
54 [in] DWORD Length,
55 [in] DWORD Flags);
56
57 /* Function 9 */
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,
66 [in] DWORD Flags);
67
68 /* Function 10 */
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,
73 // [in] DWORD Flags);
74
75 /* Function 11 */
76 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
77 [in, unique, string] wchar_t *Filter,
78 [out] unsigned long *Length,
79 [in] DWORD Flags);
80
81 /* Function 12 */
82 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
83 [in, string] wchar_t *DeviceInstance,
84 [out] unsigned long *Depth,
85 [in] DWORD Flags);
86
87 /* Function 13 */
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,
95 [in] DWORD Flags);
96
97 /* Function 14 */
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);
105
106 /* Function 16 */
107 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
108 [in, string] wchar_t *SubKey,
109 [in] unsigned long DesiredAccess,
110 [in] unsigned long Flags);
111
112 /* Function 17 */
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);
118
119 /* Function 19 */
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);
125
126 /* Function 20 */
127 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
128 [in, string] wchar_t *ClassGuid,
129 [in] unsigned long Flags);
130
131 /* Function 29 */
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);
137
138 /* Function 30 */
139 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
140 [in, string] wchar_t *DeviceInstance,
141 [out] unsigned long *Status,
142 [out] unsigned long *Problem,
143 [in] DWORD Flags);
144
145 /* Function 31 */
146 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
147 [in, string] wchar_t *DeviceInstance,
148 [in] unsigned long Problem,
149 [in] DWORD Flags);
150
151 /* Function 38 */
152 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
153 [out]PBOOL Present);
154
155 /* Function 39 */
156 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
157
158 /* Function 58 */
159 CONFIGRET PNP_RunDetection(handle_t BindingHandle,
160 [in] unsigned long Flags);
161 }