r15776: Don't generate ref pointers in Samba4-generated code. There is no point
[Samba/aatanasov.git] / source / librpc / idl / winreg.idl
blob93c3c12db5235a8dbebe4000c7150264efc94265
1 /*
2 winreg interface definition
3 */
5 [
6 uuid("338cd001-2244-31f1-aaaa-900038001003"),
7 version(1.0),
8 endpoint("ncacn_np:[\\pipe\\winreg]","ncacn_ip_tcp:","ncalrpc:"),
9 pointer_default(unique),
10 pointer_default_top(unique),
11 helpstring("Remote Registry Service"),
12 depends(lsa,initshutdown,security),
13 keepref
14 ] interface winreg
16 declare bitmap security_secinfo;
18 typedef [v1_enum] enum {
19 REG_NONE = 0,
20 REG_SZ = 1,
21 REG_EXPAND_SZ = 2,
22 REG_BINARY = 3,
23 REG_DWORD = 4,
24 REG_DWORD_BIG_ENDIAN = 5,
25 REG_LINK = 6,
26 REG_MULTI_SZ = 7,
27 REG_RESOURCE_LIST = 8,
28 REG_FULL_RESOURCE_DESCRIPTOR = 9,
29 REG_RESOURCE_REQUIREMENTS_LIST = 10,
30 REG_QWORD = 11
31 } winreg_Type;
33 typedef [public,noejs] struct {
34 [value(strlen_m_term(name)*2)] uint16 name_len;
35 [value(strlen_m_term(name)*2)] uint16 name_size;
36 [string,charset(UTF16)] uint16 *name;
37 } winreg_String;
39 /******************/
40 /* Function: 0x00 */
41 WERROR winreg_OpenHKCR(
42 [in] uint16 *system_name,
43 [in] uint32 access_mask,
44 [out,ref] policy_handle *handle
47 /******************/
48 /* Function: 0x01 */
49 WERROR winreg_OpenHKCU(
50 [in] uint16 *system_name,
51 [in] uint32 access_mask,
52 [out,ref] policy_handle *handle
55 /******************/
56 /* Function: 0x02 */
57 WERROR winreg_OpenHKLM(
58 [in] uint16 *system_name,
59 [in] uint32 access_mask,
60 [out,ref] policy_handle *handle
63 /******************/
64 /* Function: 0x03 */
65 WERROR winreg_OpenHKPD(
66 [in] uint16 *system_name,
67 [in] uint32 access_mask,
68 [out,ref] policy_handle *handle
71 /******************/
72 /* Function: 0x04 */
73 WERROR winreg_OpenHKU(
74 [in] uint16 *system_name,
75 [in] uint32 access_mask,
76 [out,ref] policy_handle *handle
79 /******************/
80 /* Function: 0x05 */
81 WERROR winreg_CloseKey(
82 [in,out,ref] policy_handle *handle
85 /******************/
86 /* Function: 0x06 */
88 typedef struct {
89 [size_is(size),length_is(len)] uint8 *data;
90 uint32 size;
91 uint32 len;
92 } KeySecurityData;
94 typedef struct {
95 uint32 length;
96 KeySecurityData sd;
97 boolean8 inherit;
98 } winreg_SecBuf;
100 typedef [v1_enum] enum {
101 REG_ACTION_NONE = 0, /* used by caller */
102 REG_CREATED_NEW_KEY = 1,
103 REG_OPENED_EXISTING_KEY = 2
104 } winreg_CreateAction;
106 WERROR winreg_CreateKey(
107 [in,ref] policy_handle *handle,
108 [in] winreg_String name,
109 [in] winreg_String class,
110 [in] uint32 options,
111 [in] uint32 access_mask,
112 [in,unique] winreg_SecBuf *secdesc,
113 [out,ref] policy_handle *new_handle,
114 [in,out,unique] winreg_CreateAction *action_taken
117 /******************/
118 /* Function: 0x07 */
119 WERROR winreg_DeleteKey(
120 [in,ref] policy_handle *handle,
121 [in] winreg_String key
124 /******************/
125 /* Function: 0x08 */
126 WERROR winreg_DeleteValue(
127 [in,ref] policy_handle *handle,
128 [in] winreg_String value
131 typedef struct {
132 [value(strlen_m_term(name)*2)] uint16 length;
133 /* size cannot be auto-set by value() as it is the
134 amount of space the server is allowed to use for this
135 string in the reply, not its current size */
136 uint16 size;
137 [size_is(size/2),length_is(length/2),charset(UTF16)] uint16 *name;
138 } winreg_StringBuf;
140 WERROR winreg_EnumKey(
141 [in,ref] policy_handle *handle,
142 [in] uint32 enum_index,
143 [in,out,ref] winreg_StringBuf *name,
144 [in,out,unique] winreg_StringBuf *class,
145 [in,out,unique] NTTIME *last_changed_time
148 /******************/
149 /* Function: 0x0a */
151 WERROR winreg_EnumValue(
152 [in,ref] policy_handle *handle,
153 [in] uint32 enum_index,
154 [in,out,ref] winreg_StringBuf *name,
155 [in,out,unique] winreg_Type *type,
156 [in,out,unique,size_is(*size),length_is(*length)] uint8 *value,
157 [in,out,unique] uint32 *size,
158 [in,out,unique] uint32 *length
161 /******************/
162 /* Function: 0x0b */
163 WERROR winreg_FlushKey(
164 [in,ref] policy_handle *handle
167 /******************/
168 /* Function: 0x0c */
169 WERROR winreg_GetKeySecurity(
170 [in,ref] policy_handle *handle,
171 [in] security_secinfo sec_info,
172 [in,out,ref] KeySecurityData *sd
175 /******************/
176 /* Function: 0x0d */
177 WERROR winreg_LoadKey(
178 [in,ref] policy_handle *handle,
179 [in] winreg_String *keyname,
180 [in] winreg_String *filename
183 /******************/
184 /* Function: 0x0e */
185 WERROR winreg_NotifyChangeKeyValue(
186 [in,ref] policy_handle *handle,
187 [in] uint8 watch_subtree,
188 [in] uint32 notify_filter,
189 [in] uint32 unknown,
190 [in] winreg_String string1,
191 [in] winreg_String string2,
192 [in] uint32 unknown2
195 /******************/
196 /* Function: 0x0f */
197 WERROR winreg_OpenKey(
198 [in,ref] policy_handle *handle,
199 [in] winreg_String keyname,
200 [in] uint32 unknown,
201 [in] uint32 access_mask,
202 [out,ref] policy_handle *handle
205 /******************/
206 /* Function: 0x10 */
207 WERROR winreg_QueryInfoKey(
208 [in,ref] policy_handle *handle,
209 [in] winreg_String class_in,
210 [out] winreg_String *class_out,
211 [out] uint32 num_subkeys,
212 [out] uint32 max_subkeylen,
213 [out] uint32 max_subkeysize,
214 [out] uint32 num_values,
215 [out] uint32 max_valnamelen,
216 [out] uint32 max_valbufsize,
217 [out] uint32 secdescsize,
218 [out] NTTIME last_changed_time
221 /******************/
222 /* Function: 0x11 */
223 WERROR winreg_QueryValue(
224 [in,ref] policy_handle *handle,
225 [in] winreg_String value_name,
226 [in,out] winreg_Type *type,
227 [in,out,size_is(*size),length_is(*length)] uint8 *data,
228 [in,out] uint32 *size,
229 [in,out] uint32 *length
232 /******************/
233 /* Function: 0x12 */
234 WERROR winreg_ReplaceKey(
237 /******************/
238 /* Function: 0x13 */
239 WERROR winreg_RestoreKey(
242 /******************/
243 /* Function: 0x14 */
244 WERROR winreg_SaveKey(
247 /******************/
248 /* Function: 0x15 */
249 WERROR winreg_SetKeySecurity(
250 [in,ref] policy_handle *handle,
251 [in] uint32 access_mask,
252 [in,out,ref] KeySecurityData *data
255 /******************/
256 /* Function: 0x16 */
257 WERROR winreg_SetValue(
258 [in,ref] policy_handle *handle,
259 [in] winreg_String name,
260 [in] winreg_Type type,
261 [in,size_is(size),ref] uint8 *data,
262 [in] uint32 size
265 /******************/
266 /* Function: 0x17 */
267 WERROR winreg_UnLoadKey(
270 /******************/
271 /* Function: 0x18 */
272 WERROR winreg_InitiateSystemShutdown(
273 [in] uint16 *hostname,
274 [in] initshutdown_String *message,
275 [in] uint32 timeout,
276 [in] uint8 force_apps,
277 [in] uint8 reboot
280 /******************/
281 /* Function: 0x19 */
282 WERROR winreg_AbortSystemShutdown(
283 [in] uint16 *server
286 /******************/
287 /* Function: 0x1a */
288 WERROR winreg_GetVersion(
289 [in,ref] policy_handle *handle,
290 [out] uint32 version
293 /******************/
294 /* Function: 0x1b */
295 WERROR winreg_OpenHKCC(
296 [in] uint16 *system_name,
297 [in] uint32 access_mask,
298 [out,ref] policy_handle *handle
301 /******************/
302 /* Function: 0x1c */
303 WERROR winreg_OpenHKDD(
304 [in] uint16 *system_name,
305 [in] uint32 access_mask,
306 [out,ref] policy_handle *handle
309 typedef struct {
310 winreg_String *name;
311 winreg_Type type;
312 uint32 offset;
313 uint32 length;
314 } QueryMultipleValue;
316 /******************/
317 /* Function: 0x1d */
318 WERROR winreg_QueryMultipleValues(
319 [in,ref] policy_handle *key_handle,
320 [in,out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values,
321 [in] uint32 num_values,
322 [in,out,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer,
323 [in,out,ref] uint32 *buffer_size
326 /******************/
327 /* Function: 0x1e */
328 WERROR winreg_InitiateSystemShutdownEx(
329 [in] uint16 *hostname,
330 [in] initshutdown_String *message,
331 [in] uint32 timeout,
332 [in] uint8 force_apps,
333 [in] uint8 reboot,
334 [in] uint32 reason
337 /******************/
338 /* Function: 0x1f */
339 WERROR winreg_SaveKeyEx(
342 /******************/
343 /* Function: 0x20 */
344 WERROR winreg_OpenHKPT(
345 [in] uint16 *system_name,
346 [in] uint32 access_mask,
347 [out,ref] policy_handle *handle
350 /******************/
351 /* Function: 0x21 */
352 WERROR winreg_OpenHKPN(
353 [in] uint16 *system_name,
354 [in] uint32 access_mask,
355 [out,ref] policy_handle *handle
358 /******************/
359 /* Function: 0x22 */
360 WERROR winreg_QueryMultipleValues2(