windows-32bit-tools-client-dir-20060625
[openafs.git] / src / WINNT / afsreg / afsreg.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef AFSREG_H_
11 #define AFSREG_H_
12
13 /* Registry keys and values accessed by AFS server processes and
14  * the AFS software installation and configuration utilities.
15  */
16
17 #define AFSREG_NULL_KEY  ((HKEY)0)
18
19 /* Do not change AFSREG_{CLT,SVR}_SW_NAME unless the installation
20  * name in the installers is also changed to match
21  */
22 #define AFSREG_SVR_SVC_NAME  "TransarcAFSServer"
23 #define AFSREG_SVR_SW_NAME   "AFS Server"
24
25 #define AFSREG_CLT_SVC_NAME  "TransarcAFSDaemon"
26 #define AFSREG_CLT_SW_NAME        "AFS Client"
27 #define AFSREG_CLT_TOOLS_SW_NAME  "AFS Client 32-Bit Binaries"
28
29 /* ---- NT system configuration information ---- */
30
31 /* TCP/IP registry keys and values of interest:
32  *
33  * HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
34  *
35  *     Tcpip\Linkage
36  *         Bind:REG_MULTI_SZ:<interface adapter list>
37  *
38  *     <adapter name>\Parameters\Tcpip
39  *         IPAddress:REG_MULTI_SZ:<list of dotted decimal IP addresses>
40  *         SubnetMask:REG_MULTI_SZ:<list of dotted decimal IP address masks>
41  *         DhcpIPAddress:REG_SZ:<dotted decimal IP address>
42  *         DhcpSubnetMask:REG_SZ:<dotted decimal IP address mask>
43  */
44
45 #define AFSREG_IPSRV_KEY \
46 "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services"
47
48 /* Adapter list subkey  and subkey values */
49 #define AFSREG_IPSRV_IFACELIST_SUBKEY         "Tcpip\\Linkage"
50 #define AFSREG_IPSRV_IFACELIST_BIND_VALUE     "Bind"
51
52 /* Per-adapter subkey and subkey values */
53 #define AFSREG_IPSRV_ADAPTER_PARAM_SUBKEY          "Parameters\\Tcpip"
54 #define AFSREG_IPSRV_ADAPTER_PARAM_ADDR_VALUE      "IPAddress"
55 #define AFSREG_IPSRV_ADAPTER_PARAM_MASK_VALUE      "SubnetMask"
56 #define AFSREG_IPSRV_ADAPTER_PARAM_DHCPADDR_VALUE  "DhcpIPAddress"
57 #define AFSREG_IPSRV_ADAPTER_PARAM_DHCPMASK_VALUE  "DhcpSubnetMask"
58
59 /*
60  * Event logging registry keys and values of interest:
61  *
62  * HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog
63  *
64  *     Application\AFSREG_SVR_APPLOG_SUBKEY
65  *         EventMessageFile:REG_EXPAND_SZ:<AFS event message file path>
66  *         TypesSupported:REG_DWORD:<EVENTLOG_ERROR_TYPE |
67  *                                   EVENTLOG_WARNING_TYPE |
68  *                                   EVENTLOG_INFORMATION_TYPE>
69  */
70
71 #define AFSREG_APPLOG_SUBKEY \
72        "System\\CurrentControlSet\\Services\\EventLog\\Application"
73 #define AFSREG_APPLOG_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_APPLOG_SUBKEY
74
75 /* AFS event source subkey and subkey values -- client and server services */
76 #define AFSREG_SVR_APPLOG_SUBKEY         AFSREG_SVR_SW_NAME
77 #define AFSREG_CLT_APPLOG_SUBKEY         AFSREG_CLT_SW_NAME
78 #define AFSREG_APPLOG_MSGFILE_VALUE  "EventMessageFile"
79 #define AFSREG_APPLOG_MSGTYPE_VALUE  "TypesSupported"
80
81
82
83
84 /* ---- AFS software configuration information ---- */
85
86 /* HKEY_LOCAL_MACHINE\SOFTWARE\TransarcCorporation\AFSREG_SVR_SW_NAME
87  *
88  *     CurrentVersion
89  *         PathName:REG_SZ:<AFS installation directory>
90  *         MajorVersion:REG_DWORD:<major version number>
91  *         MinorVersion:REG_DWORD:<minor version number>
92  *         PatchLevel:REG_DWORD:<patch level>
93  */
94
95 #define AFSREG_SVR_SW_SUBKEY \
96      "Software\\TransarcCorporation\\" AFSREG_SVR_SW_NAME
97 #define AFSREG_SVR_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_SVR_SW_SUBKEY
98
99 #define AFSREG_SVR_SW_VERSION_KEY  AFSREG_SVR_SW_KEY "\\CurrentVersion"
100 #define AFSREG_SVR_SW_VERSION_SUBKEY  AFSREG_SVR_SW_SUBKEY "\\CurrentVersion"
101
102 /* AFSREG_SVR_SW_VERSION_KEY values */
103 #define AFSREG_SVR_SW_VERSION_DIR_VALUE   "PathName"
104 #define AFSREG_SVR_SW_VERSION_MAJOR_VALUE    "MajorVersion"
105 #define AFSREG_SVR_SW_VERSION_MINOR_VALUE    "MinorVersion"
106 #define AFSREG_SVR_SW_VERSION_PATCH_VALUE    "PatchLevel"
107
108
109 /* HKEY_LOCAL_MACHINE\SOFTWARE\TransarcCorporation\AFSREG_CLT_SW_NAME
110  *
111  *     CurrentVersion
112  *         PathName:REG_SZ:<AFS installation directory>
113  *         MajorVersion:REG_DWORD:<major version number>
114  *         MinorVersion:REG_DWORD:<minor version number>
115  *         PatchLevel:REG_DWORD:<patch level>
116  */
117
118 #define AFSREG_CLT_SW_SUBKEY \
119     "Software\\TransarcCorporation\\" AFSREG_CLT_SW_NAME
120 #define AFSREG_CLT_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_SW_SUBKEY
121
122 #define AFSREG_CLT_SW_VERSION_KEY  AFSREG_CLT_SW_KEY "\\CurrentVersion"
123 #define AFSREG_CLT_SW_VERSION_SUBKEY  AFSREG_CLT_SW_SUBKEY "\\CurrentVersion"
124
125 #define AFSREG_CLT_TOOLS_SW_SUBKEY \
126     "Software\\TransarcCorporation\\" AFSREG_CLT_TOOLS_SW_NAME
127 #define AFSREG_CLT_TOOLS_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_TOOLS_SW_SUBKEY
128
129 #define AFSREG_CLT_TOOLS_SW_VERSION_KEY  AFSREG_CLT_TOOLS_SW_KEY "\\CurrentVersion"
130 #define AFSREG_CLT_TOOLS_SW_VERSION_SUBKEY  AFSREG_CLT_TOOLS_SW_SUBKEY "\\CurrentVersion"
131
132 /* AFSREG_CLT_SW_VERSION_KEY values */
133 #define AFSREG_CLT_SW_VERSION_DIR_VALUE   "PathName"
134 #define AFSREG_CLT_SW_VERSION_MAJOR_VALUE    "MajorVersion"
135 #define AFSREG_CLT_SW_VERSION_MINOR_VALUE    "MinorVersion"
136 #define AFSREG_CLT_SW_VERSION_PATCH_VALUE    "PatchLevel"
137
138
139
140 /* ---- AFS service configuration information ---- */
141
142 /* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFSREG_SVR_SVC_NAME
143  *
144  *     DisplayName:REG_SZ:<service display name>
145  *     ImagePath:REG_EXPAND_SZ:<service binary path>
146  *
147  *     Afstab
148  *         <vice partition name>
149  *             DeviceName:REG_SZ:<device hosting device partition>
150  */
151
152 #define AFSREG_SVR_SVC_DISPLAYNAME_DATA  "OpenAFS Server"
153 #define AFSREG_SVR_SVC_IMAGENAME_DATA "bosctlsvc.exe"
154
155 #define AFSREG_SVR_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_SVR_SVC_NAME
156 #define AFSREG_SVR_SVC_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_SVR_SVC_SUBKEY
157
158 #define AFSREG_SVR_SVC_AFSTAB_KEY   AFSREG_SVR_SVC_KEY "\\Afstab"
159
160 /* AFSREG_SVR_SVC_AFSTAB_KEY partition subkey values */
161 #define AFSREG_SVR_SVC_AFSTAB_DEVNAME_VALUE      "DeviceName"
162
163
164 /* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFSREG_CLT_SVC_NAME
165  *
166  *     DisplayName:REG_SZ:<service display name>
167  *     ImagePath:REG_EXPAND_SZ:<service binary path>
168  *
169  *     Parameters
170  *         Cell:REG_SZ:<client cell>
171  */
172
173 #define AFSREG_CLT_SVC_DISPLAYNAME_DATA  "OpenAFS Client"
174 #define AFSREG_CLT_SVC_IMAGENAME_DATA "afsd_service.exe"
175
176 #define AFSREG_CLT_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_CLT_SVC_NAME
177 #define AFSREG_CLT_SVC_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_SVC_SUBKEY
178
179 #define AFSREG_CLT_SVC_PARAM_KEY   AFSREG_CLT_SVC_KEY "\\Parameters"
180 #define AFSREG_CLT_SVC_PARAM_SUBKEY   AFSREG_CLT_SVC_SUBKEY "\\Parameters"
181 #define AFSREG_CLT_SVC_PROVIDER_KEY AFSREG_CLT_SVC_KEY "\\NetworkProvider"
182 #define AFSREG_CLT_SVC_PROVIDER_SUBKEY AFSREG_CLT_SVC_SUBKEY "\\NetworkProvider"
183
184 /* AFSREG_CLT_SVC_PARAM_KEY values */
185 #define AFSREG_CLT_SVC_PARAM_CELL_VALUE      "Cell"
186
187 #define AFSREG_CLT_OPENAFS_SUBKEY "Software\\OpenAFS\\Client"
188 #define AFSREG_CLT_OPENAFS_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_OPENAFS_SUBKEY
189 #define AFSREG_CLT_OPENAFS_CELLSERVDB_DIR_VALUE  "CellServDBDir"
190
191 #define AFSREG_USER_OPENAFS_SUBKEY "Software\\OpenAFS\\Client"
192 #define AFSREG_USER_OPENAFS_KEY "HKEY_CURRENT_USER" AFSREG_USER_OPENAFS_SUBKEY
193
194
195 /* Extended (alternative) versions of registry access functions */
196
197 #ifdef __cplusplus
198 extern "C" {
199 #endif
200
201 typedef enum {
202     REGENTRY_KEY,
203     REGENTRY_VALUE
204 } regentry_t;
205
206 extern long
207 RegOpenKeyAlt(HKEY key,
208               const char *subKeyName,
209               DWORD mode,
210               int create,
211               HKEY *resultKeyP,
212               DWORD *resultKeyDispP);
213
214 extern long
215 RegQueryValueAlt(HKEY key,
216                  const char *valueName,
217                  DWORD *dataTypeP,
218                  void **dataPP,
219                  DWORD *dataSizeP);
220
221 extern long
222 RegEnumKeyAlt(HKEY key,
223               char **subkeyNames);
224
225 extern long
226 RegDeleteKeyAlt(HKEY key,
227                 const char *subKeyName);
228
229 extern long
230 RegDeleteEntryAlt(const char *entryName,
231                   regentry_t entryType);
232
233 extern long
234 RegDupKeyAlt(const char *sourceKey,
235              const char *targetKey);
236
237 #ifdef __cplusplus
238 };
239 #endif
240
241 #endif /* AFSREG_H_ */