blob: 07b2c016844f566ec30c9ea8934b73e6b51b8e38 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
This is the registry library. The registry is basically a bunch of
hives, each of which is loaded from a file. When using a local registry,
it is possible to specify where hives should be loaded from, etc.
There are separate APIs for accessing the data in a hive and the
data in the registry itself. Each supports different backends.
The following "full registry" backends are currently provided:
* Remote (over DCE/RPC)
* Local (allows "mounting" hives)
* Wine (uses the wine plain-text file)
The following hive backends are supported:
- ldb
- regf (NTUSER.DAT-style files)
- rpc (Remote individual hives)
- directory
reg_open_samba() loads a set of hives based on smb.conf settings.
Lines in smb.conf should have the following syntax:
registry:<hivename> = <backend>:<location>
So an example usage could be:
registry:HKEY_CURRENT_USER = regf:NTUSER.DAT
registry:HKEY_LOCAL_MACHINE = ldb:tdb://registry.tdb
WERR_NOT_SUPPORTED will be returned for all hives that haven't been set.
On Windows the various registry hives are loaded from:
HKEY_CURRENT_CONFIG: %SystemRoot%\System32\Config\System
HKEY_CURRENT_USER: %Profile%\NTUser.dat
HKEY_LOCAL_MACHINE\SAM: %SystemRoot%\System32\Config\Sam
HKEY_LOCAL_MACHINE\Security: %SystemRoot%\System32\Config\Security
HKEY_LOCAL_MACHINE\Software: %SystemRoot%\System32\Config\Software
HKEY_LOCAL_MACHINE\System: %SystemRoot%\System32\Config\System
HKEY_USERS\.DEFAULT: %SystemRoot%\System32\Config\Default
HKEY_LOCAL_MACHINE\HARDWARE: is autogenerated
|