windows-afsreg-20081017
[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  TEXT("TransarcAFSServer")
23 #define AFSREG_SVR_SW_NAME   TEXT("AFS Server")
24
25 #define AFSREG_CLT_SVC_NAME  TEXT("TransarcAFSDaemon")
26 #define AFSREG_CLT_SW_NAME        TEXT("AFS Client")
27 #define AFSREG_CLT_TOOLS_SW_NAME  TEXT("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 TEXT("HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services")
47
48 /* Adapter list subkey  and subkey values */
49 #define AFSREG_IPSRV_IFACELIST_SUBKEY         TEXT("Tcpip\\Linkage")
50 #define AFSREG_IPSRV_IFACELIST_BIND_VALUE     TEXT("Bind")
51
52 /* Per-adapter subkey and subkey values */
53 #define AFSREG_IPSRV_ADAPTER_PARAM_SUBKEY          TEXT("Parameters\\Tcpip")
54 #define AFSREG_IPSRV_ADAPTER_PARAM_ADDR_VALUE      TEXT("IPAddress")
55 #define AFSREG_IPSRV_ADAPTER_PARAM_MASK_VALUE      TEXT("SubnetMask")
56 #define AFSREG_IPSRV_ADAPTER_PARAM_DHCPADDR_VALUE  TEXT("DhcpIPAddress")
57 #define AFSREG_IPSRV_ADAPTER_PARAM_DHCPMASK_VALUE  TEXT("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     TEXT("System\\CurrentControlSet\\Services\\EventLog\\Application")
73 #define AFSREG_APPLOG_KEY TEXT("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  TEXT("EventMessageFile")
79 #define AFSREG_APPLOG_MSGTYPE_VALUE  TEXT("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     TEXT("Software\\TransarcCorporation\\") AFSREG_SVR_SW_NAME
97 #define AFSREG_SVR_SW_KEY TEXT("HKEY_LOCAL_MACHINE\\") AFSREG_SVR_SW_SUBKEY
98
99 #define AFSREG_SVR_SW_VERSION_KEY  AFSREG_SVR_SW_KEY TEXT("\\CurrentVersion")
100 #define AFSREG_SVR_SW_VERSION_SUBKEY  AFSREG_SVR_SW_SUBKEY TEXT("\\CurrentVersion")
101
102 /* AFSREG_SVR_SW_VERSION_KEY values */
103 #define AFSREG_SVR_SW_VERSION_DIR_VALUE      TEXT("PathName")
104 #define AFSREG_SVR_SW_VERSION_MAJOR_VALUE    TEXT("MajorVersion")
105 #define AFSREG_SVR_SW_VERSION_MINOR_VALUE    TEXT("MinorVersion")
106 #define AFSREG_SVR_SW_VERSION_PATCH_VALUE    TEXT("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     TEXT("Software\\TransarcCorporation\\") AFSREG_CLT_SW_NAME
120 #define AFSREG_CLT_SW_KEY TEXT("HKEY_LOCAL_MACHINE\\") AFSREG_CLT_SW_SUBKEY
121
122 #define AFSREG_CLT_SW_VERSION_KEY  AFSREG_CLT_SW_KEY TEXT("\\CurrentVersion")
123 #define AFSREG_CLT_SW_VERSION_SUBKEY  AFSREG_CLT_SW_SUBKEY TEXT("\\CurrentVersion")
124
125 #define AFSREG_CLT_TOOLS_SW_SUBKEY \
126     TEXT("Software\\TransarcCorporation\\") AFSREG_CLT_TOOLS_SW_NAME
127 #define AFSREG_CLT_TOOLS_SW_KEY TEXT("HKEY_LOCAL_MACHINE\\") AFSREG_CLT_TOOLS_SW_SUBKEY
128
129 #define AFSREG_CLT_TOOLS_SW_VERSION_KEY  AFSREG_CLT_TOOLS_SW_KEY TEXT("\\CurrentVersion")
130 #define AFSREG_CLT_TOOLS_SW_VERSION_SUBKEY  AFSREG_CLT_TOOLS_SW_SUBKEY TEXT("\\CurrentVersion")
131
132 /* AFSREG_CLT_SW_VERSION_KEY values */
133 #define AFSREG_CLT_SW_VERSION_DIR_VALUE      TEXT("PathName")
134 #define AFSREG_CLT_SW_VERSION_MAJOR_VALUE    TEXT("MajorVersion")
135 #define AFSREG_CLT_SW_VERSION_MINOR_VALUE    TEXT("MinorVersion")
136 #define AFSREG_CLT_SW_VERSION_PATCH_VALUE    TEXT("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  TEXT("OpenAFS Server")
153 #define AFSREG_SVR_SVC_IMAGENAME_DATA TEXT("bosctlsvc.exe")
154
155 #define AFSREG_SVR_SVC_SUBKEY TEXT("System\\CurrentControlSet\\Services\\") AFSREG_SVR_SVC_NAME
156 #define AFSREG_SVR_SVC_KEY TEXT("HKEY_LOCAL_MACHINE\\") AFSREG_SVR_SVC_SUBKEY
157
158 #define AFSREG_SVR_SVC_AFSTAB_KEY   AFSREG_SVR_SVC_KEY TEXT("\\Afstab")
159
160 /* AFSREG_SVR_SVC_AFSTAB_KEY partition subkey values */
161 #define AFSREG_SVR_SVC_AFSTAB_DEVNAME_VALUE      TEXT("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  TEXT("OpenAFS Client")
174 #define AFSREG_CLT_SVC_IMAGENAME_DATA TEXT("afsd_service.exe")
175
176 #define AFSREG_CLT_SVC_SUBKEY TEXT("System\\CurrentControlSet\\Services\\") AFSREG_CLT_SVC_NAME
177 #define AFSREG_CLT_SVC_KEY TEXT("HKEY_LOCAL_MACHINE\\") AFSREG_CLT_SVC_SUBKEY
178
179 #define AFSREG_CLT_SVC_PARAM_KEY   AFSREG_CLT_SVC_KEY TEXT("\\Parameters")
180 #define AFSREG_CLT_SVC_PARAM_SUBKEY   AFSREG_CLT_SVC_SUBKEY TEXT("\\Parameters")
181 #define AFSREG_CLT_SVC_PROVIDER_KEY AFSREG_CLT_SVC_KEY TEXT("\\NetworkProvider")
182 #define AFSREG_CLT_SVC_PROVIDER_SUBKEY AFSREG_CLT_SVC_SUBKEY TEXT("\\NetworkProvider")
183
184 /* AFSREG_CLT_SVC_PARAM_KEY values */
185 #define AFSREG_CLT_SVC_PARAM_CELL_VALUE      TEXT("Cell")
186
187 #define AFSREG_CLT_OPENAFS_SUBKEY TEXT("Software\\OpenAFS\\Client")
188 #define AFSREG_CLT_OPENAFS_KEY TEXT("HKEY_LOCAL_MACHINE\\") AFSREG_CLT_OPENAFS_SUBKEY
189 #define AFSREG_CLT_OPENAFS_CELLSERVDB_DIR_VALUE  TEXT("CellServDBDir")
190
191 #define AFSREG_USER_OPENAFS_SUBKEY TEXT("Software\\OpenAFS\\Client")
192 #define AFSREG_USER_OPENAFS_KEY TEXT("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 extern int 
238 IsWow64(void);
239
240 #ifdef __cplusplus
241 };
242 #endif
243
244 #endif /* AFSREG_H_ */