Home | History | Annotate | Download | only in include
      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
     17 extern "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
    473