4 winreg interface definition
8 uuid("338cd001-2244-31f1-aaaa-900038001003"),
10 endpoint("ncacn_np:[\\pipe\\winreg]","ncacn_ip_tcp:","ncalrpc:"),
11 pointer_default(unique),
12 helpstring("Remote Registry Service"),
17 [value(strlen_m_term(r->name)*2)] uint16 name_len;
18 [value(r->name_len)] uint16 name_size;
29 WERROR winreg_OpenHKCR(
30 [in] winreg_OpenUnknown *unknown,
31 [in] uint32 access_required,
32 [out,ref] policy_handle *handle
37 WERROR winreg_OpenHKCU(
38 [in] winreg_OpenUnknown *unknown,
39 [in] uint32 access_required,
40 [out,ref] policy_handle *handle
45 WERROR winreg_OpenHKLM(
46 [in] winreg_OpenUnknown *unknown,
47 [in] uint32 access_required,
48 [out,ref] policy_handle *handle
53 WERROR winreg_OpenHKPD(
54 [in] winreg_OpenUnknown *unknown,
55 [in] uint32 access_required,
56 [out,ref] policy_handle *handle
61 WERROR winreg_OpenHKU(
62 [in] winreg_OpenUnknown *unknown,
63 [in] uint32 access_required,
64 [out,ref] policy_handle *handle
69 WERROR winreg_CloseKey(
70 [in,out,ref] policy_handle *handle
75 WERROR winreg_CreateKey(
76 [in,out,ref] policy_handle *handle,
77 [in] winreg_String key,
78 [in] winreg_String class,
80 [in] uint32 access_mask,
81 [in,out,ref] uint32 *action_taken,
82 [in] sec_desc_buf *sec_desc
87 WERROR winreg_DeleteKey(
88 [in,ref] policy_handle *handle,
89 [in] winreg_String key
94 WERROR winreg_DeleteValue(
95 [in,ref] policy_handle *handle,
96 [in] winreg_String value
106 winreg_String key_name;
107 } winreg_EnumKeyNameRequest;
113 } winreg_EnumKeyNameResponse;
117 WERROR winreg_EnumKey(
118 [in,ref] policy_handle *handle,
119 [in] uint32 enum_index,
120 [in,out] uint16 key_name_len,
121 [in,out] uint16 unknown,
122 [in] winreg_EnumKeyNameRequest *in_name,
123 [out] winreg_EnumKeyNameResponse *out_name,
124 [in,out] winreg_String *class,
125 [in,out] winreg_Time *last_changed_time
132 this is equivalent IDL to a winreg_String, but we need to
133 have absolute control over the length/size fields as the
134 server looks at those to see what size buffer we have, so
135 we can't use the automatic unistr handing in pidl.
140 [size_is(size/2),length_is(length/2)] uint16 *name[];
141 } winreg_EnumValueString;
143 WERROR winreg_EnumValue(
144 [in,ref] policy_handle *handle,
145 [in] uint32 enum_index,
146 [in] winreg_EnumValueString name_in,
147 [out] winreg_String name_out,
148 [in,out] uint32 *type,
149 [in,out,size_is(*size),length_is(*length)] uint8 *value[],
150 [in,out] uint32 *size,
151 [in,out] uint32 *length
156 WERROR winreg_FlushKey(
157 [in,ref] policy_handle *handle
161 [size_is(size),length_is(len)] uint8 *data[];
168 WERROR winreg_GetKeySecurity(
169 [in,ref] policy_handle *handle,
170 [in] uint32 access_mask,
171 [in,out,ref] KeySecurityData *data
176 WERROR winreg_LoadKey(
177 [in,ref] policy_handle *handle,
178 [in] winreg_String *keyname,
179 [in] winreg_String *filename
184 WERROR winreg_NotifyChangeKeyValue(
185 [in,ref] policy_handle *handle,
186 [in] uint8 watch_subtree,
187 [in] uint32 notify_filter,
189 [in] winreg_String string1,
190 [in] winreg_String string2,
196 WERROR winreg_OpenKey(
197 [in,ref] policy_handle *handle,
198 [in] winreg_String keyname,
200 [in] uint32 access_mask,
201 [out,ref] policy_handle *handle
206 WERROR winreg_QueryInfoKey(
207 [in,ref] policy_handle *handle,
208 [in] winreg_String class,
209 [out] winreg_String class,
210 [out] uint32 num_subkeys,
211 [out] uint32 max_subkeylen,
212 [out] uint32 max_subkeysize,
213 [out] uint32 num_values,
214 [out] uint32 max_valnamelen,
215 [out] uint32 max_valbufsize,
216 [out] uint32 secdescsize,
217 [out] winreg_Time last_changed_time
222 WERROR winreg_QueryValue(
223 [in,ref] policy_handle *handle,
224 [in] winreg_String value_name,
225 [in,out] uint32 *type,
226 [in,out,size_is(*size),length_is(*length)] uint8 *data[],
227 [in,out] uint32 *size,
228 [in,out] uint32 *length
233 WERROR winreg_ReplaceKey(
238 WERROR winreg_RestoreKey(
243 WERROR winreg_SaveKey(
248 WERROR winreg_SetKeySecurity(
249 [in,ref] policy_handle *handle,
250 [in] uint32 access_mask,
251 [in,out,ref] KeySecurityData *data
256 WERROR winreg_SetValue(
257 [in,ref] policy_handle *handle,
258 [in] winreg_String name,
260 [in,size_is(size)] uint8 *data[],
266 WERROR winreg_UnLoadKey(
271 WERROR winreg_InitiateSystemShutdown(
272 [in] uint16 *hostname,
273 [in] winreg_String *message,
275 [in] uint8 force_apps,
281 WERROR winreg_AbortSystemShutdown(
287 WERROR winreg_GetVersion(
288 [in,ref] policy_handle *handle,
294 WERROR winreg_OpenHKCC(
295 [in] winreg_OpenUnknown *unknown,
296 [in] uint32 access_required,
297 [out,ref] policy_handle *handle
302 WERROR winreg_OpenHKDD(
303 [in] winreg_OpenUnknown *unknown,
304 [in] uint32 access_required,
305 [out,ref] policy_handle *handle
313 } QueryMultipleValue;
317 WERROR winreg_QueryMultipleValues(
318 [in,ref] policy_handle *key_handle,
319 [in,out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values[],
320 [in] uint32 num_values,
321 [in,out,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer[],
322 [in,out,ref] uint32 *buffer_size
327 WERROR winreg_InitiateSystemShutdownEx(
328 [in] uint16 *hostname,
329 [in] winreg_String *message,
331 [in] uint8 force_apps,
338 WERROR winreg_SaveKeyEx(
343 WERROR winreg_OpenHKPT(
344 [in] winreg_OpenUnknown *unknown,
345 [in] uint32 access_required,
346 [out,ref] policy_handle *handle
351 WERROR winreg_OpenHKPN(
352 [in] winreg_OpenUnknown *unknown,
353 [in] uint32 access_required,
354 [out,ref] policy_handle *handle
359 WERROR winreg_QueryMultipleValues2(