r9672: Fix build for compilers that don't like undefined-length arrays at the end...
[sfrench/samba-autobuild/.git] / source / include / rap.h
1 /* 
2    Unix SMB/CIFS implementation.
3    RAP operations
4    Copyright (C) Volker Lendecke 2004
5    
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License, or
9    (at your option) any later version.
10    
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15    
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20
21 #define RAP_WshareEnum                          0
22 #define RAP_WshareGetInfo                       1
23 #define RAP_WshareSetInfo                       2
24 #define RAP_WshareAdd                           3
25 #define RAP_WshareDel                           4
26 #define RAP_NetShareCheck                       5
27 #define RAP_WsessionEnum                        6
28 #define RAP_WsessionGetInfo                     7
29 #define RAP_WsessionDel                         8
30 #define RAP_WconnectionEnum                     9
31 #define RAP_WfileEnum                           10
32 #define RAP_WfileGetInfo                        11
33 #define RAP_WfileClose                          12
34 #define RAP_WserverGetInfo                      13
35 #define RAP_WserverSetInfo                      14
36 #define RAP_WserverDiskEnum                     15
37 #define RAP_WserverAdminCommand                 16
38 #define RAP_NetAuditOpen                        17
39 #define RAP_WauditClear                         18
40 #define RAP_NetErrorLogOpen                     19
41 #define RAP_WerrorLogClear                      20
42 #define RAP_NetCharDevEnum                      21
43 #define RAP_NetCharDevGetInfo                   22
44 #define RAP_WCharDevControl                     23
45 #define RAP_NetCharDevQEnum                     24
46 #define RAP_NetCharDevQGetInfo                  25
47 #define RAP_WCharDevQSetInfo                    26
48 #define RAP_WCharDevQPurge                      27
49 #define RAP_WCharDevQPurgeSelf                  28
50 #define RAP_WMessageNameEnum                    29
51 #define RAP_WMessageNameGetInfo                 30
52 #define RAP_WMessageNameAdd                     31
53 #define RAP_WMessageNameDel                     32
54 #define RAP_WMessageNameFwd                     33
55 #define RAP_WMessageNameUnFwd                   34
56 #define RAP_WMessageBufferSend                  35
57 #define RAP_WMessageFileSend                    36
58 #define RAP_WMessageLogFileSet                  37
59 #define RAP_WMessageLogFileGet                  38
60 #define RAP_WServiceEnum                        39
61 #define RAP_WServiceInstall                     40
62 #define RAP_WServiceControl                     41
63 #define RAP_WAccessEnum                         42
64 #define RAP_WAccessGetInfo                      43
65 #define RAP_WAccessSetInfo                      44
66 #define RAP_WAccessAdd                          45
67 #define RAP_WAccessDel                          46
68 #define RAP_WGroupEnum                          47
69 #define RAP_WGroupAdd                           48
70 #define RAP_WGroupDel                           49
71 #define RAP_WGroupAddUser                       50
72 #define RAP_WGroupDelUser                       51
73 #define RAP_WGroupGetUsers                      52
74 #define RAP_WUserEnum                           53
75 #define RAP_WUserAdd                            54
76 #define RAP_WUserDel                            55
77 #define RAP_WUserGetInfo                        56
78 #define RAP_WUserSetInfo                        57
79 #define RAP_WUserPasswordSet                    58
80 #define RAP_WUserGetGroups                      59
81 #define RAP_WWkstaSetUID                        62
82 #define RAP_WWkstaGetInfo                       63
83 #define RAP_WWkstaSetInfo                       64
84 #define RAP_WUseEnum                            65
85 #define RAP_WUseAdd                             66
86 #define RAP_WUseDel                             67
87 #define RAP_WUseGetInfo                         68
88 #define RAP_WPrintQEnum                         69
89 #define RAP_WPrintQGetInfo                      70
90 #define RAP_WPrintQSetInfo                      71
91 #define RAP_WPrintQAdd                          72
92 #define RAP_WPrintQDel                          73
93 #define RAP_WPrintQPause                        74
94 #define RAP_WPrintQContinue                     75
95 #define RAP_WPrintJobEnum                       76
96 #define RAP_WPrintJobGetInfo                    77
97 #define RAP_WPrintJobSetInfo_OLD                78
98 #define RAP_WPrintJobDel                        81
99 #define RAP_WPrintJobPause                      82
100 #define RAP_WPrintJobContinue                   83
101 #define RAP_WPrintDestEnum                      84
102 #define RAP_WPrintDestGetInfo                   85
103 #define RAP_WPrintDestControl                   86
104 #define RAP_WProfileSave                        87
105 #define RAP_WProfileLoad                        88
106 #define RAP_WStatisticsGet                      89
107 #define RAP_WStatisticsClear                    90
108 #define RAP_NetRemoteTOD                        91
109 #define RAP_WNetBiosEnum                        92
110 #define RAP_WNetBiosGetInfo                     93
111 #define RAP_NetServerEnum                       94
112 #define RAP_I_NetServerEnum                     95
113 #define RAP_WServiceGetInfo                     96
114 #define RAP_WPrintQPurge                        103
115 #define RAP_NetServerEnum2                      104
116 #define RAP_WAccessGetUserPerms                 105
117 #define RAP_WGroupGetInfo                       106
118 #define RAP_WGroupSetInfo                       107
119 #define RAP_WGroupSetUsers                      108
120 #define RAP_WUserSetGroups                      109
121 #define RAP_WUserModalsGet                      110
122 #define RAP_WUserModalsSet                      111
123 #define RAP_WFileEnum2                          112
124 #define RAP_WUserAdd2                           113
125 #define RAP_WUserSetInfo2                       114
126 #define RAP_WUserPasswordSet2                   115
127 #define RAP_I_NetServerEnum2                    116
128 #define RAP_WConfigGet2                         117
129 #define RAP_WConfigGetAll2                      118
130 #define RAP_WGetDCName                          119
131 #define RAP_NetHandleGetInfo                    120
132 #define RAP_NetHandleSetInfo                    121
133 #define RAP_WStatisticsGet2                     122
134 #define RAP_WBuildGetInfo                       123
135 #define RAP_WFileGetInfo2                       124
136 #define RAP_WFileClose2                         125
137 #define RAP_WNetServerReqChallenge              126
138 #define RAP_WNetServerAuthenticate              127
139 #define RAP_WNetServerPasswordSet               128
140 #define RAP_WNetAccountDeltas                   129
141 #define RAP_WNetAccountSync                     130
142 #define RAP_WUserEnum2                          131
143 #define RAP_WWkstaUserLogon                     132
144 #define RAP_WWkstaUserLogoff                    133
145 #define RAP_WLogonEnum                          134
146 #define RAP_WErrorLogRead                       135
147 #define RAP_NetPathType                         136
148 #define RAP_NetPathCanonicalize                 137
149 #define RAP_NetPathCompare                      138
150 #define RAP_NetNameValidate                     139
151 #define RAP_NetNameCanonicalize                 140
152 #define RAP_NetNameCompare                      141
153 #define RAP_WAuditRead                          142
154 #define RAP_WPrintDestAdd                       143
155 #define RAP_WPrintDestSetInfo                   144
156 #define RAP_WPrintDestDel                       145
157 #define RAP_WUserValidate2                      146
158 #define RAP_WPrintJobSetInfo                    147
159 #define RAP_TI_NetServerDiskEnum                148
160 #define RAP_TI_NetServerDiskGetInfo             149
161 #define RAP_TI_FTVerifyMirror                   150
162 #define RAP_TI_FTAbortVerify                    151
163 #define RAP_TI_FTGetInfo                        152
164 #define RAP_TI_FTSetInfo                        153
165 #define RAP_TI_FTLockDisk                       154
166 #define RAP_TI_FTFixError                       155
167 #define RAP_TI_FTAbortFix                       156
168 #define RAP_TI_FTDiagnoseError                  157
169 #define RAP_TI_FTGetDriveStats                  158
170 #define RAP_TI_FTErrorGetInfo                   160
171 #define RAP_NetAccessCheck                      163
172 #define RAP_NetAlertRaise                       164
173 #define RAP_NetAlertStart                       165
174 #define RAP_NetAlertStop                        166
175 #define RAP_NetAuditWrite                       167
176 #define RAP_NetIRemoteAPI                       168
177 #define RAP_NetServiceStatus                    169
178 #define RAP_NetServerRegister                   170
179 #define RAP_NetServerDeregister                 171
180 #define RAP_NetSessionEntryMake                 172
181 #define RAP_NetSessionEntryClear                173
182 #define RAP_NetSessionEntryGetInfo              174
183 #define RAP_NetSessionEntrySetInfo              175
184 #define RAP_NetConnectionEntryMake              176
185 #define RAP_NetConnectionEntryClear             177
186 #define RAP_NetConnectionEntrySetInfo           178
187 #define RAP_NetConnectionEntryGetInfo           179
188 #define RAP_NetFileEntryMake                    180
189 #define RAP_NetFileEntryClear                   181
190 #define RAP_NetFileEntrySetInfo                 182
191 #define RAP_NetFileEntryGetInfo                 183
192 #define RAP_AltSrvMessageBufferSend             184
193 #define RAP_AltSrvMessageFileSend               185
194 #define RAP_wI_NetRplWkstaEnum                  186
195 #define RAP_wI_NetRplWkstaGetInfo               187
196 #define RAP_wI_NetRplWkstaSetInfo               188
197 #define RAP_wI_NetRplWkstaAdd                   189
198 #define RAP_wI_NetRplWkstaDel                   190
199 #define RAP_wI_NetRplProfileEnum                191
200 #define RAP_wI_NetRplProfileGetInfo             192
201 #define RAP_wI_NetRplProfileSetInfo             193
202 #define RAP_wI_NetRplProfileAdd                 194
203 #define RAP_wI_NetRplProfileDel                 195
204 #define RAP_wI_NetRplProfileClone               196
205 #define RAP_wI_NetRplBaseProfileEnum            197
206 #define RAP_WIServerSetInfo                     201
207 #define RAP_WPrintDriverEnum                    205
208 #define RAP_WPrintQProcessorEnum                206
209 #define RAP_WPrintPortEnum                      207
210 #define RAP_WNetWriteUpdateLog                  208
211 #define RAP_WNetAccountUpdate                   209
212 #define RAP_WNetAccountConfirmUpdate            210
213 #define RAP_WConfigSet                          211
214 #define RAP_WAccountsReplicate                  212                      
215 #define RAP_SamOEMChgPasswordUser2_P            214
216 #define RAP_NetServerEnum3                      215
217 #define RAP_WprintDriverGetInfo                 250
218 #define RAP_WprintDriverSetInfo                 251
219 #define RAP_WaliasAdd                           252
220 #define RAP_WaliasDel                           253
221 #define RAP_WaliasGetInfo                       254
222 #define RAP_WaliasSetInfo                       255
223 #define RAP_WaliasEnum                          256
224 #define RAP_WuserGetLogonAsn                    257
225 #define RAP_WuserSetLogonAsn                    258
226 #define RAP_WuserGetAppSel                      259
227 #define RAP_WuserSetAppSel                      260
228 #define RAP_WappAdd                             261
229 #define RAP_WappDel                             262
230 #define RAP_WappGetInfo                         263
231 #define RAP_WappSetInfo                         264
232 #define RAP_WappEnum                            265
233 #define RAP_WUserDCDBInit                       266
234 #define RAP_WDASDAdd                            267
235 #define RAP_WDASDDel                            268
236 #define RAP_WDASDGetInfo                        269
237 #define RAP_WDASDSetInfo                        270
238 #define RAP_WDASDEnum                           271
239 #define RAP_WDASDCheck                          272
240 #define RAP_WDASDCtl                            273
241 #define RAP_WuserRemoteLogonCheck               274
242 #define RAP_WUserPasswordSet3                   275
243 #define RAP_WCreateRIPLMachine                  276
244 #define RAP_WDeleteRIPLMachine                  277
245 #define RAP_WGetRIPLMachineInfo                 278
246 #define RAP_WSetRIPLMachineInfo                 279
247 #define RAP_WEnumRIPLMachine                    280
248 #define RAP_I_ShareAdd                          281
249 #define RAP_AliasEnum                           282
250 #define RAP_WaccessApply                        283
251 #define RAP_WPrt16Query                         284
252 #define RAP_WPrt16Set                           285
253 #define RAP_WUserDel100                         286
254 #define RAP_WUserRemoteLogonCheck2              287
255 #define RAP_WRemoteTODSet                       294
256 #define RAP_WprintJobMoveAll                    295
257 #define RAP_W16AppParmAdd                       296
258 #define RAP_W16AppParmDel                       297
259 #define RAP_W16AppParmGet                       298
260 #define RAP_W16AppParmSet                       299
261 #define RAP_W16RIPLMachineCreate                300
262 #define RAP_W16RIPLMachineGetInfo               301
263 #define RAP_W16RIPLMachineSetInfo               302
264 #define RAP_W16RIPLMachineEnum                  303
265 #define RAP_W16RIPLMachineListParmEnum          304
266 #define RAP_W16RIPLMachClassGetInfo             305
267 #define RAP_W16RIPLMachClassEnum                306
268 #define RAP_W16RIPLMachClassCreate              307
269 #define RAP_W16RIPLMachClassSetInfo             308
270 #define RAP_W16RIPLMachClassDelete              309
271 #define RAP_W16RIPLMachClassLPEnum              310
272 #define RAP_W16RIPLMachineDelete                311
273 #define RAP_W16WSLevelGetInfo                   312
274 #define RAP_WserverNameAdd                      313
275 #define RAP_WserverNameDel                      314
276 #define RAP_WserverNameEnum                     315
277 #define RAP_I_WDASDEnum                         316
278 #define RAP_WDASDEnumTerminate                  317
279 #define RAP_WDASDSetInfo2                       318
280 #define MAX_API                                 318
281
282 struct rap_shareenum_info_0 {
283         char name[13];
284 };
285
286 struct rap_shareenum_info_1 {
287         char name[13];
288         char pad;
289         uint16_t type;
290         char *comment;
291 };
292
293 union rap_shareenum_info {
294         struct rap_shareenum_info_0 info0;
295         struct rap_shareenum_info_1 info1;
296 };
297
298 struct rap_NetShareEnum {
299         struct {
300                 uint16_t level;
301                 uint16_t bufsize;
302         } in;
303
304         struct {
305                 uint16_t status;
306                 uint16_t convert;
307                 uint16_t count;
308                 uint16_t available;
309                 union rap_shareenum_info *info;
310         } out;
311 };
312
313 struct rap_server_info_0 {
314         char name[16];
315 };
316
317 struct rap_server_info_1 {
318         char     name[16];
319         uint8_t  version_major;
320         uint8_t  version_minor;
321         uint32_t servertype;
322         char    *comment;
323 };
324
325 union rap_server_info {
326         struct rap_server_info_0 info0;
327         struct rap_server_info_1 info1;
328 };
329
330 struct rap_NetServerEnum2 {
331         struct {
332                 uint16_t level;
333                 uint16_t bufsize;
334                 uint32_t servertype;
335                 const char *domain;
336         } in;
337
338         struct {
339                 uint16_t status;
340                 uint16_t convert;
341                 uint16_t count;
342                 uint16_t available;
343                 union rap_server_info *info;
344         } out;
345 };