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);

Reply via email to