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"
10 #define _HEADER_winreg
12 #define REG_KEY_READ ( (STANDARD_RIGHTS_READ_ACCESS|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY) )
13 #define REG_KEY_EXECUTE ( REG_KEY_READ )
14 #define REG_KEY_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|KEY_SET_VALUE|KEY_CREATE_SUB_KEY) )
15 #define REG_KEY_ALL ( (STANDARD_RIGHTS_REQUIRED_ACCESS|REG_KEY_READ|REG_KEY_WRITE|KEY_CREATE_LINK) )
16 /* bitmap winreg_AccessMask */
17 #define KEY_QUERY_VALUE ( 0x00001 )
18 #define KEY_SET_VALUE ( 0x00002 )
19 #define KEY_CREATE_SUB_KEY ( 0x00004 )
20 #define KEY_ENUMERATE_SUB_KEYS ( 0x00008 )
21 #define KEY_NOTIFY ( 0x00010 )
22 #define KEY_CREATE_LINK ( 0x00020 )
23 #define KEY_WOW64_64KEY ( 0x00100 )
24 #define KEY_WOW64_32KEY ( 0x00200 )
27 #ifndef USE_UINT_ENUMS
34 REG_DWORD_BIG_ENDIAN
=5,
38 REG_FULL_RESOURCE_DESCRIPTOR
=9,
39 REG_RESOURCE_REQUIREMENTS_LIST
=10,
43 { __donnot_use_enum_winreg_Type
=0x7FFFFFFF}
44 #define REG_NONE ( 0 )
46 #define REG_EXPAND_SZ ( 2 )
47 #define REG_BINARY ( 3 )
48 #define REG_DWORD ( 4 )
49 #define REG_DWORD_BIG_ENDIAN ( 5 )
50 #define REG_LINK ( 6 )
51 #define REG_MULTI_SZ ( 7 )
52 #define REG_RESOURCE_LIST ( 8 )
53 #define REG_FULL_RESOURCE_DESCRIPTOR ( 9 )
54 #define REG_RESOURCE_REQUIREMENTS_LIST ( 10 )
55 #define REG_QWORD ( 11 )
59 struct winreg_String
{
60 uint16_t name_len
;/* [value(strlen_m_term(name)*2)] */
61 uint16_t name_size
;/* [value(strlen_m_term(name)*2)] */
62 const char *name
;/* [unique,charset(UTF16)] */
65 struct KeySecurityData
{
66 uint8_t *data
;/* [unique,length_is(len),size_is(size)] */
71 struct winreg_SecBuf
{
73 struct KeySecurityData sd
;
77 enum winreg_CreateAction
78 #ifndef USE_UINT_ENUMS
81 REG_CREATED_NEW_KEY
=1,
82 REG_OPENED_EXISTING_KEY
=2
85 { __donnot_use_enum_winreg_CreateAction
=0x7FFFFFFF}
86 #define REG_ACTION_NONE ( 0 )
87 #define REG_CREATED_NEW_KEY ( 1 )
88 #define REG_OPENED_EXISTING_KEY ( 2 )
92 struct winreg_StringBuf
{
93 uint16_t length
;/* [value(strlen_m_term_null(name)*2)] */
95 const char *name
;/* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
98 struct winreg_ValNameBuf
{
99 uint16_t length
;/* [value(strlen_m_term(name)*2)] */
101 const char *name
;/* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
104 /* bitmap winreg_NotifyChangeType */
105 #define REG_NOTIFY_CHANGE_NAME ( 0x00000001 )
106 #define REG_NOTIFY_CHANGE_ATTRIBUTES ( 0x00000002 )
107 #define REG_NOTIFY_CHANGE_LAST_SET ( 0x00000004 )
108 #define REG_NOTIFY_CHANGE_SECURITY ( 0x00000008 )
110 struct KeySecurityAttribute
{
112 struct KeySecurityData sec_data
;
116 struct QueryMultipleValue
{
117 struct winreg_String
*name
;/* [unique] */
118 enum winreg_Type type
;
124 struct winreg_OpenHKCR
{
126 uint16_t *system_name
;/* [unique] */
127 uint32_t access_mask
;
131 struct policy_handle
*handle
;/* [ref] */
138 struct winreg_OpenHKCU
{
140 uint16_t *system_name
;/* [unique] */
141 uint32_t access_mask
;
145 struct policy_handle
*handle
;/* [ref] */
152 struct winreg_OpenHKLM
{
154 uint16_t *system_name
;/* [unique] */
155 uint32_t access_mask
;
159 struct policy_handle
*handle
;/* [ref] */
166 struct winreg_OpenHKPD
{
168 uint16_t *system_name
;/* [unique] */
169 uint32_t access_mask
;
173 struct policy_handle
*handle
;/* [ref] */
180 struct winreg_OpenHKU
{
182 uint16_t *system_name
;/* [unique] */
183 uint32_t access_mask
;
187 struct policy_handle
*handle
;/* [ref] */
194 struct winreg_CloseKey
{
196 struct policy_handle
*handle
;/* [ref] */
200 struct policy_handle
*handle
;/* [ref] */
207 struct winreg_CreateKey
{
209 struct policy_handle
*handle
;/* [ref] */
210 struct winreg_String name
;
211 struct winreg_String keyclass
;
213 uint32_t access_mask
;
214 struct winreg_SecBuf
*secdesc
;/* [unique] */
215 enum winreg_CreateAction
*action_taken
;/* [unique] */
219 struct policy_handle
*new_handle
;/* [ref] */
220 enum winreg_CreateAction
*action_taken
;/* [unique] */
227 struct winreg_DeleteKey
{
229 struct policy_handle
*handle
;/* [ref] */
230 struct winreg_String key
;
240 struct winreg_DeleteValue
{
242 struct policy_handle
*handle
;/* [ref] */
243 struct winreg_String value
;
253 struct winreg_EnumKey
{
255 struct policy_handle
*handle
;/* [ref] */
257 struct winreg_StringBuf
*name
;/* [ref] */
258 struct winreg_StringBuf
*keyclass
;/* [unique] */
259 NTTIME
*last_changed_time
;/* [unique] */
263 struct winreg_StringBuf
*name
;/* [ref] */
264 struct winreg_StringBuf
*keyclass
;/* [unique] */
265 NTTIME
*last_changed_time
;/* [unique] */
272 struct winreg_EnumValue
{
274 struct policy_handle
*handle
;/* [ref] */
276 struct winreg_ValNameBuf
*name
;/* [ref] */
277 enum winreg_Type
*type
;/* [unique] */
278 uint8_t *value
;/* [unique,length_is(*length),size_is(*size)] */
279 uint32_t *size
;/* [unique] */
280 uint32_t *length
;/* [unique] */
284 struct winreg_ValNameBuf
*name
;/* [ref] */
285 enum winreg_Type
*type
;/* [unique] */
286 uint8_t *value
;/* [unique,length_is(*length),size_is(*size)] */
287 uint32_t *size
;/* [unique] */
288 uint32_t *length
;/* [unique] */
295 struct winreg_FlushKey
{
297 struct policy_handle
*handle
;/* [ref] */
307 struct winreg_GetKeySecurity
{
309 struct policy_handle
*handle
;/* [ref] */
311 struct KeySecurityData
*sd
;/* [ref] */
315 struct KeySecurityData
*sd
;/* [ref] */
322 struct winreg_LoadKey
{
324 struct policy_handle
*handle
;/* [ref] */
325 struct winreg_String
*keyname
;/* [unique] */
326 struct winreg_String
*filename
;/* [unique] */
336 struct winreg_NotifyChangeKeyValue
{
338 struct policy_handle
*handle
;/* [ref] */
339 uint8_t watch_subtree
;
340 uint32_t notify_filter
;
342 struct winreg_String string1
;
343 struct winreg_String string2
;
354 struct winreg_OpenKey
{
356 struct policy_handle
*parent_handle
;/* [ref] */
357 struct winreg_String keyname
;
359 uint32_t access_mask
;
363 struct policy_handle
*handle
;/* [ref] */
370 struct winreg_QueryInfoKey
{
372 struct policy_handle
*handle
;/* [ref] */
373 struct winreg_String
*classname
;/* [ref] */
377 uint32_t *num_subkeys
;/* [ref] */
378 uint32_t *max_subkeylen
;/* [ref] */
379 uint32_t *max_classlen
;/* [ref] */
380 uint32_t *num_values
;/* [ref] */
381 uint32_t *max_valnamelen
;/* [ref] */
382 uint32_t *max_valbufsize
;/* [ref] */
383 uint32_t *secdescsize
;/* [ref] */
384 NTTIME
*last_changed_time
;/* [ref] */
385 struct winreg_String
*classname
;/* [ref] */
392 struct winreg_QueryValue
{
394 struct policy_handle
*handle
;/* [ref] */
395 struct winreg_String
*value_name
;/* [ref] */
396 enum winreg_Type
*type
;/* [unique] */
397 uint8_t *data
;/* [unique,length_is(*data_length),size_is(*data_size)] */
398 uint32_t *data_size
;/* [unique] */
399 uint32_t *data_length
;/* [unique] */
403 enum winreg_Type
*type
;/* [unique] */
404 uint8_t *data
;/* [unique,length_is(*data_length),size_is(*data_size)] */
405 uint32_t *data_size
;/* [unique] */
406 uint32_t *data_length
;/* [unique] */
413 struct winreg_ReplaceKey
{
421 struct winreg_RestoreKey
{
423 struct policy_handle
*handle
;/* [ref] */
424 struct winreg_String
*filename
;/* [ref] */
435 struct winreg_SaveKey
{
437 struct policy_handle
*handle
;/* [ref] */
438 struct winreg_String
*filename
;/* [ref] */
439 struct KeySecurityAttribute
*sec_attrib
;/* [unique] */
449 struct winreg_SetKeySecurity
{
451 struct policy_handle
*handle
;/* [ref] */
453 struct KeySecurityData
*sd
;/* [ref] */
463 struct winreg_SetValue
{
465 struct policy_handle
*handle
;/* [ref] */
466 struct winreg_String name
;
467 enum winreg_Type type
;
468 uint8_t *data
;/* [ref,size_is(size)] */
479 struct winreg_UnLoadKey
{
487 struct winreg_InitiateSystemShutdown
{
489 uint16_t *hostname
;/* [unique] */
490 struct lsa_StringLarge
*message
;/* [unique] */
503 struct winreg_AbortSystemShutdown
{
505 uint16_t *server
;/* [unique] */
515 struct winreg_GetVersion
{
517 struct policy_handle
*handle
;/* [ref] */
521 uint32_t *version
;/* [ref] */
528 struct winreg_OpenHKCC
{
530 uint16_t *system_name
;/* [unique] */
531 uint32_t access_mask
;
535 struct policy_handle
*handle
;/* [ref] */
542 struct winreg_OpenHKDD
{
544 uint16_t *system_name
;/* [unique] */
545 uint32_t access_mask
;
549 struct policy_handle
*handle
;/* [ref] */
556 struct winreg_QueryMultipleValues
{
558 struct policy_handle
*key_handle
;/* [ref] */
560 struct QueryMultipleValue
*values
;/* [ref,length_is(num_values),size_is(num_values)] */
561 uint8_t *buffer
;/* [unique,length_is(*buffer_size),size_is(*buffer_size)] */
562 uint32_t *buffer_size
;/* [ref] */
566 struct QueryMultipleValue
*values
;/* [ref,length_is(num_values),size_is(num_values)] */
567 uint8_t *buffer
;/* [unique,length_is(*buffer_size),size_is(*buffer_size)] */
568 uint32_t *buffer_size
;/* [ref] */
575 struct winreg_InitiateSystemShutdownEx
{
577 uint16_t *hostname
;/* [unique] */
578 struct lsa_StringLarge
*message
;/* [unique] */
592 struct winreg_SaveKeyEx
{
600 struct winreg_OpenHKPT
{
602 uint16_t *system_name
;/* [unique] */
603 uint32_t access_mask
;
607 struct policy_handle
*handle
;/* [ref] */
614 struct winreg_OpenHKPN
{
616 uint16_t *system_name
;/* [unique] */
617 uint32_t access_mask
;
621 struct policy_handle
*handle
;/* [ref] */
628 struct winreg_QueryMultipleValues2
{
635 #endif /* _HEADER_winreg */