4 winreg interface definition
7 [ uuid("338cd001-2244-31f1-aaaa-900038001003"),
9 endpoint("ncacn_np:[\\pipe\\winreg]","ncacn_ip_tcp:","ncalrpc:"),
10 pointer_default(unique),
11 helpstring("Remote Registry Service"),
16 [value(strlen_m_term(r->name)*2)] uint16 name_len;
17 [value(r->name_len)] uint16 name_size;
28 WERROR winreg_OpenHKCR(
29 [in] winreg_OpenUnknown *unknown,
30 [in] uint32 access_required,
31 [out,ref] policy_handle *handle
36 WERROR winreg_OpenHKCU(
37 [in] winreg_OpenUnknown *unknown,
38 [in] uint32 access_required,
39 [out,ref] policy_handle *handle
44 WERROR winreg_OpenHKLM(
45 [in] winreg_OpenUnknown *unknown,
46 [in] uint32 access_required,
47 [out,ref] policy_handle *handle
52 WERROR winreg_OpenHKPD(
53 [in] winreg_OpenUnknown *unknown,
54 [in] uint32 access_required,
55 [out,ref] policy_handle *handle
60 WERROR winreg_OpenHKU(
61 [in] winreg_OpenUnknown *unknown,
62 [in] uint32 access_required,
63 [out,ref] policy_handle *handle
68 WERROR winreg_CloseKey(
69 [in,out,ref] policy_handle *handle
74 WERROR winreg_CreateKey(
75 [in,out,ref] policy_handle *handle,
76 [in] winreg_String key,
77 [in] winreg_String class,
79 [in] uint32 access_mask,
80 [in,out,ref] uint32 *action_taken,
81 [in] sec_desc_buf *sec_desc
86 WERROR winreg_DeleteKey(
87 [in,ref] policy_handle *handle,
88 [in] winreg_String key
93 WERROR winreg_DeleteValue(
94 [in,ref] policy_handle *handle,
95 [in] winreg_String value
105 winreg_String key_name;
106 } winreg_EnumKeyNameRequest;
112 } winreg_EnumKeyNameResponse;
116 WERROR winreg_EnumKey(
117 [in,ref] policy_handle *handle,
118 [in] uint32 enum_index,
119 [in,out] uint16 key_name_len,
120 [in,out] uint16 unknown,
121 [in] winreg_EnumKeyNameRequest *in_name,
122 [out] winreg_EnumKeyNameResponse *out_name,
123 [in,out] winreg_String *class,
124 [in,out] winreg_Time *last_changed_time
131 this is equivalent IDL to a winreg_String, but we need to
132 have absolute control over the length/size fields as the
133 server looks at those to see what size buffer we have, so
134 we can't use the automatic unistr handing in pidl.
139 [size_is(size/2),length_is(length/2)] uint16 *name;
140 } winreg_EnumValueString;
142 WERROR winreg_EnumValue(
143 [in,ref] policy_handle *handle,
144 [in] uint32 enum_index,
145 [in] winreg_EnumValueString name_in,
146 [out] winreg_String name_out,
147 [in,out] uint32 *type,
148 [in,out,size_is(*size),length_is(*length)] uint8 *value,
149 [in,out] uint32 *size,
150 [in,out] uint32 *length
155 WERROR winreg_FlushKey(
156 [in,ref] policy_handle *handle
160 [size_is(size),length_is(len)] uint8 *data;
167 WERROR winreg_GetKeySecurity(
168 [in,ref] policy_handle *handle,
169 [in] uint32 access_mask,
170 [in,out,ref] KeySecurityData *data
175 WERROR winreg_LoadKey(
176 [in,ref] policy_handle *handle,
177 [in] winreg_String *keyname,
178 [in] winreg_String *filename
183 WERROR winreg_NotifyChangeKeyValue(
184 [in,ref] policy_handle *handle,
185 [in] uint8 watch_subtree,
186 [in] uint32 notify_filter,
188 [in] winreg_String string1,
189 [in] winreg_String string2,
195 WERROR winreg_OpenKey(
196 [in,ref] policy_handle *handle,
197 [in] winreg_String keyname,
199 [in] uint32 access_mask,
200 [out,ref] policy_handle *handle
205 WERROR winreg_QueryInfoKey(
206 [in,ref] policy_handle *handle,
207 [in] winreg_String class,
208 [out] winreg_String class,
209 [out] uint32 num_subkeys,
210 [out] uint32 max_subkeylen,
211 [out] uint32 max_subkeysize,
212 [out] uint32 num_values,
213 [out] uint32 max_valnamelen,
214 [out] uint32 max_valbufsize,
215 [out] uint32 secdescsize,
216 [out] winreg_Time last_changed_time
221 WERROR winreg_QueryValue(
222 [in,ref] policy_handle *handle,
223 [in] winreg_String value_name,
224 [in,out] uint32 *type,
225 [in,out,size_is(*size),length_is(*length)] uint8 *data,
226 [in,out] uint32 *size,
227 [in,out] uint32 *length
232 WERROR winreg_ReplaceKey(
237 WERROR winreg_RestoreKey(
242 WERROR winreg_SaveKey(
247 WERROR winreg_SetKeySecurity(
248 [in,ref] policy_handle *handle,
249 [in] uint32 access_mask,
250 [in,out,ref] KeySecurityData *data
255 WERROR winreg_SetValue(
256 [in,ref] policy_handle *handle,
257 [in] winreg_String name,
259 [in,size_is(size)] uint8 *data,
265 WERROR winreg_UnLoadKey(
270 WERROR winreg_InitiateSystemShutdown(
271 [in] uint16 *hostname,
272 [in] winreg_String *message,
274 [in] uint8 force_apps,
280 WERROR winreg_AbortSystemShutdown(
286 WERROR winreg_GetVersion(
287 [in,ref] policy_handle *handle,
293 WERROR winreg_OpenHKCC(
294 [in] winreg_OpenUnknown *unknown,
295 [in] uint32 access_required,
296 [out,ref] policy_handle *handle
301 WERROR winreg_OpenHKDD(
302 [in] winreg_OpenUnknown *unknown,
303 [in] uint32 access_required,
304 [out,ref] policy_handle *handle
312 } QueryMultipleValue;
316 WERROR winreg_QueryMultipleValues(
317 [in,ref] policy_handle *key_handle,
318 [in,out,size_is(num_values),length_is(num_values),ref] QueryMultipleValue *values,
319 [in] uint32 num_values,
320 [in,out,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer,
321 [in,out,ref] uint32 *buffer_size
326 WERROR winreg_InitiateSystemShutdownEx(
331 WERROR winreg_SaveKeyEx(
336 WERROR winreg_OpenHKPT(
337 [in] winreg_OpenUnknown *unknown,
338 [in] uint32 access_required,
339 [out,ref] policy_handle *handle
344 WERROR winreg_OpenHKPN(
345 [in] winreg_OpenUnknown *unknown,
346 [in] uint32 access_required,
347 [out,ref] policy_handle *handle
352 WERROR winreg_QueryMultipleValues2(