1 /* header auto-generated by pidl */
5 #include "libcli/util/ntstatus.h"
7 #include "librpc/gen_ndr/lsa.h"
8 #include "librpc/gen_ndr/security.h"
9 #include "librpc/gen_ndr/misc.h"
10 #ifndef _HEADER_winreg
11 #define _HEADER_winreg
13 #define REG_KEY_READ ( (STANDARD_RIGHTS_READ_ACCESS|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY) )
14 #define REG_KEY_EXECUTE ( REG_KEY_READ )
15 #define REG_KEY_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|KEY_SET_VALUE|KEY_CREATE_SUB_KEY) )
16 #define REG_KEY_ALL ( (STANDARD_RIGHTS_REQUIRED_ACCESS|REG_KEY_READ|REG_KEY_WRITE|KEY_CREATE_LINK) )
17 /* bitmap winreg_AccessMask */
18 #define KEY_QUERY_VALUE ( 0x00001 )
19 #define KEY_SET_VALUE ( 0x00002 )
20 #define KEY_CREATE_SUB_KEY ( 0x00004 )
21 #define KEY_ENUMERATE_SUB_KEYS ( 0x00008 )
22 #define KEY_NOTIFY ( 0x00010 )
23 #define KEY_CREATE_LINK ( 0x00020 )
24 #define KEY_WOW64_64KEY ( 0x00100 )
25 #define KEY_WOW64_32KEY ( 0x00200 )
27 struct winreg_String {
28 uint16_t name_len;/* [value(strlen_m_term(name)*2)] */
29 uint16_t name_size;/* [value(strlen_m_term(name)*2)] */
30 const char *name;/* [unique,charset(UTF16)] */
33 struct KeySecurityData {
34 uint8_t *data;/* [unique,length_is(len),size_is(size)] */
39 struct winreg_SecBuf {
41 struct KeySecurityData sd;
45 enum winreg_CreateAction
46 #ifndef USE_UINT_ENUMS
48 REG_ACTION_NONE=(int)(0),
49 REG_CREATED_NEW_KEY=(int)(1),
50 REG_OPENED_EXISTING_KEY=(int)(2)
53 { __donnot_use_enum_winreg_CreateAction=0x7FFFFFFF}
54 #define REG_ACTION_NONE ( 0 )
55 #define REG_CREATED_NEW_KEY ( 1 )
56 #define REG_OPENED_EXISTING_KEY ( 2 )
60 struct winreg_StringBuf {
61 uint16_t length;/* [value(strlen_m_term_null(name)*2)] */
63 const char *name;/* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
66 struct winreg_ValNameBuf {
67 uint16_t length;/* [value(strlen_m_term(name)*2)] */
69 const char *name;/* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
72 /* bitmap winreg_NotifyChangeType */
73 #define REG_NOTIFY_CHANGE_NAME ( 0x00000001 )
74 #define REG_NOTIFY_CHANGE_ATTRIBUTES ( 0x00000002 )
75 #define REG_NOTIFY_CHANGE_LAST_SET ( 0x00000004 )
76 #define REG_NOTIFY_CHANGE_SECURITY ( 0x00000008 )
78 struct KeySecurityAttribute {
80 struct KeySecurityData sec_data;
84 struct QueryMultipleValue {
85 struct winreg_String *name;/* [unique] */
86 enum winreg_Type type;
92 struct winreg_OpenHKCR {
94 uint16_t *system_name;/* [unique] */
99 struct policy_handle *handle;/* [ref] */
106 struct winreg_OpenHKCU {
108 uint16_t *system_name;/* [unique] */
109 uint32_t access_mask;
113 struct policy_handle *handle;/* [ref] */
120 struct winreg_OpenHKLM {
122 uint16_t *system_name;/* [unique] */
123 uint32_t access_mask;
127 struct policy_handle *handle;/* [ref] */
134 struct winreg_OpenHKPD {
136 uint16_t *system_name;/* [unique] */
137 uint32_t access_mask;
141 struct policy_handle *handle;/* [ref] */
148 struct winreg_OpenHKU {
150 uint16_t *system_name;/* [unique] */
151 uint32_t access_mask;
155 struct policy_handle *handle;/* [ref] */
162 struct winreg_CloseKey {
164 struct policy_handle *handle;/* [ref] */
168 struct policy_handle *handle;/* [ref] */
175 struct winreg_CreateKey {
177 struct policy_handle *handle;/* [ref] */
178 struct winreg_String name;
179 struct winreg_String keyclass;
181 uint32_t access_mask;
182 struct winreg_SecBuf *secdesc;/* [unique] */
183 enum winreg_CreateAction *action_taken;/* [unique] */
187 struct policy_handle *new_handle;/* [ref] */
188 enum winreg_CreateAction *action_taken;/* [unique] */
195 struct winreg_DeleteKey {
197 struct policy_handle *handle;/* [ref] */
198 struct winreg_String key;
208 struct winreg_DeleteValue {
210 struct policy_handle *handle;/* [ref] */
211 struct winreg_String value;
221 struct winreg_EnumKey {
223 struct policy_handle *handle;/* [ref] */
225 struct winreg_StringBuf *name;/* [ref] */
226 struct winreg_StringBuf *keyclass;/* [unique] */
227 NTTIME *last_changed_time;/* [unique] */
231 struct winreg_StringBuf *name;/* [ref] */
232 struct winreg_StringBuf *keyclass;/* [unique] */
233 NTTIME *last_changed_time;/* [unique] */
240 struct winreg_EnumValue {
242 struct policy_handle *handle;/* [ref] */
244 struct winreg_ValNameBuf *name;/* [ref] */
245 enum winreg_Type *type;/* [unique] */
246 uint8_t *value;/* [unique,length_is(*length),size_is(*size)] */
247 uint32_t *size;/* [unique] */
248 uint32_t *length;/* [unique] */
252 struct winreg_ValNameBuf *name;/* [ref] */
253 enum winreg_Type *type;/* [unique] */
254 uint8_t *value;/* [unique,length_is(*length),size_is(*size)] */
255 uint32_t *size;/* [unique] */
256 uint32_t *length;/* [unique] */
263 struct winreg_FlushKey {
265 struct policy_handle *handle;/* [ref] */
275 struct winreg_GetKeySecurity {
277 struct policy_handle *handle;/* [ref] */
279 struct KeySecurityData *sd;/* [ref] */
283 struct KeySecurityData *sd;/* [ref] */
290 struct winreg_LoadKey {
292 struct policy_handle *handle;/* [ref] */
293 struct winreg_String *keyname;/* [unique] */
294 struct winreg_String *filename;/* [unique] */
304 struct winreg_NotifyChangeKeyValue {
306 struct policy_handle *handle;/* [ref] */
307 uint8_t watch_subtree;
308 uint32_t notify_filter;
310 struct winreg_String string1;
311 struct winreg_String string2;
322 struct winreg_OpenKey {
324 struct policy_handle *parent_handle;/* [ref] */
325 struct winreg_String keyname;
327 uint32_t access_mask;
331 struct policy_handle *handle;/* [ref] */
338 struct winreg_QueryInfoKey {
340 struct policy_handle *handle;/* [ref] */
341 struct winreg_String *classname;/* [ref] */
345 uint32_t *num_subkeys;/* [ref] */
346 uint32_t *max_subkeylen;/* [ref] */
347 uint32_t *max_classlen;/* [ref] */
348 uint32_t *num_values;/* [ref] */
349 uint32_t *max_valnamelen;/* [ref] */
350 uint32_t *max_valbufsize;/* [ref] */
351 uint32_t *secdescsize;/* [ref] */
352 NTTIME *last_changed_time;/* [ref] */
353 struct winreg_String *classname;/* [ref] */
360 struct winreg_QueryValue {
362 struct policy_handle *handle;/* [ref] */
363 struct winreg_String *value_name;/* [ref] */
364 enum winreg_Type *type;/* [unique] */
365 uint8_t *data;/* [unique,length_is(*data_length),size_is(*data_size)] */
366 uint32_t *data_size;/* [unique] */
367 uint32_t *data_length;/* [unique] */
371 enum winreg_Type *type;/* [unique] */
372 uint8_t *data;/* [unique,length_is(*data_length),size_is(*data_size)] */
373 uint32_t *data_size;/* [unique] */
374 uint32_t *data_length;/* [unique] */
381 struct winreg_ReplaceKey {
389 struct winreg_RestoreKey {
391 struct policy_handle *handle;/* [ref] */
392 struct winreg_String *filename;/* [ref] */
403 struct winreg_SaveKey {
405 struct policy_handle *handle;/* [ref] */
406 struct winreg_String *filename;/* [ref] */
407 struct KeySecurityAttribute *sec_attrib;/* [unique] */
417 struct winreg_SetKeySecurity {
419 struct policy_handle *handle;/* [ref] */
421 struct KeySecurityData *sd;/* [ref] */
431 struct winreg_SetValue {
433 struct policy_handle *handle;/* [ref] */
434 struct winreg_String name;
435 enum winreg_Type type;
436 uint8_t *data;/* [ref,size_is(size)] */
447 struct winreg_UnLoadKey {
455 struct winreg_InitiateSystemShutdown {
457 uint16_t *hostname;/* [unique] */
458 struct lsa_StringLarge *message;/* [unique] */
471 struct winreg_AbortSystemShutdown {
473 uint16_t *server;/* [unique] */
483 struct winreg_GetVersion {
485 struct policy_handle *handle;/* [ref] */
489 uint32_t *version;/* [ref] */
496 struct winreg_OpenHKCC {
498 uint16_t *system_name;/* [unique] */
499 uint32_t access_mask;
503 struct policy_handle *handle;/* [ref] */
510 struct winreg_OpenHKDD {
512 uint16_t *system_name;/* [unique] */
513 uint32_t access_mask;
517 struct policy_handle *handle;/* [ref] */
524 struct winreg_QueryMultipleValues {
526 struct policy_handle *key_handle;/* [ref] */
528 struct QueryMultipleValue *values;/* [ref,length_is(num_values),size_is(num_values)] */
529 uint8_t *buffer;/* [unique,length_is(*buffer_size),size_is(*buffer_size)] */
530 uint32_t *buffer_size;/* [ref] */
534 struct QueryMultipleValue *values;/* [ref,length_is(num_values),size_is(num_values)] */
535 uint8_t *buffer;/* [unique,length_is(*buffer_size),size_is(*buffer_size)] */
536 uint32_t *buffer_size;/* [ref] */
543 struct winreg_InitiateSystemShutdownEx {
545 uint16_t *hostname;/* [unique] */
546 struct lsa_StringLarge *message;/* [unique] */
560 struct winreg_SaveKeyEx {
568 struct winreg_OpenHKPT {
570 uint16_t *system_name;/* [unique] */
571 uint32_t access_mask;
575 struct policy_handle *handle;/* [ref] */
582 struct winreg_OpenHKPN {
584 uint16_t *system_name;/* [unique] */
585 uint32_t access_mask;
589 struct policy_handle *handle;/* [ref] */
596 struct winreg_QueryMultipleValues2 {
603 #endif /* _HEADER_winreg */