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