8126a6df32c1940d2e88468455990f7fd6d39f77
[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 #define AFSREG_SVR_SVC_NAME  "TransarcAFSServer"
20 #define AFSREG_SVR_SW_NAME   "AFS Server"
21
22 #define AFSREG_CLT_SVC_NAME  "TransarcAFSDaemon"
23 #define AFSREG_CLT_SW_NAME   "AFS Client"
24
25
26
27 /* ---- NT system configuration information ---- */
28
29 /* TCP/IP registry keys and values of interest:
30  *
31  * HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
32  *
33  *     Tcpip\Linkage
34  *         Bind:REG_MULTI_SZ:<interface adapter list>
35  *
36  *     <adapter name>\Parameters\Tcpip
37  *         IPAddress:REG_MULTI_SZ:<list of dotted decimal IP addresses>
38  *         SubnetMask:REG_MULTI_SZ:<list of dotted decimal IP address masks>
39  *         DhcpIPAddress:REG_SZ:<dotted decimal IP address>
40  *         DhcpSubnetMask:REG_SZ:<dotted decimal IP address mask>
41  */
42
43 #define AFSREG_IPSRV_KEY \
44 "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services"
45
46 /* Adapter list subkey  and subkey values */
47 #define AFSREG_IPSRV_IFACELIST_SUBKEY         "Tcpip\\Linkage"
48 #define AFSREG_IPSRV_IFACELIST_BIND_VALUE     "Bind"
49
50 /* Per-adapter subkey and subkey values */
51 #define AFSREG_IPSRV_ADAPTER_PARAM_SUBKEY          "Parameters\\Tcpip"
52 #define AFSREG_IPSRV_ADAPTER_PARAM_ADDR_VALUE      "IPAddress"
53 #define AFSREG_IPSRV_ADAPTER_PARAM_MASK_VALUE      "SubnetMask"
54 #define AFSREG_IPSRV_ADAPTER_PARAM_DHCPADDR_VALUE  "DhcpIPAddress"
55 #define AFSREG_IPSRV_ADAPTER_PARAM_DHCPMASK_VALUE  "DhcpSubnetMask"
56
57 /*
58  * Event logging registry keys and values of interest:
59  *
60  * HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog
61  *
62  *     Application\AFSREG_SVR_APPLOG_SUBKEY
63  *         EventMessageFile:REG_EXPAND_SZ:<AFS event message file path>
64  *         TypesSupported:REG_DWORD:<EVENTLOG_ERROR_TYPE |
65  *                                   EVENTLOG_WARNING_TYPE |
66  *                                   EVENTLOG_INFORMATION_TYPE>
67  */
68
69 #define AFSREG_APPLOG_SUBKEY \
70        "System\\CurrentControlSet\\Services\\EventLog\\Application"
71 #define AFSREG_APPLOG_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_APPLOG_SUBKEY
72
73 /* AFS event source subkey and subkey values -- client and server services */
74 #define AFSREG_SVR_APPLOG_SUBKEY         "AFS Service"
75 #define AFSREG_SVR_APPLOG_MSGFILE_VALUE  "EventMessageFile"
76 #define AFSREG_SVR_APPLOG_MSGTYPE_VALUE  "TypesSupported"
77
78
79
80
81 /* ---- AFS software configuration information ---- */
82
83 /* HKEY_LOCAL_MACHINE\SOFTWARE\TransarcCorporation\AFSREG_SVR_SW_NAME
84  *
85  *     CurrentVersion
86  *         PathName:REG_SZ:<AFS installation directory>
87  *         MajorVersion:REG_DWORD:<major version number>
88  *         MinorVersion:REG_DWORD:<minor version number>
89  *         PatchLevel:REG_DWORD:<patch level>
90  */
91
92 #define AFSREG_SVR_SW_SUBKEY \
93      "Software\\TransarcCorporation\\" AFSREG_SVR_SW_NAME
94 #define AFSREG_SVR_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_SVR_SW_SUBKEY
95
96 #define AFSREG_SVR_SW_VERSION_KEY  AFSREG_SVR_SW_KEY "\\CurrentVersion"
97 #define AFSREG_SVR_SW_VERSION_SUBKEY  AFSREG_SVR_SW_SUBKEY "\\CurrentVersion"
98
99 /* AFSREG_SVR_SW_VERSION_KEY values */
100 #define AFSREG_SVR_SW_VERSION_DIR_VALUE   "PathName"
101 #define AFSREG_SVR_SW_VERSION_MAJOR_VALUE    "MajorVersion"
102 #define AFSREG_SVR_SW_VERSION_MINOR_VALUE    "MinorVersion"
103 #define AFSREG_SVR_SW_VERSION_PATCH_VALUE    "PatchLevel"
104
105
106 /* HKEY_LOCAL_MACHINE\SOFTWARE\TransarcCorporation\AFSREG_CLT_SW_NAME
107  *
108  *     CurrentVersion
109  *         PathName:REG_SZ:<AFS installation directory>
110  *         MajorVersion:REG_DWORD:<major version number>
111  *         MinorVersion:REG_DWORD:<minor version number>
112  *         PatchLevel:REG_DWORD:<patch level>
113  */
114
115 #define AFSREG_CLT_SW_SUBKEY \
116     "Software\\TransarcCorporation\\" AFSREG_CLT_SW_NAME
117 #define AFSREG_CLT_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_SW_SUBKEY
118
119 #define AFSREG_CLT_SW_VERSION_KEY  AFSREG_CLT_SW_KEY "\\CurrentVersion"
120 #define AFSREG_CLT_SW_VERSION_SUBKEY  AFSREG_CLT_SW_SUBKEY "\\CurrentVersion"
121
122 /* AFSREG_CLT_SW_VERSION_KEY values */
123 #define AFSREG_CLT_SW_VERSION_DIR_VALUE   "PathName"
124 #define AFSREG_CLT_SW_VERSION_MAJOR_VALUE    "MajorVersion"
125 #define AFSREG_CLT_SW_VERSION_MINOR_VALUE    "MinorVersion"
126 #define AFSREG_CLT_SW_VERSION_PATCH_VALUE    "PatchLevel"
127
128
129
130 /* ---- AFS service configuration information ---- */
131
132 /* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFSREG_SVR_SVC_NAME
133  *
134  *     DisplayName:REG_SZ:<service display name>
135  *     ImagePath:REG_EXPAND_SZ:<service binary path>
136  *
137  *     Afstab
138  *         <vice partition name>
139  *             DeviceName:REG_SZ:<device hosting device partition>
140  */
141
142 #define AFSREG_SVR_SVC_DISPLAYNAME_DATA  "IBM AFS Server"
143 #define AFSREG_SVR_SVC_IMAGENAME_DATA "bosctlsvc.exe"
144
145 #define AFSREG_SVR_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_SVR_SVC_NAME
146 #define AFSREG_SVR_SVC_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_SVR_SVC_SUBKEY
147
148 #define AFSREG_SVR_SVC_AFSTAB_KEY   AFSREG_SVR_SVC_KEY "\\Afstab"
149
150 /* AFSREG_SVR_SVC_AFSTAB_KEY partition subkey values */
151 #define AFSREG_SVR_SVC_AFSTAB_DEVNAME_VALUE      "DeviceName"
152
153
154 /* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFSREG_CLT_SVC_NAME
155  *
156  *     DisplayName:REG_SZ:<service display name>
157  *     ImagePath:REG_EXPAND_SZ:<service binary path>
158  *
159  *     Parameters
160  *         Cell:REG_SZ:<client cell>
161  */
162
163 #define AFSREG_CLT_SVC_DISPLAYNAME_DATA  "IBM AFS Client"
164 #define AFSREG_CLT_SVC_IMAGENAME_DATA "afsd_service.exe"
165
166 #define AFSREG_CLT_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_CLT_SVC_NAME
167 #define AFSREG_CLT_SVC_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_SVC_SUBKEY
168
169 #define AFSREG_CLT_SVC_PARAM_KEY   AFSREG_CLT_SVC_KEY "\\Parameters"
170 #define AFSREG_CLT_SVC_PARAM_SUBKEY   AFSREG_CLT_SVC_SUBKEY "\\Parameters"
171 #define AFSREG_CLT_SVC_PROVIDER_KEY AFSREG_CLT_SVC_KEY "\\NetworkProvider"
172 #define AFSREG_CLT_SVC_PROVIDER_SUBKEY AFSREG_CLT_SVC_SUBKEY "\\NetworkProvider"
173
174 /* AFSREG_CLT_SVC_PARAM_KEY values */
175 #define AFSREG_CLT_SVC_PARAM_CELL_VALUE      "Cell"
176
177 #define AFSREG_CLT_OPENAFS_SUBKEY "Software\\OpenAFS\\Client"
178 #define AFSREG_CLT_OPENAFS_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_OPENAFS_SUBKEY
179 #define AFSREG_CLT_OPENAFS_CELLSERVDB_DIR_VALUE  "CellServDBDir"
180
181 #define AFSREG_USER_OPENAFS_SUBKEY "Software\\OpenAFS\\Client"
182 #define AFSREG_USER_OPENAFS_KEY "HKEY_CURRENT_USER" AFSREG_USER_OPENAFS_SUBKEY
183
184
185 /* Extended (alternative) versions of registry access functions */
186
187 #ifdef __cplusplus
188 extern "C" {
189 #endif
190
191 typedef enum {
192     REGENTRY_KEY,
193     REGENTRY_VALUE
194 } regentry_t;
195
196 extern long
197 RegOpenKeyAlt(HKEY key,
198               const char *subKeyName,
199               DWORD mode,
200               int create,
201               HKEY *resultKeyP,
202               DWORD *resultKeyDispP);
203
204 extern long
205 RegQueryValueAlt(HKEY key,
206                  const char *valueName,
207                  DWORD *dataTypeP,
208                  void **dataPP,
209                  DWORD *dataSizeP);
210
211 extern long
212 RegEnumKeyAlt(HKEY key,
213               char **subkeyNames);
214
215 extern long
216 RegDeleteKeyAlt(HKEY key,
217                 const char *subKeyName);
218
219 extern long
220 RegDeleteEntryAlt(const char *entryName,
221                   regentry_t entryType);
222
223 extern long
224 RegDupKeyAlt(const char *sourceKey,
225              const char *targetKey);
226
227 #ifdef __cplusplus
228 };
229 #endif
230
231 #endif /* AFSREG_H_ */