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