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 pointer_default_top(unique),
13 helpstring("Remote Registry Service"),
14 depends(lsa,initshutdown)
18 [value(strlen_m_term(r->name)*2)] uint16 name_len;
19 [value(r->name_len)] uint16 name_size;
30 WERROR winreg_OpenHKCR(
31 [in] winreg_OpenUnknown *unknown,
32 [in] uint32 access_required,
33 [out,ref] policy_handle *handle
38 WERROR winreg_OpenHKCU(
39 [in] winreg_OpenUnknown *unknown,
40 [in] uint32 access_required,
41 [out,ref] policy_handle *handle
46 WERROR winreg_OpenHKLM(
47 [in] winreg_OpenUnknown *unknown,
48 [in] uint32 access_required,
49 [out,ref] policy_handle *handle
54 WERROR winreg_OpenHKPD(
55 [in] winreg_OpenUnknown *unknown,
56 [in] uint32 access_required,
57 [out,ref] policy_handle *handle
62 WERROR winreg_OpenHKU(
63 [in] winreg_OpenUnknown *unknown,
64 [in] uint32 access_required,
65 [out,ref] policy_handle *handle
70 WERROR winreg_CloseKey(
71 [in,out,ref] policy_handle *handle
76 WERROR winreg_CreateKey(
77 [in,out,ref] policy_handle *handle,
78 [in] winreg_String key,
79 [in] winreg_String class,
81 [in] uint32 access_mask,
82 [in,out,ref] uint32 *action_taken,
83 [in] sec_desc_buf *sec_desc
88 WERROR winreg_DeleteKey(
89 [in,ref] policy_handle *handle,
90 [in] winreg_String key
95 WERROR winreg_DeleteValue(
96 [in,ref] policy_handle *handle,
97 [in] winreg_String value
107 winreg_String key_name;
108 } winreg_EnumKeyNameRequest;
114 } winreg_EnumKeyNameResponse;
118 WERROR winreg_EnumKey(
119 [in,ref] policy_handle *handle,
120 [in] uint32 enum_index,
121 [in,out] uint16 key_name_len,
122 [in,out] uint16 unknown,
123 [in] winreg_EnumKeyNameRequest *in_name,
124 [out] winreg_EnumKeyNameResponse *out_name,
125 [in,out] winreg_String *class,
126 [in,out] winreg_Time *last_changed_time
133 this is equivalent IDL to a winreg_String, but we need to
134 have absolute control over the length/size fields as the
135 server looks at those to see what size buffer we have, so
136 we can't use the automatic unistr handing in pidl.
141 [size_is(size/2),length_is(length/2)] uint16 *name[];
142 } winreg_EnumValueString;
144 WERROR winreg_EnumValue(
145 [in,ref] policy_handle *handle,
146 [in] uint32 enum_index,
147 [in] winreg_EnumValueString name_in,
148 [out] winreg_String name_out,
149 [in,out] uint32 *type,
150 [in,out,size_is(*size),length_is(*length)] uint8 *value[],
151 [in,out] uint32 *size,
152 [in,out] uint32 *length
157 WERROR winreg_FlushKey(
158 [in,ref] policy_handle *handle
162 [size_is(size),length_is(len)] uint8 *data[];
169 WERROR winreg_GetKeySecurity(
170 [in,ref] policy_handle *handle,
171 [in] uint32 access_mask,
172 [in,out,ref] KeySecurityData *data
177 WERROR winreg_LoadKey(
178 [in,ref] policy_handle *handle,
179 [in] winreg_String *keyname,
180 [in] winreg_String *filename
185 WERROR winreg_NotifyChangeKeyValue(
186 [in,ref] policy_handle *handle,
187 [in] uint8 watch_subtree,
188 [in] uint32 notify_filter,
190 [in] winreg_String string1,
191 [in] winreg_String string2,
197 WERROR winreg_OpenKey(
198 [in,ref] policy_handle *handle,
199 [in] winreg_String keyname,
201 [in] uint32 access_mask,
202 [out,ref] policy_handle *handle
207 WERROR winreg_QueryInfoKey(
208 [in,ref] policy_handle *handle,
209 [in] winreg_String class,
210 [out] winreg_String class,
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] winreg_Time last_changed_time
223 WERROR winreg_QueryValue(
224 [in,ref] policy_handle *handle,
225 [in] winreg_String value_name,
226 [in,out] uint32 *type,
227 [in,out,size_is(*size),length_is(*length)] uint8 *data[],
228 [in,out] uint32 *size,
229 [in,out] uint32 *length
234 WERROR winreg_ReplaceKey(
239 WERROR winreg_RestoreKey(
244 WERROR winreg_SaveKey(
249 WERROR winreg_SetKeySecurity(
250 [in,ref] policy_handle *handle,
251 [in] uint32 access_mask,
252 [in,out,ref] KeySecurityData *data
257 WERROR winreg_SetValue(
258 [in,ref] policy_handle *handle,
259 [in] winreg_String name,
261 [in,size_is(size)] uint8 *data[],
267 WERROR winreg_UnLoadKey(
272 WERROR winreg_InitiateSystemShutdown(
273 [in] uint16 *hostname,
274 [in] initshutdown_String *message,
276 [in] uint8 force_apps,
282 WERROR winreg_AbortSystemShutdown(
288 WERROR winreg_GetVersion(
289 [in,ref] policy_handle *handle,
295 WERROR winreg_OpenHKCC(
296 [in] winreg_OpenUnknown *unknown,
297 [in] uint32 access_required,
298 [out,ref] policy_handle *handle
303 WERROR winreg_OpenHKDD(
304 [in] winreg_OpenUnknown *unknown,
305 [in] uint32 access_required,
306 [out,ref] policy_handle *handle
314 } QueryMultipleValue;
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
328 WERROR winreg_InitiateSystemShutdownEx(
329 [in] uint16 *hostname,
330 [in] initshutdown_String *message,
332 [in] uint8 force_apps,
339 WERROR winreg_SaveKeyEx(
344 WERROR winreg_OpenHKPT(
345 [in] winreg_OpenUnknown *unknown,
346 [in] uint32 access_required,
347 [out,ref] policy_handle *handle
352 WERROR winreg_OpenHKPN(
353 [in] winreg_OpenUnknown *unknown,
354 [in] uint32 access_required,
355 [out,ref] policy_handle *handle
360 WERROR winreg_QueryMultipleValues2(