4 #include "reg_objects.h"
6 /* The following definitions come from registry/reg_api.c */
8 WERROR
reg_openhive(TALLOC_CTX
*mem_ctx
, const char *hive
,
10 const struct nt_user_token
*token
,
11 struct registry_key
**pkey
);
12 WERROR
reg_openkey(TALLOC_CTX
*mem_ctx
, struct registry_key
*parent
,
13 const char *name
, uint32 desired_access
,
14 struct registry_key
**pkey
);
15 WERROR
reg_enumkey(TALLOC_CTX
*mem_ctx
, struct registry_key
*key
,
16 uint32 idx
, char **name
, NTTIME
*last_write_time
);
17 WERROR
reg_enumvalue(TALLOC_CTX
*mem_ctx
, struct registry_key
*key
,
18 uint32 idx
, char **pname
, struct registry_value
**pval
);
19 WERROR
reg_queryvalue(TALLOC_CTX
*mem_ctx
, struct registry_key
*key
,
20 const char *name
, struct registry_value
**pval
);
21 WERROR
reg_queryinfokey(struct registry_key
*key
, uint32_t *num_subkeys
,
22 uint32_t *max_subkeylen
, uint32_t *max_subkeysize
,
23 uint32_t *num_values
, uint32_t *max_valnamelen
,
24 uint32_t *max_valbufsize
, uint32_t *secdescsize
,
25 NTTIME
*last_changed_time
);
26 WERROR
reg_createkey(TALLOC_CTX
*ctx
, struct registry_key
*parent
,
27 const char *subkeypath
, uint32 desired_access
,
28 struct registry_key
**pkey
,
29 enum winreg_CreateAction
*paction
);
30 WERROR
reg_deletekey(struct registry_key
*parent
, const char *path
);
31 WERROR
reg_setvalue(struct registry_key
*key
, const char *name
,
32 const struct registry_value
*val
);
33 WERROR
reg_deletevalue(struct registry_key
*key
, const char *name
);
34 WERROR
reg_getkeysecurity(TALLOC_CTX
*mem_ctx
, struct registry_key
*key
,
35 struct security_descriptor
**psecdesc
);
36 WERROR
reg_setkeysecurity(struct registry_key
*key
,
37 struct security_descriptor
*psecdesc
);
38 WERROR
reg_getversion(uint32_t *version
);
39 WERROR
reg_restorekey(struct registry_key
*key
, const char *fname
);
40 WERROR
reg_savekey(struct registry_key
*key
, const char *fname
);
41 WERROR
reg_deleteallvalues(struct registry_key
*key
);
42 WERROR
reg_open_path(TALLOC_CTX
*mem_ctx
, const char *orig_path
,
43 uint32 desired_access
, const struct nt_user_token
*token
,
44 struct registry_key
**pkey
);
45 WERROR
reg_deletekey_recursive(TALLOC_CTX
*ctx
,
46 struct registry_key
*parent
,
48 WERROR
reg_deletesubkeys_recursive(TALLOC_CTX
*ctx
,
49 struct registry_key
*parent
,
51 WERROR
reg_create_path(TALLOC_CTX
*mem_ctx
, const char *orig_path
,
52 uint32 desired_access
,
53 const struct nt_user_token
*token
,
54 enum winreg_CreateAction
*paction
,
55 struct registry_key
**pkey
);
56 WERROR
reg_delete_path(const struct nt_user_token
*token
,
57 const char *orig_path
);
59 /* The following definitions come from registry/reg_backend_db.c */
61 WERROR
init_registry_key(const char *add_path
);
62 WERROR
init_registry_data(void);
63 WERROR
regdb_init(void);
64 WERROR
regdb_open( void );
65 int regdb_close( void );
66 WERROR
regdb_transaction_start(void);
67 WERROR
regdb_transaction_commit(void);
68 WERROR
regdb_transaction_cancel(void);
69 int regdb_get_seqnum(void);
70 bool regdb_store_keys(const char *key
, struct regsubkey_ctr
*ctr
);
71 int regdb_fetch_keys(const char *key
, struct regsubkey_ctr
*ctr
);
72 int regdb_fetch_values(const char* key
, struct regval_ctr
*values
);
73 bool regdb_store_values(const char *key
, struct regval_ctr
*values
);
74 bool regdb_subkeys_need_update(struct regsubkey_ctr
*subkeys
);
75 bool regdb_values_need_update(struct regval_ctr
*values
);
77 /* The following definitions come from registry/reg_dispatcher.c */
79 bool store_reg_keys(struct registry_key_handle
*key
,
80 struct regsubkey_ctr
*subkeys
);
81 bool store_reg_values(struct registry_key_handle
*key
, struct regval_ctr
*val
);
82 WERROR
create_reg_subkey(struct registry_key_handle
*key
, const char *subkey
);
83 WERROR
delete_reg_subkey(struct registry_key_handle
*key
, const char *subkey
);
84 int fetch_reg_keys(struct registry_key_handle
*key
,
85 struct regsubkey_ctr
*subkey_ctr
);
86 int fetch_reg_values(struct registry_key_handle
*key
, struct regval_ctr
*val
);
87 bool regkey_access_check(struct registry_key_handle
*key
, uint32 requested
,
89 const struct nt_user_token
*token
);
90 WERROR
regkey_get_secdesc(TALLOC_CTX
*mem_ctx
, struct registry_key_handle
*key
,
91 struct security_descriptor
**psecdesc
);
92 WERROR
regkey_set_secdesc(struct registry_key_handle
*key
,
93 struct security_descriptor
*psecdesc
);
94 bool reg_subkeys_need_update(struct registry_key_handle
*key
,
95 struct regsubkey_ctr
*subkeys
);
96 bool reg_values_need_update(struct registry_key_handle
*key
,
97 struct regval_ctr
*values
);
99 /* The following definitions come from registry/reg_eventlog.c */
101 bool eventlog_init_keys(void);
102 bool eventlog_add_source( const char *eventlog
, const char *sourcename
,
103 const char *messagefile
);
105 /* The following definitions come from registry/reg_init_basic.c */
107 WERROR
registry_init_common(void);
108 WERROR
registry_init_basic(void);
110 /* The following definitions come from registry/reg_init_full.c */
112 WERROR
registry_init_full(void);
114 /* The following definitions come from registry/reg_init_smbconf.c */
116 NTSTATUS
registry_create_admin_token(TALLOC_CTX
*mem_ctx
,
117 NT_USER_TOKEN
**ptoken
);
118 WERROR
registry_init_smbconf(const char *keyname
);
120 /* The following definitions come from registry/reg_perfcount.c */
122 void perfcount_init_keys( void );
123 uint32
reg_perfcount_get_base_index(void);
124 uint32
reg_perfcount_get_last_counter(uint32 base_index
);
125 uint32
reg_perfcount_get_last_help(uint32 last_counter
);
126 uint32
reg_perfcount_get_counter_help(uint32 base_index
, char **retbuf
);
127 uint32
reg_perfcount_get_counter_names(uint32 base_index
, char **retbuf
);
128 WERROR
reg_perfcount_get_hkpd(prs_struct
*ps
, uint32 max_buf_size
, uint32
*outbuf_len
, const char *object_ids
);
130 /* The following definitions come from registry/reg_util.c */
132 bool reg_split_path(char *path
, char **base
, char **new_path
);
133 bool reg_split_key(char *path
, char **base
, char **key
);
134 char *normalize_reg_path(TALLOC_CTX
*ctx
, const char *keyname
);
135 void normalize_dbkey(char *key
);
136 char *reg_remaining_path(TALLOC_CTX
*ctx
, const char *key
);
138 /* The following definitions come from lib/util_reg_api.c */
140 WERROR
registry_pull_value(TALLOC_CTX
*mem_ctx
,
141 struct registry_value
**pvalue
,
142 enum winreg_Type type
, uint8
*data
,
143 uint32 size
, uint32 length
);
144 WERROR
registry_push_value(TALLOC_CTX
*mem_ctx
,
145 const struct registry_value
*value
,
148 #endif /* _REGISTRY_H */