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,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
366 uint32_t *data_size
;/* [unique] */
367 uint32_t *data_length
;/* [unique] */
371 enum winreg_Type
*type
;/* [unique] */
372 uint8_t *data
;/* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
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 */