📄 registry.h
字号:
struct registry_key{ struct registry_context *context;};struct registry_value{ const char *name; unsigned int data_type; DATA_BLOB data;};/* FIXME */typedef void (*reg_key_notification_function) (void);typedef void (*reg_value_notification_function) (void);struct cli_credentials;struct registry_operations { const char *name; WERROR (*get_key_info) (TALLOC_CTX *mem_ctx, const struct registry_key *key, const char **classname, uint32_t *numsubkeys, uint32_t *numvalues, NTTIME *last_change_time, uint32_t *max_subkeynamelen, uint32_t *max_valnamelen, uint32_t *max_valbufsize); WERROR (*flush_key) (struct registry_key *key); WERROR (*get_predefined_key) (struct registry_context *ctx, uint32_t key_id, struct registry_key **key); WERROR (*open_key) (TALLOC_CTX *mem_ctx, struct registry_key *parent, const char *path, struct registry_key **key); WERROR (*create_key) (TALLOC_CTX *mem_ctx, struct registry_key *parent, const char *name, const char *key_class, struct security_descriptor *security, struct registry_key **key); WERROR (*delete_key) (struct registry_key *key, const char *name); WERROR (*delete_value) (struct registry_key *key, const char *name); WERROR (*enum_key) (TALLOC_CTX *mem_ctx, const struct registry_key *key, uint32_t idx, const char **name, const char **keyclass, NTTIME *last_changed_time); WERROR (*enum_value) (TALLOC_CTX *mem_ctx, const struct registry_key *key, uint32_t idx, const char **name, uint32_t *type, DATA_BLOB *data); WERROR (*get_sec_desc) (TALLOC_CTX *mem_ctx, const struct registry_key *key, struct security_descriptor **security); WERROR (*set_sec_desc) (struct registry_key *key, const struct security_descriptor *security); WERROR (*load_key) (struct registry_key *key, const char *key_name, const char *path); WERROR (*unload_key) (struct registry_key *key, const char *name); WERROR (*notify_value_change) (struct registry_key *key, reg_value_notification_function fn); WERROR (*get_value) (TALLOC_CTX *mem_ctx, const struct registry_key *key, const char *name, uint32_t *type, DATA_BLOB *data); WERROR (*set_value) (struct registry_key *key, const char *name, uint32_t type, const DATA_BLOB data);};/** * Handle to a full registry * contains zero or more hives */struct registry_context { const struct registry_operations *ops;};struct auth_session_info;struct event_context;struct loadparm_context;/** * Open the locally defined registry. */WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx);WERROR reg_open_samba(TALLOC_CTX *mem_ctx, struct registry_context **ctx, struct event_context *ev_ctx, struct loadparm_context *lp_ctx, struct auth_session_info *session_info, struct cli_credentials *credentials);/** * Open the registry on a remote machine. */WERROR reg_open_remote(struct registry_context **ctx, struct auth_session_info *session_info, struct cli_credentials *credentials, struct loadparm_context *lp_ctx, const char *location, struct event_context *ev);WERROR reg_open_wine(struct registry_context **ctx, const char *path);const char *reg_get_predef_name(uint32_t hkey);WERROR reg_get_predefined_key_by_name(struct registry_context *ctx, const char *name, struct registry_key **key);WERROR reg_get_predefined_key(struct registry_context *ctx, uint32_t hkey, struct registry_key **key);WERROR reg_open_key(TALLOC_CTX *mem_ctx, struct registry_key *parent, const char *name, struct registry_key **result);WERROR reg_key_get_value_by_index(TALLOC_CTX *mem_ctx, const struct registry_key *key, uint32_t idx, const char **name, uint32_t *type, DATA_BLOB *data);WERROR reg_key_get_info(TALLOC_CTX *mem_ctx, const struct registry_key *key, const char **class_name, uint32_t *num_subkeys, uint32_t *num_values, NTTIME *last_change_time, uint32_t *max_subkeynamelen, uint32_t *max_valnamelen, uint32_t *max_valbufsize);WERROR reg_key_get_subkey_by_index(TALLOC_CTX *mem_ctx, const struct registry_key *key, int idx, const char **name, const char **classname, NTTIME *last_mod_time);WERROR reg_key_get_subkey_by_name(TALLOC_CTX *mem_ctx, const struct registry_key *key, const char *name, struct registry_key **subkey);WERROR reg_key_get_value_by_name(TALLOC_CTX *mem_ctx, const struct registry_key *key, const char *name, uint32_t *type, DATA_BLOB *data);WERROR reg_key_del(struct registry_key *parent, const char *name);WERROR reg_key_add_name(TALLOC_CTX *mem_ctx, struct registry_key *parent, const char *name, const char *classname, struct security_descriptor *desc, struct registry_key **newkey);WERROR reg_val_set(struct registry_key *key, const char *value, uint32_t type, DATA_BLOB data);WERROR reg_get_sec_desc(TALLOC_CTX *ctx, const struct registry_key *key, struct security_descriptor **secdesc);WERROR reg_del_value(struct registry_key *key, const char *valname);WERROR reg_key_flush(struct registry_key *key);WERROR reg_create_key(TALLOC_CTX *mem_ctx, struct registry_key *parent, const char *name, const char *key_class, struct security_descriptor *security, struct registry_key **key);/* Utility functions */const char *str_regtype(int type);char *reg_val_data_string(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t type, const DATA_BLOB data);char *reg_val_description(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const char *name, uint32_t type, const DATA_BLOB data);bool reg_string_to_val(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const char *type_str, const char *data_str, uint32_t *type, DATA_BLOB *data);WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle, const char *name, struct registry_key **result);WERROR reg_key_del_abs(struct registry_context *ctx, const char *path);WERROR reg_key_add_abs(TALLOC_CTX *mem_ctx, struct registry_context *ctx, const char *path, uint32_t access_mask, struct security_descriptor *sec_desc, struct registry_key **result);WERROR reg_load_key(struct registry_context *ctx, struct registry_key *key, const char *name, const char *filename);WERROR reg_mount_hive(struct registry_context *rctx, struct hive_key *hive_key, uint32_t key_id, const char **elements);struct registry_key *reg_import_hive_key(struct registry_context *ctx, struct hive_key *hive, uint32_t predef_key, const char **elements);WERROR reg_set_sec_desc(struct registry_key *key, const struct security_descriptor *security);struct reg_diff_callbacks { WERROR (*add_key) (void *callback_data, const char *key_name); WERROR (*set_value) (void *callback_data, const char *key_name, const char *value_name, uint32_t value_type, DATA_BLOB value); WERROR (*del_value) (void *callback_data, const char *key_name, const char *value_name); WERROR (*del_key) (void *callback_data, const char *key_name); WERROR (*del_all_values) (void *callback_data, const char *key_name); WERROR (*done) (void *callback_data);};WERROR reg_diff_apply(struct registry_context *ctx, const char *filename);WERROR reg_generate_diff(struct registry_context *ctx1, struct registry_context *ctx2, const struct reg_diff_callbacks *callbacks, void *callback_data);WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename, struct smb_iconv_convenience *iconv_convenience, struct reg_diff_callbacks **callbacks, void **callback_data);WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename, struct smb_iconv_convenience *ic, struct reg_diff_callbacks **callbacks, void **callback_data);WERROR reg_generate_diff_key(struct registry_key *oldkey, struct registry_key *newkey, const char *path, const struct reg_diff_callbacks *callbacks, void *callback_data);WERROR reg_diff_load(const char *filename, struct smb_iconv_convenience *iconv_convenience, const struct reg_diff_callbacks *callbacks, void *callback_data);#endif /* _REGISTRY_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -