Author: jelmer Date: 2007-08-04 18:08:43 +0000 (Sat, 04 Aug 2007) New Revision: 24204
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24204 Log: Add hive operations. Added: branches/4.0-regwrite/source/lib/registry/hive.h Modified: branches/4.0-regwrite/ branches/4.0-regwrite/source/lib/registry/config.mk branches/4.0-regwrite/source/lib/registry/registry.h Changeset: Property changes on: branches/4.0-regwrite ___________________________________________________________________ Name: bzr:revision-info - timestamp: Wed 2007-04-18 19:05:02.684000015 +0200 committer: Jelmer Vernooij <[EMAIL PROTECTED]> properties: branch-nick: 4.0-regwrite rebase-of: [EMAIL PROTECTED] + timestamp: Mon 2007-04-23 16:05:39.279999971 +0200 committer: Jelmer Vernooij <[EMAIL PROTECTED]> properties: branch-nick: 4.0-regwrite rebase-of: [EMAIL PROTECTED] Name: bzr:file-ids - source/samba4-skip [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fsamba4-skip source/heimdal_build/kafs.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fheimdal_build%2Fkafs.h source/cluster/ctdb/Makefile.in [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2FMakefile.in source/cluster/ctdb/config.guess [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fconfig.guess source/cluster/ctdb/configure.ac [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fconfigure.ac source/cluster/ctdb/README [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2FREADME source/cluster/ctdb/install-sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Finstall-sh source/cluster/ctdb/opendb_ctdb.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fopendb_ctdb.c source/cluster/ctdb/autogen.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fautogen.sh source/cluster/ctdb/tests/nodes.txt [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fnodes.txt source/cluster/ctdb/tests/fetch.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Ffetch.sh source/cluster/ctdb/tests/cmdline.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fcmdline.h source/cluster/ctdb/tests/4nodes.txt [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2F4nodes.txt source/cluster/ctdb/tests/bench.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fbench.sh source/cluster/ctdb/tests/bench-ssh.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fbench-ssh.sh source/cluster/ctdb/tests/ctdb_messaging.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fctdb_messaging.c source/cluster/ctdb/tests/cmdline.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fcmdline.c source/cluster/ctdb/tests/bench1.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fbench1.sh source/cluster/ctdb/tests/test1.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Ftest1.sh source/cluster/ctdb/tests/ctdb_fetch1.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fctdb_fetch1.c source/cluster/ctdb/tests/test.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Ftest.sh source/cluster/ctdb/tests/messaging.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fmessaging.sh source/cluster/ctdb/tests/ctdb_fetch.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Fctdb_fetch.c source/cluster/ctdb/tests/1node.txt [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2F1node.txt source/cluster/ctdb/tests/fetch1.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Ftests%2Ffetch1.sh source/cluster/ctdb/direct [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fdirect source/cluster/ctdb/direct/README [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fdirect%2FREADME source/cluster/ctdb/direct/ctdbd.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fdirect%2Fctdbd.sh source/cluster/ctdb/direct/nodes.txt [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fdirect%2Fnodes.txt source/cluster/ctdb/direct/ctdbd_test.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fdirect%2Fctdbd_test.c source/cluster/ctdb/direct/ctdbd.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fdirect%2Fctdbd.c source/cluster/ctdb/include/includes.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Finclude%2Fincludes.h source/cluster/ctdb/include/idtree.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Finclude%2Fidtree.h source/cluster/ctdb/common/ctdb_client.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fcommon%2Fctdb_client.c source/cluster/ctdb/common/ctdb_daemon.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fcommon%2Fctdb_daemon.c source/cluster/ctdb/common/ctdb_io.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fcommon%2Fctdb_io.c source/cluster/ctdb/ib [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib source/cluster/ctdb/ib/ibw_ctdb_init.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibw_ctdb_init.c source/cluster/ctdb/ib/ibwrapper_internal.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibwrapper_internal.h source/cluster/ctdb/ib/ibwrapper.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibwrapper.c source/cluster/ctdb/ib/ibw_ctdb.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibw_ctdb.h source/cluster/ctdb/ib/config.m4 [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fconfig.m4 source/cluster/ctdb/ib/ibwrapper.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibwrapper.h source/cluster/ctdb/ib/ibwrapper_test.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibwrapper_test.c source/cluster/ctdb/ib/README.txt [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2FREADME.txt source/cluster/ctdb/ib/ibw_ctdb.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fcluster%2Fctdb%2Fib%2Fibw_ctdb.c source/ntvfs/common/opendb_tdb.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fntvfs%2Fcommon%2Fopendb_tdb.c source/ntvfs/common/opendb.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fntvfs%2Fcommon%2Fopendb.h source/torture/raw/openbench.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Ftorture%2Fraw%2Fopenbench.c source/torture/local/share.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Ftorture%2Flocal%2Fshare.c source/torture/unix/unix_info2.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Ftorture%2Funix%2Funix_info2.c source/lib/replace/strptime.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Freplace%2Fstrptime.c source/lib/replace/strptime.m4 [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Freplace%2Fstrptime.m4 source/lib/replace/test/strptime.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Freplace%2Ftest%2Fstrptime.c source/lib/compression/testsuite.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fcompression%2Ftestsuite.c source/lib/charset/testsuite.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fcharset%2Ftestsuite.c source/lib/util/tests/genrand.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Futil%2Ftests%2Fgenrand.c source/script/gdb_run [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Fgdb_run source/script/tests/Windows.pm [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2FWindows.pm source/script/tests/SocketWrapper.pm [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2FSocketWrapper.pm source/script/tests/test_member.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2Ftest_member.sh source/script/tests/Samba4.pm [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2FSamba4.pm source/script/tests/test_cifs.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2Ftest_cifs.sh source/script/tests/TODO [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2FTODO source/script/tests/Samba3.pm [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2FSamba3.pm source/script/tests/test_samba4.pl [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fscript%2Ftests%2Ftest_samba4.pl source/heimdal/lib/krb5/prompter_posix.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fheimdal%2Flib%2Fkrb5%2Fprompter_posix.c source/heimdal/lib/krb5/convert_creds.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fheimdal%2Flib%2Fkrb5%2Fconvert_creds.c source/heimdal/kuser [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fheimdal%2Fkuser source/heimdal/kuser/kuser_locl.h [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fheimdal%2Fkuser%2Fkuser_locl.h source/heimdal/kuser/kinit.c [EMAIL PROTECTED]:branches%2FSAMBA_4_0:source%2Fheimdal%2Fkuser%2Fkinit.c services/samba/ejsnet.esp [EMAIL PROTECTED]:branches%2FSAMBA_4_0:services%2Fsamba%2Fejsnet.esp services/samba/config.esp [EMAIL PROTECTED]:branches%2FSAMBA_4_0:services%2Fsamba%2Fconfig.esp testprogs/blackbox/test_kinit.sh [EMAIL PROTECTED]:branches%2FSAMBA_4_0:testprogs%2Fblackbox%2Ftest_kinit.sh webapps/swat/source/class/swat/module/netmgr [EMAIL PROTECTED]:branches%2FSAMBA_4_0:webapps%2Fswat%2Fsource%2Fclass%2Fswat%2Fmodule%2Fnetmgr webapps/swat/source/class/swat/module/netmgr/Gui.js [EMAIL PROTECTED]:branches%2FSAMBA_4_0:webapps%2Fswat%2Fsource%2Fclass%2Fswat%2Fmodule%2Fnetmgr%2FGui.js webapps/swat/source/class/swat/module/netmgr/NetManager.js [EMAIL PROTECTED]:branches%2FSAMBA_4_0:webapps%2Fswat%2Fsource%2Fclass%2Fswat%2Fmodule%2Fnetmgr%2FNetManager.js webapps/swat/source/class/swat/module/netmgr/Fsm.js [EMAIL PROTECTED]:branches%2FSAMBA_4_0:webapps%2Fswat%2Fsource%2Fclass%2Fswat%2Fmodule%2Fnetmgr%2FFsm.js + source/lib/registry/hive.h hive.h-20070423140448-w1nvzs8d2qxvyswz-1 Name: bzr:revision-id:v3-trunk0 - 11140 [EMAIL PROTECTED] 11142 [EMAIL PROTECTED] 11143 [EMAIL PROTECTED] 11144 [EMAIL PROTECTED] 11145 [EMAIL PROTECTED] 11146 [EMAIL PROTECTED] 11147 [EMAIL PROTECTED] 11148 [EMAIL PROTECTED] 11149 [EMAIL PROTECTED] 11150 [EMAIL PROTECTED] 11151 [EMAIL PROTECTED] 11152 [EMAIL PROTECTED] 11153 [EMAIL PROTECTED] 11154 [EMAIL PROTECTED] 11155 [EMAIL PROTECTED] 11156 [EMAIL PROTECTED] 11157 [EMAIL PROTECTED] 11158 [EMAIL PROTECTED] 11159 [EMAIL PROTECTED] 11160 [EMAIL PROTECTED] 11161 [EMAIL PROTECTED] 11162 [EMAIL PROTECTED] 11163 [EMAIL PROTECTED] 11164 [EMAIL PROTECTED] 11165 [EMAIL PROTECTED] 11166 [EMAIL PROTECTED] 11167 [EMAIL PROTECTED] 11168 [EMAIL PROTECTED] 11169 [EMAIL PROTECTED] 11170 [EMAIL PROTECTED] 11171 [EMAIL PROTECTED] 11172 [EMAIL PROTECTED] 11173 [EMAIL PROTECTED] 11174 [EMAIL PROTECTED] 11175 [EMAIL PROTECTED] 11176 [EMAIL PROTECTED] + 11140 [EMAIL PROTECTED] 11142 [EMAIL PROTECTED] 11143 [EMAIL PROTECTED] 11144 [EMAIL PROTECTED] 11145 [EMAIL PROTECTED] 11146 [EMAIL PROTECTED] 11147 [EMAIL PROTECTED] 11148 [EMAIL PROTECTED] 11149 [EMAIL PROTECTED] 11150 [EMAIL PROTECTED] 11151 [EMAIL PROTECTED] 11152 [EMAIL PROTECTED] 11153 [EMAIL PROTECTED] 11154 [EMAIL PROTECTED] 11155 [EMAIL PROTECTED] 11156 [EMAIL PROTECTED] 11157 [EMAIL PROTECTED] 11158 [EMAIL PROTECTED] 11159 [EMAIL PROTECTED] 11160 [EMAIL PROTECTED] 11161 [EMAIL PROTECTED] 11162 [EMAIL PROTECTED] 11163 [EMAIL PROTECTED] 11164 [EMAIL PROTECTED] 11165 [EMAIL PROTECTED] 11166 [EMAIL PROTECTED] 11167 [EMAIL PROTECTED] 11168 [EMAIL PROTECTED] 11169 [EMAIL PROTECTED] 11170 [EMAIL PROTECTED] 11171 [EMAIL PROTECTED] 11172 [EMAIL PROTECTED] 11173 [EMAIL PROTECTED] 11174 [EMAIL PROTECTED] 11175 [EMAIL PROTECTED] 11176 [EMAIL PROTECTED] 11177 [EMAIL PROTECTED] Modified: branches/4.0-regwrite/source/lib/registry/config.mk =================================================================== --- branches/4.0-regwrite/source/lib/registry/config.mk 2007-08-04 18:06:50 UTC (rev 24203) +++ branches/4.0-regwrite/source/lib/registry/config.mk 2007-08-04 18:08:43 UTC (rev 24204) @@ -33,13 +33,8 @@ dir.o \ rpc.o PUBLIC_DEPENDENCIES = \ -<<<<<<< TREE LIBSAMBA-UTIL CHARSET TDR_REGF ldb \ RPC_NDR_WINREG -PRIVATE_PROTO_HEADER = registry_proto.h -======= - LIBSAMBA-UTIL CHARSET ->>>>>>> MERGE-SOURCE PUBLIC_HEADERS = registry.h # End MODULE registry_ldb ################################################ Added: branches/4.0-regwrite/source/lib/registry/hive.h =================================================================== --- branches/4.0-regwrite/source/lib/registry/hive.h 2007-08-04 18:06:50 UTC (rev 24203) +++ branches/4.0-regwrite/source/lib/registry/hive.h 2007-08-04 18:08:43 UTC (rev 24204) @@ -0,0 +1,59 @@ +/* + Unix SMB/CIFS implementation. + Registry hive interface + Copyright (C) Jelmer Vernooij 2003-2007. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef __REGISTRY_HIVE_H__ +#define __REGISTRY_HIVE_H__ + +struct hive_context { + const struct hive_operations *ops; +}; + +struct hive_key { + struct hive_context *context; + +}; + +struct hive_operations { + const char *name; + + WERROR (*open_root) (struct hive_context *hive, struct hive_key **key); + + WERROR (*enum_key) (struct hive_key *key, int idx, struct hive_key **key); + WERROR (*get_key_by_name) (struct hive_key *key, const char *name, struct hive_key **key); + + WERROR (*add_key) (struct hive_key *key, const char *name, uint32_t access_mask, + struct security_descriptor *desc, struct hive_key **key); + WERROR (*del_key) (struct hive_key *key, const char *name); + WERROR (*flush_key) (struct hive_key *key); + + /* Value */ + WERROR (*enum_value) (struct hive_key *key, int idx, uint32_t *type, DATA_BLOB *data); + WERROR (*get_value_by_name) (struct hive_key *key, const char *name, uint32_t *type, + DATA_BLOB *data); + WERROR (*set_value) (struct hive_key *key, const char *name, uint32_t type, DATA_BLOB data); + + /* Security Descriptors */ + WERROR (*set_sec_desc) (struct hive_key *key, struct security_descriptor *desc); + WERROR (*set_get_desc) (struct hive_key *key, struct security_descriptor **desc); +}; + +struct hive_context *hive_load(TALLOC_CTX *ctx, const char *filename); + +#endif /* __REGISTRY_HIVE_H__ */ Modified: branches/4.0-regwrite/source/lib/registry/registry.h =================================================================== --- branches/4.0-regwrite/source/lib/registry/registry.h 2007-08-04 18:06:50 UTC (rev 24203) +++ branches/4.0-regwrite/source/lib/registry/registry.h 2007-08-04 18:08:43 UTC (rev 24204) @@ -57,6 +57,10 @@ #define REGISTRY_INTERFACE_VERSION 1 +struct reg_key_path { + const char **elements; +}; + struct reg_key_operations; /* structure to store the registry handles */ @@ -82,55 +86,6 @@ typedef void (*reg_key_notification_function) (void); typedef void (*reg_value_notification_function) (void); -/* - * Container for function pointers to enumeration routines - * for virtual registry view - * - * Backends provide just one hive (example: regf, creg) - * - * Backends should always do case-insensitive compares - * (everything is case-insensitive but case-preserving, - * just like the FS) - * - * There is no save function as all operations are expected to - * be atomic. - */ - -struct reg_key_operations { - const char *name; - - /* Or this function or get_subkey_by_name() */ - WERROR (*open_key) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_key **); - - WERROR (*num_subkeys) (const struct registry_key *, uint32_t *count); - WERROR (*num_values) (const struct registry_key *, uint32_t *count); - WERROR (*get_subkey_by_index) (TALLOC_CTX *, const struct registry_key *, int idx, struct registry_key **); - - /* Can not contain more than one level */ - WERROR (*get_subkey_by_name) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_key **); - WERROR (*get_value_by_index) (TALLOC_CTX *, const struct registry_key *, int idx, struct registry_value **); - - /* Can not contain more than one level */ - WERROR (*get_value_by_name) (TALLOC_CTX *, const struct registry_key *, const char *name, struct registry_value **); - - /* Security control */ - WERROR (*key_get_sec_desc) (TALLOC_CTX *, const struct registry_key *, struct security_descriptor **); - WERROR (*key_set_sec_desc) (const struct registry_key *, const struct security_descriptor *); - - /* Notification */ - WERROR (*request_key_change_notify) (const struct registry_key *, reg_key_notification_function); - WERROR (*request_value_change_notify) (const struct registry_value *, reg_value_notification_function); - - /* Key management */ - WERROR (*add_key)(TALLOC_CTX *, const struct registry_key *, const char *name, uint32_t access_mask, struct security_descriptor *, struct registry_key **); - WERROR (*del_key)(const struct registry_key *, const char *name); - WERROR (*flush_key) (const struct registry_key *); - - /* Value management */ - WERROR (*set_value)(const struct registry_key *, const char *name, uint32_t type, const DATA_BLOB data); - WERROR (*del_value)(const struct registry_key *, const char *valname); -}; - struct cli_credentials; /* Handle to a full registry @@ -227,7 +182,14 @@ 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); +struct reg_key_path { + uint32_t predefined_key; + const char **elements; +}; +WERROR reg_mount_hive(struct registry_context *ctx, struct reg_key_path *path, struct hive_context *hive); +WERROR reg_unmount_hive(struct registry_context *ctx, struct hive_context *hive); + /* Patch files */ _PUBLIC_ struct reg_diff *reg_generate_diff(TALLOC_CTX *mem_ctx, struct registry_context *ctx1, struct registry_context *ctx2);
