473 lines
13 KiB
C
473 lines
13 KiB
C
|
/**
|
||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||
|
* This file is part of the w64 mingw-runtime package.
|
||
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
||
|
*/
|
||
|
#ifndef SVRAPI_INCLUDED
|
||
|
#define SVRAPI_INCLUDED
|
||
|
|
||
|
#include <lmcons.h>
|
||
|
#include <lmerr.h>
|
||
|
|
||
|
#ifndef RC_INVOKED
|
||
|
#pragma pack(1)
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#ifndef _SVRAPI_
|
||
|
#define API_FUNCTION DECLSPEC_IMPORT API_RET_TYPE WINAPI
|
||
|
#else
|
||
|
#define API_FUNCTION API_RET_TYPE WINAPI
|
||
|
#endif
|
||
|
|
||
|
extern API_FUNCTION NetAccessAdd(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer);
|
||
|
extern API_FUNCTION NetAccessCheck (char *pszReserved,char *pszUserName,char *pszResource,unsigned short usOperation,unsigned short *pusResult);
|
||
|
extern API_FUNCTION NetAccessDel(const char *pszServer,char *pszResource);
|
||
|
extern API_FUNCTION NetAccessEnum(const char *pszServer,char *pszBasePath,short fsRecursive,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
|
||
|
extern API_FUNCTION NetAccessGetInfo(const char *pszServer,char *pszResource,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
|
||
|
extern API_FUNCTION NetAccessSetInfo(const char *pszServer,char *pszResource,short sLevel,char *pbBuffer,unsigned short cbBuffer,short sParmNum);
|
||
|
extern API_FUNCTION NetAccessGetUserPerms (char *pszServer,char *pszUgName,char *pszResource,unsigned short *pusPerms);
|
||
|
|
||
|
struct access_list {
|
||
|
char acl_ugname[LM20_UNLEN+1];
|
||
|
char acl_ugname_pad_1;
|
||
|
short acl_access;
|
||
|
};
|
||
|
|
||
|
struct access_list_2 {
|
||
|
char *acl2_ugname;
|
||
|
unsigned short acl2_access;
|
||
|
};
|
||
|
|
||
|
struct access_list_12 {
|
||
|
char *acl12_ugname;
|
||
|
unsigned short acl12_access;
|
||
|
};
|
||
|
|
||
|
struct access_info_0 {
|
||
|
char *acc0_resource_name;
|
||
|
};
|
||
|
|
||
|
struct access_info_1 {
|
||
|
char *acc1_resource_name;
|
||
|
short acc1_attr;
|
||
|
short acc1_count;
|
||
|
};
|
||
|
|
||
|
struct access_info_2 {
|
||
|
char *acc2_resource_name;
|
||
|
short acc2_attr;
|
||
|
short acc2_count;
|
||
|
};
|
||
|
|
||
|
struct access_info_10 {
|
||
|
char *acc10_resource_name;
|
||
|
};
|
||
|
|
||
|
struct access_info_12 {
|
||
|
char *acc12_resource_name;
|
||
|
short acc12_attr;
|
||
|
short acc12_count;
|
||
|
};
|
||
|
|
||
|
#define MAXPERMENTRIES 64
|
||
|
|
||
|
#define ACCESS_NONE 0
|
||
|
#define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM|ACCESS_FINDFIRST)
|
||
|
|
||
|
#define ACCESS_READ 0x1
|
||
|
#define ACCESS_WRITE 0x2
|
||
|
#define ACCESS_CREATE 0x4
|
||
|
#define ACCESS_EXEC 0x8
|
||
|
#define ACCESS_DELETE 0x10
|
||
|
#define ACCESS_ATRIB 0x20
|
||
|
#define ACCESS_PERM 0x40
|
||
|
#define ACCESS_FINDFIRST 0x80
|
||
|
#define ACCESS_GROUP 0x8000
|
||
|
#define ACCESS_AUDIT 0x1
|
||
|
#define ACCESS_ATTR_PARMNUM 2
|
||
|
#define ACCESS_LETTERS "RWCXDAP "
|
||
|
|
||
|
extern API_FUNCTION NetShareAdd(const char *pszServer,short sLevel,const char *pbBuffer,unsigned short cbBuffer);
|
||
|
extern API_FUNCTION NetShareDel(const char *pszServer,const char *pszNetName,unsigned short usReserved);
|
||
|
extern API_FUNCTION NetShareEnum(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
|
||
|
extern API_FUNCTION NetShareGetInfo(const char *pszServer,const char *pszNetName,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
|
||
|
extern API_FUNCTION NetShareSetInfo(const char *pszServer,const char *pszNetName,short sLevel,const char *pbBuffer,unsigned short cbBuffer,short sParmNum);
|
||
|
|
||
|
struct share_info_0 {
|
||
|
char shi0_netname[LM20_NNLEN+1];
|
||
|
};
|
||
|
|
||
|
struct share_info_1 {
|
||
|
char shi1_netname[LM20_NNLEN+1];
|
||
|
char shi1_pad1;
|
||
|
unsigned short shi1_type;
|
||
|
char *shi1_remark;
|
||
|
};
|
||
|
|
||
|
struct share_info_2 {
|
||
|
char shi2_netname[LM20_NNLEN+1];
|
||
|
char shi2_pad1;
|
||
|
unsigned short shi2_type;
|
||
|
char *shi2_remark;
|
||
|
unsigned short shi2_permissions;
|
||
|
unsigned short shi2_max_uses;
|
||
|
unsigned short shi2_current_uses;
|
||
|
char *shi2_path;
|
||
|
char shi2_passwd[SHPWLEN+1];
|
||
|
char shi2_pad2;
|
||
|
};
|
||
|
|
||
|
struct share_info_50 {
|
||
|
char shi50_netname[LM20_NNLEN+1];
|
||
|
unsigned char shi50_type;
|
||
|
unsigned short shi50_flags;
|
||
|
char *shi50_remark;
|
||
|
char *shi50_path;
|
||
|
char shi50_rw_password[SHPWLEN+1];
|
||
|
char shi50_ro_password[SHPWLEN+1];
|
||
|
};
|
||
|
|
||
|
#define SHI50F_RDONLY 0x0001
|
||
|
#define SHI50F_FULL 0x0002
|
||
|
#define SHI50F_DEPENDSON (SHI50F_RDONLY|SHI50F_FULL)
|
||
|
#define SHI50F_ACCESSMASK (SHI50F_RDONLY|SHI50F_FULL)
|
||
|
|
||
|
#define SHI50F_PERSIST 0x0100
|
||
|
|
||
|
#define SHI50F_SYSTEM 0x0200
|
||
|
|
||
|
#ifndef PARMNUM_ALL
|
||
|
#define PARMNUM_ALL 0
|
||
|
#endif
|
||
|
|
||
|
#define SHI_REMARK_PARMNUM 4
|
||
|
#define SHI_PERMISSIONS_PARMNUM 5
|
||
|
#define SHI_MAX_USES_PARMNUM 6
|
||
|
#define SHI_PASSWD_PARMNUM 9
|
||
|
|
||
|
#define SHI1_NUM_ELEMENTS 4
|
||
|
#define SHI2_NUM_ELEMENTS 10
|
||
|
|
||
|
#define STYPE_DISKTREE 0
|
||
|
#define STYPE_PRINTQ 1
|
||
|
#define STYPE_DEVICE 2
|
||
|
#define STYPE_IPC 3
|
||
|
|
||
|
#define SHI_USES_UNLIMITED -1
|
||
|
|
||
|
extern API_FUNCTION NetSessionDel(const char *pszServer,const char *pszClientName,short sReserved);
|
||
|
extern API_FUNCTION NetSessionEnum(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
|
||
|
extern API_FUNCTION NetSessionGetInfo(const char *pszServer,const char *pszClientName,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
|
||
|
|
||
|
struct session_info_0 {
|
||
|
char *sesi0_cname;
|
||
|
};
|
||
|
|
||
|
struct session_info_1 {
|
||
|
char *sesi1_cname;
|
||
|
char *sesi1_username;
|
||
|
unsigned short sesi1_num_conns;
|
||
|
unsigned short sesi1_num_opens;
|
||
|
unsigned short sesi1_num_users;
|
||
|
unsigned long sesi1_time;
|
||
|
unsigned long sesi1_idle_time;
|
||
|
unsigned long sesi1_user_flags;
|
||
|
};
|
||
|
|
||
|
struct session_info_2 {
|
||
|
char *sesi2_cname;
|
||
|
char *sesi2_username;
|
||
|
unsigned short sesi2_num_conns;
|
||
|
unsigned short sesi2_num_opens;
|
||
|
unsigned short sesi2_num_users;
|
||
|
unsigned long sesi2_time;
|
||
|
unsigned long sesi2_idle_time;
|
||
|
unsigned long sesi2_user_flags;
|
||
|
char *sesi2_cltype_name;
|
||
|
};
|
||
|
|
||
|
struct session_info_10 {
|
||
|
char *sesi10_cname;
|
||
|
char *sesi10_username;
|
||
|
unsigned long sesi10_time;
|
||
|
unsigned long sesi10_idle_time;
|
||
|
};
|
||
|
|
||
|
struct session_info_50 {
|
||
|
char *sesi50_cname;
|
||
|
char *sesi50_username;
|
||
|
unsigned long sesi50_key;
|
||
|
unsigned short sesi50_num_conns;
|
||
|
unsigned short sesi50_num_opens;
|
||
|
unsigned long sesi50_time;
|
||
|
unsigned long sesi50_idle_time;
|
||
|
unsigned char sesi50_protocol;
|
||
|
unsigned char pad1;
|
||
|
};
|
||
|
|
||
|
#define SESS_GUEST 1
|
||
|
#define SESS_NOENCRYPTION 2
|
||
|
|
||
|
#define SESI1_NUM_ELEMENTS 8
|
||
|
#define SESI2_NUM_ELEMENTS 9
|
||
|
|
||
|
extern API_FUNCTION NetConnectionEnum(const char *pszServer,const char *pszQualifier,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
|
||
|
|
||
|
struct connection_info_0 {
|
||
|
unsigned short coni0_id;
|
||
|
};
|
||
|
|
||
|
struct connection_info_1 {
|
||
|
unsigned short coni1_id;
|
||
|
unsigned short coni1_type;
|
||
|
unsigned short coni1_num_opens;
|
||
|
unsigned short coni1_num_users;
|
||
|
unsigned long coni1_time;
|
||
|
char *coni1_username;
|
||
|
char *coni1_netname;
|
||
|
};
|
||
|
|
||
|
struct connection_info_50 {
|
||
|
unsigned short coni50_type;
|
||
|
unsigned short coni50_num_opens;
|
||
|
unsigned long coni50_time;
|
||
|
char *coni50_netname;
|
||
|
char *coni50_username;
|
||
|
};
|
||
|
|
||
|
extern API_FUNCTION NetFileClose2(const char *pszServer,unsigned long ulFileId);
|
||
|
extern API_FUNCTION NetFileEnum(const char *pszServer,const char *pszBasePath,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcEntriesRead,unsigned short *pcTotalAvail);
|
||
|
|
||
|
struct file_info_0 {
|
||
|
unsigned short fi0_id;
|
||
|
};
|
||
|
|
||
|
struct file_info_1 {
|
||
|
unsigned short fi1_id;
|
||
|
unsigned short fi1_permissions;
|
||
|
unsigned short fi1_num_locks;
|
||
|
char *fi1_pathname;
|
||
|
char *fi1_username;
|
||
|
};
|
||
|
|
||
|
struct file_info_2 {
|
||
|
unsigned long fi2_id;
|
||
|
};
|
||
|
|
||
|
struct file_info_3 {
|
||
|
unsigned long fi3_id;
|
||
|
unsigned short fi3_permissions;
|
||
|
unsigned short fi3_num_locks;
|
||
|
char *fi3_pathname;
|
||
|
char *fi3_username;
|
||
|
};
|
||
|
|
||
|
struct file_info_50 {
|
||
|
unsigned long fi50_id;
|
||
|
unsigned short fi50_permissions;
|
||
|
unsigned short fi50_num_locks;
|
||
|
char *fi50_pathname;
|
||
|
char *fi50_username;
|
||
|
char *fi50_sharename;
|
||
|
};
|
||
|
|
||
|
struct res_file_enum_2 {
|
||
|
unsigned short res_pad;
|
||
|
unsigned short res_fs;
|
||
|
unsigned long res_pro;
|
||
|
};
|
||
|
|
||
|
#define PERM_FILE_READ 0x1
|
||
|
#define PERM_FILE_WRITE 0x2
|
||
|
#define PERM_FILE_CREATE 0x4
|
||
|
|
||
|
typedef struct res_file_enum_2 FRK;
|
||
|
|
||
|
#define FRK_INIT(f) { (f).res_pad = 0L; (f).res_fs = 0; (f).res_pro = 0; }
|
||
|
|
||
|
extern API_FUNCTION NetServerGetInfo(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
|
||
|
|
||
|
struct server_info_0 {
|
||
|
char sv0_name[CNLEN + 1];
|
||
|
};
|
||
|
|
||
|
struct server_info_1 {
|
||
|
char sv1_name[CNLEN + 1];
|
||
|
unsigned char sv1_version_major;
|
||
|
unsigned char sv1_version_minor;
|
||
|
unsigned long sv1_type;
|
||
|
char *sv1_comment;
|
||
|
};
|
||
|
|
||
|
struct server_info_50 {
|
||
|
char sv50_name[CNLEN + 1];
|
||
|
unsigned char sv50_version_major;
|
||
|
unsigned char sv50_version_minor;
|
||
|
unsigned long sv50_type;
|
||
|
char *sv50_comment;
|
||
|
unsigned short sv50_security;
|
||
|
unsigned short sv50_auditing;
|
||
|
char *sv50_container;
|
||
|
char *sv50_ab_server;
|
||
|
char *sv50_ab_dll;
|
||
|
};
|
||
|
|
||
|
struct server_info_2 {
|
||
|
char sv2_name[CNLEN + 1];
|
||
|
unsigned char sv2_version_major;
|
||
|
unsigned char sv2_version_minor;
|
||
|
unsigned long sv2_type;
|
||
|
char *sv2_comment;
|
||
|
unsigned long sv2_ulist_mtime;
|
||
|
unsigned long sv2_glist_mtime;
|
||
|
unsigned long sv2_alist_mtime;
|
||
|
unsigned short sv2_users;
|
||
|
unsigned short sv2_disc;
|
||
|
char *sv2_alerts;
|
||
|
unsigned short sv2_security;
|
||
|
unsigned short sv2_auditing;
|
||
|
unsigned short sv2_numadmin;
|
||
|
unsigned short sv2_lanmask;
|
||
|
unsigned short sv2_hidden;
|
||
|
unsigned short sv2_announce;
|
||
|
unsigned short sv2_anndelta;
|
||
|
char sv2_guestacct[LM20_UNLEN + 1];
|
||
|
unsigned char sv2_pad1;
|
||
|
char *sv2_userpath;
|
||
|
unsigned short sv2_chdevs;
|
||
|
unsigned short sv2_chdevq;
|
||
|
unsigned short sv2_chdevjobs;
|
||
|
unsigned short sv2_connections;
|
||
|
unsigned short sv2_shares;
|
||
|
unsigned short sv2_openfiles;
|
||
|
unsigned short sv2_sessopens;
|
||
|
unsigned short sv2_sessvcs;
|
||
|
unsigned short sv2_sessreqs;
|
||
|
unsigned short sv2_opensearch;
|
||
|
unsigned short sv2_activelocks;
|
||
|
unsigned short sv2_numreqbuf;
|
||
|
unsigned short sv2_sizreqbuf;
|
||
|
unsigned short sv2_numbigbuf;
|
||
|
unsigned short sv2_numfiletasks;
|
||
|
unsigned short sv2_alertsched;
|
||
|
unsigned short sv2_erroralert;
|
||
|
unsigned short sv2_logonalert;
|
||
|
unsigned short sv2_accessalert;
|
||
|
unsigned short sv2_diskalert;
|
||
|
unsigned short sv2_netioalert;
|
||
|
unsigned short sv2_maxauditsz;
|
||
|
char *sv2_srvheuristics;
|
||
|
};
|
||
|
|
||
|
struct server_info_3 {
|
||
|
char sv3_name[CNLEN + 1];
|
||
|
unsigned char sv3_version_major;
|
||
|
unsigned char sv3_version_minor;
|
||
|
unsigned long sv3_type;
|
||
|
char *sv3_comment;
|
||
|
unsigned long sv3_ulist_mtime;
|
||
|
unsigned long sv3_glist_mtime;
|
||
|
unsigned long sv3_alist_mtime;
|
||
|
unsigned short sv3_users;
|
||
|
unsigned short sv3_disc;
|
||
|
char *sv3_alerts;
|
||
|
unsigned short sv3_security;
|
||
|
unsigned short sv3_auditing;
|
||
|
unsigned short sv3_numadmin;
|
||
|
unsigned short sv3_lanmask;
|
||
|
unsigned short sv3_hidden;
|
||
|
unsigned short sv3_announce;
|
||
|
unsigned short sv3_anndelta;
|
||
|
char sv3_guestacct[LM20_UNLEN + 1];
|
||
|
unsigned char sv3_pad1;
|
||
|
char *sv3_userpath;
|
||
|
unsigned short sv3_chdevs;
|
||
|
unsigned short sv3_chdevq;
|
||
|
unsigned short sv3_chdevjobs;
|
||
|
unsigned short sv3_connections;
|
||
|
unsigned short sv3_shares;
|
||
|
unsigned short sv3_openfiles;
|
||
|
unsigned short sv3_sessopens;
|
||
|
unsigned short sv3_sessvcs;
|
||
|
unsigned short sv3_sessreqs;
|
||
|
unsigned short sv3_opensearch;
|
||
|
unsigned short sv3_activelocks;
|
||
|
unsigned short sv3_numreqbuf;
|
||
|
unsigned short sv3_sizreqbuf;
|
||
|
unsigned short sv3_numbigbuf;
|
||
|
unsigned short sv3_numfiletasks;
|
||
|
unsigned short sv3_alertsched;
|
||
|
unsigned short sv3_erroralert;
|
||
|
unsigned short sv3_logonalert;
|
||
|
unsigned short sv3_accessalert;
|
||
|
unsigned short sv3_diskalert;
|
||
|
unsigned short sv3_netioalert;
|
||
|
unsigned short sv3_maxauditsz;
|
||
|
char *sv3_srvheuristics;
|
||
|
unsigned long sv3_auditedevents;
|
||
|
unsigned short sv3_autoprofile;
|
||
|
char *sv3_autopath;
|
||
|
};
|
||
|
|
||
|
#define MAJOR_VERSION_MASK 0x0F
|
||
|
|
||
|
#define SV_TYPE_WORKSTATION 0x00000001
|
||
|
#define SV_TYPE_SERVER 0x00000002
|
||
|
#define SV_TYPE_SQLSERVER 0x00000004
|
||
|
#define SV_TYPE_DOMAIN_CTRL 0x00000008
|
||
|
#define SV_TYPE_DOMAIN_BAKCTRL 0x00000010
|
||
|
#define SV_TYPE_TIME_SOURCE 0x00000020
|
||
|
#define SV_TYPE_AFP 0x00000040
|
||
|
#define SV_TYPE_NOVELL 0x00000080
|
||
|
#define SV_TYPE_DOMAIN_MEMBER 0x00000100
|
||
|
#define SV_TYPE_PRINTQ_SERVER 0x00000200
|
||
|
#define SV_TYPE_DIALIN_SERVER 0x00000400
|
||
|
#define SV_TYPE_ALL 0xFFFFFFFF
|
||
|
|
||
|
#define SV_NODISC 0xFFFF
|
||
|
|
||
|
#define SV_USERSECURITY 1
|
||
|
#define SV_SHARESECURITY 0
|
||
|
|
||
|
#define SV_SECURITY_SHARE 0
|
||
|
#define SV_SECURITY_WINNT 1
|
||
|
#define SV_SECURITY_WINNTAS 2
|
||
|
#define SV_SECURITY_NETWARE 3
|
||
|
|
||
|
#define SV_HIDDEN 1
|
||
|
#define SV_VISIBLE 0
|
||
|
|
||
|
#define SVI1_NUM_ELEMENTS 5
|
||
|
#define SVI2_NUM_ELEMENTS 44
|
||
|
#define SVI3_NUM_ELEMENTS 45
|
||
|
|
||
|
#define SW_AUTOPROF_LOAD_MASK 0x1
|
||
|
#define SW_AUTOPROF_SAVE_MASK 0x2
|
||
|
|
||
|
extern API_FUNCTION NetSecurityGetInfo(const char *pszServer,short sLevel,char *pbBuffer,unsigned short cbBuffer,unsigned short *pcbTotalAvail);
|
||
|
|
||
|
struct security_info_1 {
|
||
|
unsigned long sec1_security;
|
||
|
char *sec1_container;
|
||
|
char *sec1_ab_server;
|
||
|
char *sec1_ab_dll;
|
||
|
};
|
||
|
|
||
|
#define SEC_SECURITY_SHARE SV_SECURITY_SHARE
|
||
|
#define SEC_SECURITY_WINNT SV_SECURITY_WINNT
|
||
|
#define SEC_SECURITY_WINNTAS SV_SECURITY_WINNTAS
|
||
|
#define SEC_SECURITY_NETWARE SV_SECURITY_NETWARE
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#ifndef RC_INVOKED
|
||
|
#pragma pack()
|
||
|
#endif
|
||
|
#endif
|