master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef SVRAPI_INCLUDED
  7#define SVRAPI_INCLUDED
  8
  9#include <lmcons.h>
 10#include <lmerr.h>
 11
 12#ifndef RC_INVOKED
 13#pragma pack(1)
 14#endif
 15
 16#ifdef __cplusplus
 17extern "C" {
 18#endif
 19
 20#ifndef _SVRAPI_
 21#define API_FUNCTION DECLSPEC_IMPORT API_RET_TYPE WINAPI
 22#else
 23#define API_FUNCTION API_RET_TYPE WINAPI
 24#endif
 25
 26  extern API_FUNCTION NetAccessAdd(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer);
 27  extern API_FUNCTION NetAccessCheck (char *pszReserved,char *pszUserName,char *pszResource,unsigned short usOperation,unsigned short *pusResult);
 28  extern API_FUNCTION NetAccessDel(const char *pszServer,char *pszResource);
 29  extern API_FUNCTION NetAccessEnum(const char *pszServer,char *pszBasePath,short fsRecursive,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
 30  extern API_FUNCTION NetAccessGetInfo(const char *pszServer,char *pszResource,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
 31  extern API_FUNCTION NetAccessSetInfo(const char *pszServer,char *pszResource,short sLevel,char *pbBuffer,unsigned short cbBuffer,short sParmNum);
 32  extern API_FUNCTION NetAccessGetUserPerms (char *pszServer,char *pszUgName,char *pszResource,unsigned short *pusPerms);
 33
 34  struct access_list {
 35    char acl_ugname[LM20_UNLEN+1];
 36    char acl_ugname_pad_1;
 37    short acl_access;
 38  };
 39
 40  struct access_list_2 {
 41    char *acl2_ugname;
 42    unsigned short acl2_access;
 43  };
 44
 45  struct access_list_12 {
 46    char *acl12_ugname;
 47    unsigned short acl12_access;
 48  };
 49
 50  struct access_info_0 {
 51    char *acc0_resource_name;
 52  };
 53
 54  struct access_info_1 {
 55    char *acc1_resource_name;
 56    short acc1_attr;
 57    short acc1_count;
 58  };
 59
 60  struct access_info_2 {
 61    char *acc2_resource_name;
 62    short acc2_attr;
 63    short acc2_count;
 64  };
 65
 66  struct access_info_10 {
 67    char *acc10_resource_name;
 68  };
 69
 70  struct access_info_12 {
 71    char *acc12_resource_name;
 72    short acc12_attr;
 73    short acc12_count;
 74  };
 75
 76#define MAXPERMENTRIES 64
 77
 78#define ACCESS_NONE 0
 79#define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM|ACCESS_FINDFIRST)
 80
 81#define ACCESS_READ 0x1
 82#define ACCESS_WRITE 0x2
 83#define ACCESS_CREATE 0x4
 84#define ACCESS_EXEC 0x8
 85#define ACCESS_DELETE 0x10
 86#define ACCESS_ATRIB 0x20
 87#define ACCESS_PERM 0x40
 88#define ACCESS_FINDFIRST 0x80
 89#define ACCESS_GROUP 0x8000
 90#define ACCESS_AUDIT 0x1
 91#define ACCESS_ATTR_PARMNUM 2
 92#define ACCESS_LETTERS "RWCXDAP         "
 93
 94  extern API_FUNCTION NetShareAdd(const char *pszServer,short sLevel,const char *pbBuffer,unsigned short cbBuffer);
 95  extern API_FUNCTION NetShareDel(const char *pszServer,const char *pszNetName,unsigned short usReserved);
 96  extern API_FUNCTION NetShareEnum(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
 97  extern API_FUNCTION NetShareGetInfo(const char *pszServer,const char *pszNetName,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
 98  extern API_FUNCTION NetShareSetInfo(const char *pszServer,const char *pszNetName,short sLevel,const char *pbBuffer,unsigned short cbBuffer,short sParmNum);
 99
100  struct share_info_0 {
101    char shi0_netname[LM20_NNLEN+1];
102  };
103
104  struct share_info_1 {
105    char shi1_netname[LM20_NNLEN+1];
106    char shi1_pad1;
107    unsigned short shi1_type;
108    char *shi1_remark;
109  };
110
111  struct share_info_2 {
112    char shi2_netname[LM20_NNLEN+1];
113    char shi2_pad1;
114    unsigned short shi2_type;
115    char *shi2_remark;
116    unsigned short shi2_permissions;
117    unsigned short shi2_max_uses;
118    unsigned short shi2_current_uses;
119    char *shi2_path;
120    char shi2_passwd[SHPWLEN+1];
121    char shi2_pad2;
122  };
123
124  struct share_info_50 {
125    char shi50_netname[LM20_NNLEN+1];
126    unsigned char shi50_type;
127    unsigned short shi50_flags;
128    char *shi50_remark;
129    char *shi50_path;
130    char shi50_rw_password[SHPWLEN+1];
131    char shi50_ro_password[SHPWLEN+1];
132  };
133
134#define SHI50F_RDONLY 0x0001
135#define SHI50F_FULL 0x0002
136#define SHI50F_DEPENDSON (SHI50F_RDONLY|SHI50F_FULL)
137#define SHI50F_ACCESSMASK (SHI50F_RDONLY|SHI50F_FULL)
138
139#define SHI50F_PERSIST 0x0100
140
141#define SHI50F_SYSTEM 0x0200
142
143#ifndef PARMNUM_ALL
144#define PARMNUM_ALL 0
145#endif
146
147#define SHI_REMARK_PARMNUM 4
148#define SHI_PERMISSIONS_PARMNUM 5
149#define SHI_MAX_USES_PARMNUM 6
150#define SHI_PASSWD_PARMNUM 9
151
152#define SHI1_NUM_ELEMENTS 4
153#define SHI2_NUM_ELEMENTS 10
154
155#define STYPE_DISKTREE 0
156#define STYPE_PRINTQ 1
157#define STYPE_DEVICE 2
158#define STYPE_IPC 3
159
160#define SHI_USES_UNLIMITED -1
161
162  extern API_FUNCTION NetSessionDel(const char *pszServer,const char *pszClientName,short sReserved);
163  extern API_FUNCTION NetSessionEnum(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
164  extern API_FUNCTION NetSessionGetInfo(const char *pszServer,const char *pszClientName,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
165
166  struct session_info_0 {
167    char *sesi0_cname;
168  };
169
170  struct session_info_1 {
171    char *sesi1_cname;
172    char *sesi1_username;
173    unsigned short sesi1_num_conns;
174    unsigned short sesi1_num_opens;
175    unsigned short sesi1_num_users;
176    unsigned __LONG32 sesi1_time;
177    unsigned __LONG32 sesi1_idle_time;
178    unsigned __LONG32 sesi1_user_flags;
179  };
180
181  struct session_info_2 {
182    char *sesi2_cname;
183    char *sesi2_username;
184    unsigned short sesi2_num_conns;
185    unsigned short sesi2_num_opens;
186    unsigned short sesi2_num_users;
187    unsigned __LONG32 sesi2_time;
188    unsigned __LONG32 sesi2_idle_time;
189    unsigned __LONG32 sesi2_user_flags;
190    char *sesi2_cltype_name;
191  };
192
193  struct session_info_10 {
194    char *sesi10_cname;
195    char *sesi10_username;
196    unsigned __LONG32 sesi10_time;
197    unsigned __LONG32 sesi10_idle_time;
198  };
199
200  struct session_info_50 {
201    char *sesi50_cname;
202    char *sesi50_username;
203    unsigned __LONG32 sesi50_key;
204    unsigned short sesi50_num_conns;
205    unsigned short sesi50_num_opens;
206    unsigned __LONG32 sesi50_time;
207    unsigned __LONG32 sesi50_idle_time;
208    unsigned char sesi50_protocol;
209    unsigned char pad1;
210  };
211
212#define SESS_GUEST 1
213#define SESS_NOENCRYPTION 2
214
215#define SESI1_NUM_ELEMENTS 8
216#define SESI2_NUM_ELEMENTS 9
217
218  extern API_FUNCTION NetConnectionEnum(const char *pszServer,const char *pszQualifier,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
219
220  struct connection_info_0 {
221    unsigned short coni0_id;
222  };
223
224  struct connection_info_1 {
225    unsigned short coni1_id;
226    unsigned short coni1_type;
227    unsigned short coni1_num_opens;
228    unsigned short coni1_num_users;
229    unsigned __LONG32 coni1_time;
230    char *coni1_username;
231    char *coni1_netname;
232  };
233
234  struct connection_info_50 {
235    unsigned short coni50_type;
236    unsigned short coni50_num_opens;
237    unsigned __LONG32 coni50_time;
238    char *coni50_netname;
239    char *coni50_username;
240  };
241
242  extern API_FUNCTION NetFileClose2(const char *pszServer,unsigned __LONG32 ulFileId);
243  extern API_FUNCTION NetFileEnum(const char *pszServer,const char *pszBasePath,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
244
245  struct file_info_0 {
246    unsigned short fi0_id;
247  };
248
249  struct file_info_1 {
250    unsigned short fi1_id;
251    unsigned short fi1_permissions;
252    unsigned short fi1_num_locks;
253    char *fi1_pathname;
254    char *fi1_username;
255  };
256
257  struct file_info_2 {
258    unsigned __LONG32 fi2_id;
259  };
260
261  struct file_info_3 {
262    unsigned __LONG32 fi3_id;
263    unsigned short fi3_permissions;
264    unsigned short fi3_num_locks;
265    char *fi3_pathname;
266    char *fi3_username;
267  };
268
269  struct file_info_50 {
270    unsigned __LONG32 fi50_id;
271    unsigned short fi50_permissions;
272    unsigned short fi50_num_locks;
273    char *fi50_pathname;
274    char *fi50_username;
275    char *fi50_sharename;
276  };
277
278  struct res_file_enum_2 {
279    unsigned short res_pad;
280    unsigned short res_fs;
281    unsigned __LONG32 res_pro;
282  };
283
284#define PERM_FILE_READ 0x1
285#define PERM_FILE_WRITE 0x2
286#define PERM_FILE_CREATE 0x4
287
288  typedef struct res_file_enum_2 FRK;
289
290#define FRK_INIT(f) { (f).res_pad = 0; (f).res_fs = 0; (f).res_pro = 0; }
291
292  extern API_FUNCTION NetServerGetInfo(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
293
294  struct server_info_0 {
295    char sv0_name[CNLEN + 1];
296  };
297
298  struct server_info_1 {
299    char sv1_name[CNLEN + 1];
300    unsigned char sv1_version_major;
301    unsigned char sv1_version_minor;
302    unsigned __LONG32 sv1_type;
303    char *sv1_comment;
304  };
305
306  struct server_info_50 {
307    char sv50_name[CNLEN + 1];
308    unsigned char sv50_version_major;
309    unsigned char sv50_version_minor;
310    unsigned __LONG32 sv50_type;
311    char *sv50_comment;
312    unsigned short sv50_security;
313    unsigned short sv50_auditing;
314    char *sv50_container;
315    char *sv50_ab_server;
316    char *sv50_ab_dll;
317  };
318
319  struct server_info_2 {
320    char sv2_name[CNLEN + 1];
321    unsigned char sv2_version_major;
322    unsigned char sv2_version_minor;
323    unsigned __LONG32 sv2_type;
324    char *sv2_comment;
325    unsigned __LONG32 sv2_ulist_mtime;
326    unsigned __LONG32 sv2_glist_mtime;
327    unsigned __LONG32 sv2_alist_mtime;
328    unsigned short sv2_users;
329    unsigned short sv2_disc;
330    char *sv2_alerts;
331    unsigned short sv2_security;
332    unsigned short sv2_auditing;
333    unsigned short sv2_numadmin;
334    unsigned short sv2_lanmask;
335    unsigned short sv2_hidden;
336    unsigned short sv2_announce;
337    unsigned short sv2_anndelta;
338    char sv2_guestacct[LM20_UNLEN + 1];
339    unsigned char sv2_pad1;
340    char *sv2_userpath;
341    unsigned short sv2_chdevs;
342    unsigned short sv2_chdevq;
343    unsigned short sv2_chdevjobs;
344    unsigned short sv2_connections;
345    unsigned short sv2_shares;
346    unsigned short sv2_openfiles;
347    unsigned short sv2_sessopens;
348    unsigned short sv2_sessvcs;
349    unsigned short sv2_sessreqs;
350    unsigned short sv2_opensearch;
351    unsigned short sv2_activelocks;
352    unsigned short sv2_numreqbuf;
353    unsigned short sv2_sizreqbuf;
354    unsigned short sv2_numbigbuf;
355    unsigned short sv2_numfiletasks;
356    unsigned short sv2_alertsched;
357    unsigned short sv2_erroralert;
358    unsigned short sv2_logonalert;
359    unsigned short sv2_accessalert;
360    unsigned short sv2_diskalert;
361    unsigned short sv2_netioalert;
362    unsigned short sv2_maxauditsz;
363    char *sv2_srvheuristics;
364  };
365
366  struct server_info_3 {
367    char sv3_name[CNLEN + 1];
368    unsigned char sv3_version_major;
369    unsigned char sv3_version_minor;
370    unsigned __LONG32 sv3_type;
371    char *sv3_comment;
372    unsigned __LONG32 sv3_ulist_mtime;
373    unsigned __LONG32 sv3_glist_mtime;
374    unsigned __LONG32 sv3_alist_mtime;
375    unsigned short sv3_users;
376    unsigned short sv3_disc;
377    char *sv3_alerts;
378    unsigned short sv3_security;
379    unsigned short sv3_auditing;
380    unsigned short sv3_numadmin;
381    unsigned short sv3_lanmask;
382    unsigned short sv3_hidden;
383    unsigned short sv3_announce;
384    unsigned short sv3_anndelta;
385    char sv3_guestacct[LM20_UNLEN + 1];
386    unsigned char sv3_pad1;
387    char *sv3_userpath;
388    unsigned short sv3_chdevs;
389    unsigned short sv3_chdevq;
390    unsigned short sv3_chdevjobs;
391    unsigned short sv3_connections;
392    unsigned short sv3_shares;
393    unsigned short sv3_openfiles;
394    unsigned short sv3_sessopens;
395    unsigned short sv3_sessvcs;
396    unsigned short sv3_sessreqs;
397    unsigned short sv3_opensearch;
398    unsigned short sv3_activelocks;
399    unsigned short sv3_numreqbuf;
400    unsigned short sv3_sizreqbuf;
401    unsigned short sv3_numbigbuf;
402    unsigned short sv3_numfiletasks;
403    unsigned short sv3_alertsched;
404    unsigned short sv3_erroralert;
405    unsigned short sv3_logonalert;
406    unsigned short sv3_accessalert;
407    unsigned short sv3_diskalert;
408    unsigned short sv3_netioalert;
409    unsigned short sv3_maxauditsz;
410    char *sv3_srvheuristics;
411    unsigned __LONG32 sv3_auditedevents;
412    unsigned short sv3_autoprofile;
413    char *sv3_autopath;
414  };
415
416#define MAJOR_VERSION_MASK 0x0F
417
418#define SV_TYPE_WORKSTATION 0x00000001
419#define SV_TYPE_SERVER 0x00000002
420#define SV_TYPE_SQLSERVER 0x00000004
421#define SV_TYPE_DOMAIN_CTRL 0x00000008
422#define SV_TYPE_DOMAIN_BAKCTRL 0x00000010
423#define SV_TYPE_TIME_SOURCE 0x00000020
424#define SV_TYPE_AFP 0x00000040
425#define SV_TYPE_NOVELL 0x00000080
426#define SV_TYPE_DOMAIN_MEMBER 0x00000100
427#define SV_TYPE_PRINTQ_SERVER 0x00000200
428#define SV_TYPE_DIALIN_SERVER 0x00000400
429#define SV_TYPE_ALL 0xFFFFFFFF
430
431#define SV_NODISC 0xFFFF
432
433#define SV_USERSECURITY 1
434#define SV_SHARESECURITY 0
435
436#define SV_SECURITY_SHARE 0
437#define SV_SECURITY_WINNT 1
438#define SV_SECURITY_WINNTAS 2
439#define SV_SECURITY_NETWARE 3
440
441#define SV_HIDDEN 1
442#define SV_VISIBLE 0
443
444#define SVI1_NUM_ELEMENTS 5
445#define SVI2_NUM_ELEMENTS 44
446#define SVI3_NUM_ELEMENTS 45
447
448#define SW_AUTOPROF_LOAD_MASK 0x1
449#define SW_AUTOPROF_SAVE_MASK 0x2
450
451  extern API_FUNCTION NetSecurityGetInfo(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
452
453  struct security_info_1 {
454    unsigned __LONG32 sec1_security;
455    char *sec1_container;
456    char *sec1_ab_server;
457    char *sec1_ab_dll;
458  };
459
460#define SEC_SECURITY_SHARE SV_SECURITY_SHARE
461#define SEC_SECURITY_WINNT SV_SECURITY_WINNT
462#define SEC_SECURITY_WINNTAS SV_SECURITY_WINNTAS
463#define SEC_SECURITY_NETWARE SV_SECURITY_NETWARE
464
465#ifdef __cplusplus
466}
467#endif
468
469#ifndef RC_INVOKED
470#pragma pack()
471#endif
472#endif