2006-09-15 22:32:43 +04:00
/* header auto-generated by pidl */
2007-02-16 17:50:57 +03:00
# include <stdint.h>
2009-02-25 17:22:08 +03:00
# include "libcli/util/ntstatus.h"
2006-09-15 22:32:43 +04:00
# include "librpc/gen_ndr/lsa.h"
# include "librpc/gen_ndr/security.h"
2009-09-23 22:41:44 +04:00
# include "librpc/gen_ndr/misc.h"
2006-11-07 02:20:35 +03:00
# ifndef _HEADER_winreg
# define _HEADER_winreg
2009-04-15 03:30:12 +04:00
# define REG_KEY_READ ( (STANDARD_RIGHTS_READ_ACCESS|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY) )
# define REG_KEY_EXECUTE ( REG_KEY_READ )
# define REG_KEY_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|KEY_SET_VALUE|KEY_CREATE_SUB_KEY) )
# define REG_KEY_ALL ( (STANDARD_RIGHTS_REQUIRED_ACCESS|REG_KEY_READ|REG_KEY_WRITE|KEY_CREATE_LINK) )
2006-09-15 22:32:43 +04:00
/* bitmap winreg_AccessMask */
2007-02-16 17:50:57 +03:00
# define KEY_QUERY_VALUE ( 0x00001 )
# define KEY_SET_VALUE ( 0x00002 )
# define KEY_CREATE_SUB_KEY ( 0x00004 )
# define KEY_ENUMERATE_SUB_KEYS ( 0x00008 )
# define KEY_NOTIFY ( 0x00010 )
# define KEY_CREATE_LINK ( 0x00020 )
# define KEY_WOW64_64KEY ( 0x00100 )
# define KEY_WOW64_32KEY ( 0x00200 )
2006-09-15 22:32:43 +04:00
struct winreg_String {
2006-09-20 02:22:57 +04:00
uint16_t name_len ; /* [value(strlen_m_term(name)*2)] */
uint16_t name_size ; /* [value(strlen_m_term(name)*2)] */
const char * name ; /* [unique,charset(UTF16)] */
2008-12-12 22:20:01 +03:00
} /* [public] */ ;
2006-09-15 22:32:43 +04:00
struct KeySecurityData {
2006-09-20 02:22:57 +04:00
uint8_t * data ; /* [unique,length_is(len),size_is(size)] */
uint32_t size ;
uint32_t len ;
2006-09-15 22:32:43 +04:00
} ;
struct winreg_SecBuf {
2006-09-20 02:22:57 +04:00
uint32_t length ;
struct KeySecurityData sd ;
uint8_t inherit ;
2006-09-15 22:32:43 +04:00
} ;
2010-03-11 22:20:48 +03:00
enum winreg_KeyType
# ifndef USE_UINT_ENUMS
{
REG_KEYTYPE_NON_VOLATILE = ( int ) ( 0x00000000 ) ,
REG_KEYTYPE_VOLATILE = ( int ) ( 0x00000001 ) ,
REG_KEYTYPE_SYMLINK = ( int ) ( 0x00000002 )
}
# else
{ __donnot_use_enum_winreg_KeyType = 0x7FFFFFFF }
# define REG_KEYTYPE_NON_VOLATILE ( 0x00000000 )
# define REG_KEYTYPE_VOLATILE ( 0x00000001 )
# define REG_KEYTYPE_SYMLINK ( 0x00000002 )
# endif
;
2008-01-13 03:22:23 +03:00
enum winreg_CreateAction
2007-02-07 02:02:27 +03:00
# ifndef USE_UINT_ENUMS
2008-01-13 03:22:23 +03:00
{
2009-09-17 22:28:37 +04:00
REG_ACTION_NONE = ( int ) ( 0 ) ,
REG_CREATED_NEW_KEY = ( int ) ( 1 ) ,
REG_OPENED_EXISTING_KEY = ( int ) ( 2 )
2007-02-27 20:17:16 +03:00
}
2007-02-07 02:02:27 +03:00
# else
2008-01-13 03:22:23 +03:00
{ __donnot_use_enum_winreg_CreateAction = 0x7FFFFFFF }
2007-02-07 02:02:27 +03:00
# define REG_ACTION_NONE ( 0 )
# define REG_CREATED_NEW_KEY ( 1 )
# define REG_OPENED_EXISTING_KEY ( 2 )
# endif
2007-02-27 20:17:16 +03:00
;
2006-09-15 22:32:43 +04:00
struct winreg_StringBuf {
2009-01-16 01:24:52 +03:00
uint16_t length ; /* [value(strlen_m_term_null(name)*2)] */
uint16_t size ;
const char * name ; /* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
} ;
struct winreg_ValNameBuf {
2006-11-27 10:52:46 +03:00
uint16_t length ; /* [value(strlen_m_term(name)*2)] */
uint16_t size ;
const char * name ; /* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
} ;
2008-10-15 18:13:02 +04:00
/* bitmap winreg_NotifyChangeType */
# define REG_NOTIFY_CHANGE_NAME ( 0x00000001 )
# define REG_NOTIFY_CHANGE_ATTRIBUTES ( 0x00000002 )
# define REG_NOTIFY_CHANGE_LAST_SET ( 0x00000004 )
# define REG_NOTIFY_CHANGE_SECURITY ( 0x00000008 )
2006-09-27 20:05:25 +04:00
struct KeySecurityAttribute {
uint32_t data_size ;
struct KeySecurityData sec_data ;
uint8_t inherit ;
} ;
2006-09-15 22:32:43 +04:00
struct QueryMultipleValue {
2006-09-20 02:22:57 +04:00
struct winreg_String * name ; /* [unique] */
enum winreg_Type type ;
uint32_t offset ;
uint32_t length ;
2006-09-15 22:32:43 +04:00
} ;
struct winreg_OpenHKCR {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKCU {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKLM {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKPD {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKU {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_CloseKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_CreateKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
struct winreg_String name ;
struct winreg_String keyclass ;
2010-03-11 22:20:48 +03:00
enum winreg_KeyType options ;
2006-09-20 02:22:57 +04:00
uint32_t access_mask ;
struct winreg_SecBuf * secdesc ; /* [unique] */
2006-11-28 16:09:32 +03:00
enum winreg_CreateAction * action_taken ; /* [unique] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * new_handle ; /* [ref] */
2006-11-28 16:09:32 +03:00
enum winreg_CreateAction * action_taken ; /* [unique] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_DeleteKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
struct winreg_String key ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_DeleteValue {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
struct winreg_String value ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_EnumKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
uint32_t enum_index ;
struct winreg_StringBuf * name ; /* [ref] */
2006-11-28 16:09:32 +03:00
struct winreg_StringBuf * keyclass ; /* [unique] */
NTTIME * last_changed_time ; /* [unique] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct winreg_StringBuf * name ; /* [ref] */
2006-11-28 16:09:32 +03:00
struct winreg_StringBuf * keyclass ; /* [unique] */
NTTIME * last_changed_time ; /* [unique] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_EnumValue {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
uint32_t enum_index ;
2009-01-16 01:24:52 +03:00
struct winreg_ValNameBuf * name ; /* [ref] */
2006-09-20 02:22:57 +04:00
enum winreg_Type * type ; /* [unique] */
2007-02-20 16:43:41 +03:00
uint8_t * value ; /* [unique,length_is(*length),size_is(*size)] */
2007-02-16 17:50:57 +03:00
uint32_t * size ; /* [unique] */
uint32_t * length ; /* [unique] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2009-01-16 01:24:52 +03:00
struct winreg_ValNameBuf * name ; /* [ref] */
2006-09-20 02:22:57 +04:00
enum winreg_Type * type ; /* [unique] */
2007-02-20 16:43:41 +03:00
uint8_t * value ; /* [unique,length_is(*length),size_is(*size)] */
2007-02-16 17:50:57 +03:00
uint32_t * size ; /* [unique] */
uint32_t * length ; /* [unique] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_FlushKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_GetKeySecurity {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
uint32_t sec_info ;
struct KeySecurityData * sd ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct KeySecurityData * sd ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_LoadKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
struct winreg_String * keyname ; /* [unique] */
struct winreg_String * filename ; /* [unique] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_NotifyChangeKeyValue {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
uint8_t watch_subtree ;
uint32_t notify_filter ;
uint32_t unknown ;
struct winreg_String string1 ;
struct winreg_String string2 ;
uint32_t unknown2 ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_OpenKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * parent_handle ; /* [ref] */
struct winreg_String keyname ;
2010-03-11 22:20:48 +03:00
enum winreg_KeyType options ;
2006-09-20 02:22:57 +04:00
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_QueryInfoKey {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-27 01:01:57 +04:00
struct winreg_String * classname ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
uint32_t * num_subkeys ; /* [ref] */
uint32_t * max_subkeylen ; /* [ref] */
2006-09-29 01:19:08 +04:00
uint32_t * max_classlen ; /* [ref] */
2006-09-20 02:22:57 +04:00
uint32_t * num_values ; /* [ref] */
uint32_t * max_valnamelen ; /* [ref] */
uint32_t * max_valbufsize ; /* [ref] */
uint32_t * secdescsize ; /* [ref] */
NTTIME * last_changed_time ; /* [ref] */
2007-02-16 17:50:57 +03:00
struct winreg_String * classname ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_QueryValue {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2008-03-24 13:48:16 +03:00
struct winreg_String * value_name ; /* [ref] */
2006-09-20 02:22:57 +04:00
enum winreg_Type * type ; /* [unique] */
2010-03-06 00:03:26 +03:00
uint8_t * data ; /* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
2006-09-26 23:37:37 +04:00
uint32_t * data_size ; /* [unique] */
2008-10-15 23:32:49 +04:00
uint32_t * data_length ; /* [unique] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
enum winreg_Type * type ; /* [unique] */
2010-03-06 00:03:26 +03:00
uint8_t * data ; /* [unique,range(0,0x4000000),length_is(data_length?*data_length:0),size_is(data_size?*data_size:0)] */
2006-09-26 23:37:37 +04:00
uint32_t * data_size ; /* [unique] */
2008-10-15 23:32:49 +04:00
uint32_t * data_length ; /* [unique] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_ReplaceKey {
struct {
WERROR result ;
} out ;
} ;
struct winreg_RestoreKey {
2006-09-27 20:05:25 +04:00
struct {
struct policy_handle * handle ; /* [ref] */
struct winreg_String * filename ; /* [ref] */
uint32_t flags ;
} in ;
2006-09-15 22:32:43 +04:00
struct {
WERROR result ;
} out ;
} ;
struct winreg_SaveKey {
2006-09-27 20:05:25 +04:00
struct {
struct policy_handle * handle ; /* [ref] */
struct winreg_String * filename ; /* [ref] */
struct KeySecurityAttribute * sec_attrib ; /* [unique] */
} in ;
2006-09-15 22:32:43 +04:00
struct {
WERROR result ;
} out ;
} ;
struct winreg_SetKeySecurity {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2008-10-18 00:53:11 +04:00
uint32_t sec_info ;
2006-09-20 02:22:57 +04:00
struct KeySecurityData * sd ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_SetValue {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
struct winreg_String name ;
enum winreg_Type type ;
uint8_t * data ; /* [ref,size_is(size)] */
uint32_t size ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_UnLoadKey {
struct {
WERROR result ;
} out ;
} ;
struct winreg_InitiateSystemShutdown {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * hostname ; /* [unique] */
2008-10-15 18:13:02 +04:00
struct lsa_StringLarge * message ; /* [unique] */
2006-09-20 02:22:57 +04:00
uint32_t timeout ;
uint8_t force_apps ;
2008-10-15 18:25:06 +04:00
uint8_t do_reboot ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_AbortSystemShutdown {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * server ; /* [unique] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_GetVersion {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
uint32_t * version ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKCC {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKDD {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_QueryMultipleValues {
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * key_handle ; /* [ref] */
uint32_t num_values ;
2007-02-16 17:50:57 +03:00
struct QueryMultipleValue * values ; /* [ref,length_is(num_values),size_is(num_values)] */
2006-09-20 02:22:57 +04:00
uint8_t * buffer ; /* [unique,length_is(*buffer_size),size_is(*buffer_size)] */
uint32_t * buffer_size ; /* [ref] */
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct QueryMultipleValue * values ; /* [ref,length_is(num_values),size_is(num_values)] */
uint8_t * buffer ; /* [unique,length_is(*buffer_size),size_is(*buffer_size)] */
uint32_t * buffer_size ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_InitiateSystemShutdownEx {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * hostname ; /* [unique] */
2008-10-15 18:13:02 +04:00
struct lsa_StringLarge * message ; /* [unique] */
2006-09-20 02:22:57 +04:00
uint32_t timeout ;
uint8_t force_apps ;
2008-10-15 18:25:06 +04:00
uint8_t do_reboot ;
2006-09-20 02:22:57 +04:00
uint32_t reason ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
WERROR result ;
} out ;
} ;
struct winreg_SaveKeyEx {
struct {
WERROR result ;
} out ;
} ;
struct winreg_OpenHKPT {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_OpenHKPN {
struct {
2006-09-20 02:22:57 +04:00
uint16_t * system_name ; /* [unique] */
uint32_t access_mask ;
2006-09-15 22:32:43 +04:00
} in ;
struct {
2006-09-20 02:22:57 +04:00
struct policy_handle * handle ; /* [ref] */
2006-09-15 22:32:43 +04:00
WERROR result ;
} out ;
} ;
struct winreg_QueryMultipleValues2 {
struct {
WERROR result ;
} out ;
} ;
# endif /* _HEADER_winreg */