Fix missed files. Svn problem?
[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 6 */
34 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
35 [in, string] wchar_t *DeviceInstance,
36 [in] DWORD Flags);
37
38 /* Function 7 */
39 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
40 [out, string, size_is(Length)] wchar_t *DeviceInstance,
41 [in] DWORD Length);
42
43 /* Function 8 */
44 cpp_quote("#define PNP_DEVICE_PARENT 1")
45 cpp_quote("#define PNP_DEVICE_CHILD 2")
46 cpp_quote("#define PNP_DEVICE_SIBLING 3")
47 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
48 [in] DWORD Relationship,
49 [in, string] wchar_t *DeviceId,
50 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
51 [in] DWORD Length,
52 [in] DWORD Flags);
53
54 /* Function 9 */
55 cpp_quote("#define PNP_BRANCH_ENUM 1")
56 cpp_quote("#define PNP_BRANCH_CLASS 2")
57 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
58 [in] unsigned long Branch,
59 [in] unsigned long Index,
60 [out, string, size_is(Length)] wchar_t *Buffer,
61 [in] unsigned long Length,
62 [out] unsigned long *RequiredLength,
63 [in] DWORD Flags);
64
65 /* Function 10 */
66 // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
67 // [in, unique, string] wchar_t *Filter,
68 // [out, string, size_is(*Length)] unsigned char *Buffer
69 // [in, out] unsigned long *Length,
70 // [in] DWORD Flags);
71
72 /* Function 11 */
73 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
74 [in, unique, string] wchar_t *Filter,
75 [out] unsigned long *Length,
76 [in] DWORD Flags);
77
78 /* Function 12 */
79 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
80 [in, string] wchar_t *DeviceInstance,
81 [out] unsigned long *Depth,
82 [in] DWORD Flags);
83
84 /* Function 13 */
85 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
86 [in, string] wchar_t *DeviceInstance,
87 [in] unsigned long Property,
88 [in, out] unsigned long *DataType,
89 [out, size_is(*TransferLen)] char *Buffer,
90 [in, out] unsigned long *TransferLen,
91 [in, out] unsigned long *Length,
92 [in] DWORD Flags);
93
94 /* Function 14 */
95 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
96 [in, string] wchar_t *DeviceId,
97 [in] unsigned long Property,
98 [in] unsigned long DataType,
99 [in, size_is(Length)] char *Buffer,
100 [in] unsigned long Length,
101 [in] unsigned long Flags);
102
103 /* Function 16 */
104 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
105 [in, string] wchar_t *SubKey,
106 [in] unsigned long DesiredAccess,
107 [in] unsigned long Flags);
108
109 /* Function 19 */
110 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
111 [in, string] wchar_t *ClassGuid,
112 [out, string, size_is(*Length)] wchar_t *Buffer,
113 [in, out] unsigned long *Length,
114 [in] unsigned long Flags);
115
116 /* Function 20 */
117 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
118 [in, string] wchar_t *ClassGuid,
119 [in] unsigned long Flags);
120
121 /* Function 30 */
122 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
123 [in, string] wchar_t *DeviceInstance,
124 [out] unsigned long *Status,
125 [out] unsigned long *Problem,
126 [in] DWORD Flags);
127
128 /* Function 31 */
129 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
130 [in, string] wchar_t *DeviceInstance,
131 [in] unsigned long Problem,
132 [in] DWORD Flags);
133
134 /* Function 38 */
135 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
136 [out]PBOOL Present);
137
138 /* Function 39 */
139 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
140 }