r31: More registry updates. regdiff/regpatch work now.
[kai/samba.git] / source4 / librpc / idl / winreg.idl
1 #include "idl_types.h"
2
3 /*
4   winreg interface definition
5 */
6
7 [ uuid(338cd001-2244-31f1-aaaa-900038001003),
8   version(1.0),
9   pointer_default(unique)
10 ] interface winreg
11 {
12         typedef struct {
13                 [value(strlen_m_term(r->name)*2)] uint16 name_len;
14                 [value(r->name_len)]              uint16 name_size;
15                 unistr *name;
16         } winreg_String;
17
18         typedef struct {
19                 uint16 unknown0;
20                 uint16 unknown1;
21         } winreg_OpenUnknown;
22
23         /******************/
24         /* Function: 0x00 */
25         WERROR winreg_OpenHKCR(
26                 [in]      winreg_OpenUnknown *unknown,
27                 [in]      uint32 access_required,
28                 [out,ref] policy_handle *handle
29         );
30
31         /******************/
32         /* Function: 0x01 */
33         WERROR winreg_OpenHKCU(
34                 [in]      winreg_OpenUnknown *unknown,
35                 [in]      uint32 access_required,
36                 [out,ref] policy_handle *handle
37         );
38
39         /******************/
40         /* Function: 0x02 */
41         WERROR winreg_OpenHKLM(
42                 [in]      winreg_OpenUnknown *unknown,
43                 [in]      uint32 access_required,
44                 [out,ref] policy_handle *handle
45         );
46
47         /******************/
48         /* Function: 0x03 */
49         WERROR winreg_OpenHKPD(
50                 [in]      winreg_OpenUnknown *unknown,
51                 [in]      uint32 access_required,
52                 [out,ref] policy_handle *handle
53         );
54
55         /******************/
56         /* Function: 0x04 */
57         WERROR winreg_OpenHKU(
58                 [in]      winreg_OpenUnknown *unknown,
59                 [in]      uint32 access_required,
60                 [out,ref] policy_handle *handle
61         );
62
63         /******************/
64         /* Function: 0x05 */
65         WERROR winreg_CloseKey(
66                 [in,out,ref] policy_handle *handle
67         );
68
69         /******************/
70         /* Function: 0x06 */
71         WERROR winreg_CreateKey(
72         );
73
74         /******************/
75         /* Function: 0x07 */
76         WERROR winreg_DeleteKey(
77                 [in,ref] policy_handle *handle,
78                 [in]     winreg_String key
79         );
80
81         /******************/
82         /* Function: 0x08 */
83         WERROR winreg_DeleteValue(
84                 [in,ref] policy_handle *handle,
85                 [in]     winreg_String value
86         );
87
88         typedef struct {
89                 uint32 low;
90                 uint32 high;
91         } winreg_Time;
92
93         typedef struct {
94                 uint32 unknown;
95                 winreg_String key_name;
96         } winreg_EnumKeyNameRequest;
97
98         typedef struct {
99                 uint32 unknown1;
100                 uint32 unknown2;
101                 lstring name;
102         } winreg_EnumKeyNameResponse;
103
104         /******************/
105         /* Function: 0x09 */
106         WERROR winreg_EnumKey(
107                 [in,ref]    policy_handle *handle,
108                 [in] uint32 enum_index,
109                 [in,out]    uint16 key_name_len,
110                 [in,out]    uint16 unknown,
111                 [in]        winreg_EnumKeyNameRequest *in_name,
112                 [out]       winreg_EnumKeyNameResponse *out_name,
113                 [in,out]    winreg_String *class,
114                 [in,out]    winreg_Time *last_changed_time
115         );
116
117         typedef struct {
118                 uint32 max_len;
119                 uint32 offset;
120                 uint32 len;
121                 uint8 buffer[len];
122         } winreg_Uint8buf;
123
124         /******************/
125         /* Function: 0x0a */
126         WERROR winreg_EnumValue(
127                 [in,ref] policy_handle *handle,
128                 [in] uint32 enum_index,
129                 [in,out,ref] winreg_String *name,
130                 [in,out] uint32 *type,
131                 [in,out] winreg_Uint8buf *value,
132                 [in,out] uint32 *requested_len,
133                 [in,out] uint32 *returned_len
134         );
135
136         /******************/
137         /* Function: 0x0b */
138         WERROR winreg_FlushKey(
139                 [in,ref] policy_handle *handle
140         );
141
142         /******************/
143         /* Function: 0x0c */
144         WERROR winreg_GetKeySecurity(
145         );
146
147         /******************/
148         /* Function: 0x0d */
149         WERROR winreg_LoadKey(
150         );
151
152         /******************/
153         /* Function: 0x0e */
154         WERROR winreg_NotifyChangeKeyValue(
155         );
156
157         /******************/
158         /* Function: 0x0f */
159         WERROR winreg_OpenKey(
160                 [in,ref] policy_handle *handle,
161                 [in] winreg_String keyname,
162                 [in] uint32 unknown,
163                 [in] uint32 access_mask,
164                 [out,ref] policy_handle *handle
165         );
166
167         /******************/
168         /* Function: 0x10 */
169         WERROR winreg_QueryInfoKey(
170                 [in,ref] policy_handle *handle,
171                 [in] winreg_String class,
172                 [out] winreg_String class,
173                 [out] uint32 num_subkeys,
174                 [out] uint32 max_subkeylen,
175                 [out] uint32 max_subkeysize,
176                 [out] uint32 num_values,
177                 [out] uint32 max_valnamelen,
178                 [out] uint32 max_valbufsize,
179                 [out] uint32 secdescsize,
180                 [out] winreg_Time last_changed_time
181         );
182
183         /******************/
184         /* Function: 0x11 */
185         WERROR winreg_QueryValue(
186         );
187
188         /******************/
189         /* Function: 0x12 */
190         WERROR winreg_ReplaceKey(
191         );
192
193         /******************/
194         /* Function: 0x13 */
195         WERROR winreg_RestoreKey(
196         );
197
198         /******************/
199         /* Function: 0x14 */
200         WERROR winreg_SaveKey(
201         );
202
203         /******************/
204         /* Function: 0x15 */
205         WERROR winreg_SetKeySecurity(
206         );
207
208         /******************/
209         /* Function: 0x16 */
210         WERROR winreg_SetValue(
211         );
212
213         /******************/
214         /* Function: 0x17 */
215         WERROR winreg_UnLoadKey(
216         );
217
218         /******************/
219         /* Function: 0x18 */
220         WERROR winreg_InitiateSystemShutdown(
221         );
222
223         /******************/
224         /* Function: 0x19 */
225         WERROR winreg_AbortSystemShutdown(
226         );
227
228         /******************/
229         /* Function: 0x1a */
230         WERROR winreg_GetVersion(
231                 [in,ref] policy_handle *handle,
232                 [out]    uint32 version
233         );
234
235         /******************/
236         /* Function: 0x1b */
237         WERROR winreg_OpenHKCC(
238                 [in]      winreg_OpenUnknown *unknown,
239                 [in]      uint32 access_required,
240                 [out,ref] policy_handle *handle
241         );
242
243         /******************/
244         /* Function: 0x1c */
245         WERROR winreg_OpenHKDD(
246                 [in]      winreg_OpenUnknown *unknown,
247                 [in]      uint32 access_required,
248                 [out,ref] policy_handle *handle
249         );
250
251         /******************/
252         /* Function: 0x1d */
253         WERROR winreg_QueryMultipleValues(
254         );
255
256         /******************/
257         /* Function: 0x1e */
258         WERROR winreg_InitiateSystemShutdownEx(
259         );
260
261         /******************/
262         /* Function: 0x1f */
263         WERROR winreg_SaveKeyEx(
264         );
265
266         /******************/
267         /* Function: 0x20 */
268         WERROR winreg_OpenHKPT(
269                 [in]      winreg_OpenUnknown *unknown,
270                 [in]      uint32 access_required,
271                 [out,ref] policy_handle *handle
272         );
273
274         /******************/
275         /* Function: 0x21 */
276         WERROR winreg_OpenHKPN(
277                 [in]      winreg_OpenUnknown *unknown,
278                 [in]      uint32 access_required,
279                 [out,ref] policy_handle *handle
280         );
281
282         /******************/
283         /* Function: 0x21 */
284         WERROR winreg_QueryMultipleValues2(
285         );
286 }