2025-04-27 07:49:33 -04:00

433 lines
14 KiB
C

/*****************************************************************/
/** Microsoft LAN Manager **/
/** Copyright (c) 1987-2001 Microsoft Corporation, All Rights Reserved **/
/*****************************************************************/
/********************************************************************
* *
* About this file ... SHARES.H *
* *
* This file contains information about the NetShare, NetSession, *
* NetFile, and NetConnection APIs. For each API class there is *
* a section on: *
* *
* Function prototypes. *
* *
* Data structure templates. *
* *
* Definition of special values. *
* *
* *
* NOTE: You must include NETCONS.H before this file, since this *
* file depends on values defined in NETCONS.H. *
* *
* This file is always included by LAN.H. *
* *
********************************************************************/
/****************************************************************
* *
* Share Class *
* *
****************************************************************/
#if (defined( INCL_NETSHARE ) || !defined( LAN_INCLUDED )) \
&& !defined( NETSHARE_INCLUDED )
#define NETSHARE_INCLUDED
/****************************************************************
* *
* Function prototypes - SHARE *
* *
****************************************************************/
extern API_FUNCTION
NetShareAdd ( const char far * pszServer,
short sLevel,
const char far * pbBuffer,
unsigned short cbBuffer );
extern API_FUNCTION
NetShareCheck ( const char far * pszServer,
const char far * pszDeviceName,
unsigned short far * pusType );
extern API_FUNCTION
NetShareDel ( const char far * pszServer,
const char far * pszNetName,
unsigned short usReserved );
extern API_FUNCTION
NetShareEnum ( const char far * pszServer,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcEntriesRead,
unsigned short far * pcTotalAvail );
extern API_FUNCTION
NetShareGetInfo ( const char far * pszServer,
const char far * pszNetName,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcbTotalAvail );
extern API_FUNCTION
NetShareSetInfo ( const char far * pszServer,
const char far * pszNetName,
short sLevel,
const char far * pbBuffer,
unsigned short cbBuffer,
short sParmNum );
/****************************************************************
* *
* Data structure templates - SHARE *
* *
****************************************************************/
struct share_info_0 {
char shi0_netname[NNLEN+1];
}; /* share_info_0 */
struct share_info_1 {
char shi1_netname[NNLEN+1];
char shi1_pad1;
unsigned short shi1_type;
char far * shi1_remark;
}; /* share_info_1 */
struct share_info_2 {
char shi2_netname[NNLEN+1];
char shi2_pad1;
unsigned short shi2_type;
char far * shi2_remark;
unsigned short shi2_permissions;
unsigned short shi2_max_uses;
unsigned short shi2_current_uses;
char far * shi2_path;
char shi2_passwd[SHPWLEN+1];
char shi2_pad2;
}; /* share_info_2 */
/****************************************************************
* *
* Special values and constants - SHARE *
* *
****************************************************************/
/*
* Values for parmnum parameter to NetShareSetInfo.
*/
#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
/*
* Share types (shi1_type and shi2_type fields).
*/
#define STYPE_DISKTREE 0
#define STYPE_PRINTQ 1
#define STYPE_DEVICE 2
#define STYPE_IPC 3
#define SHI_USES_UNLIMITED -1
#endif /* NETSHARE_INCLUDED */
/****************************************************************
* *
* Session Class *
* *
****************************************************************/
#if (defined( INCL_NETSESSION ) || !defined( LAN_INCLUDED )) \
&& !defined( NETSESSION_INCLUDED )
#define NETSESSION_INCLUDED
/****************************************************************
* *
* Function prototypes - SESSION *
* *
****************************************************************/
extern API_FUNCTION
NetSessionDel ( const char far * pszServer,
const char far * pszClientName,
short sReserved );
extern API_FUNCTION
NetSessionEnum ( const char far * pszServer,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcEntriesRead,
unsigned short far * pcTotalAvail );
extern API_FUNCTION
NetSessionGetInfo ( const char far * pszServer,
const char far * pszClientName,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcbTotalAvail );
/****************************************************************
* *
* Data structure templates - SESSION *
* *
****************************************************************/
struct session_info_0 {
char far * sesi0_cname;
}; /* session_info_0 */
struct session_info_1 {
char far * sesi1_cname;
char far * 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;
}; /* session_info_1 */
struct session_info_2 {
char far * sesi2_cname;
char far * 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 far * sesi2_cltype_name;
}; /* session_info_2 */
struct session_info_10 {
char far * sesi10_cname;
char far * sesi10_username;
unsigned long sesi10_time;
unsigned long sesi10_idle_time;
}; /* session_info_10 */
/****************************************************************
* *
* Special values and constants - SESSION *
* *
****************************************************************/
/*
* Bits defined in sesi1_user_flags.
*/
#define SESS_GUEST 1 /* session is logged on as a guest */
#define SESS_NOENCRYPTION 2 /* session is not using encryption */
#define SESI1_NUM_ELEMENTS 8
#define SESI2_NUM_ELEMENTS 9
#endif /* NETSESSION_INCLUDED */
/****************************************************************
* *
* Connection Class *
* *
****************************************************************/
#if (defined( INCL_NETCONNECTION ) || !defined( LAN_INCLUDED )) \
&& !defined( NETCONNECTION_INCLUDED )
#define NETCONNECTION_INCLUDED
/****************************************************************
* *
* Function prototypes - CONNECTION *
* *
****************************************************************/
extern API_FUNCTION
NetConnectionEnum ( const char far * pszServer,
const char far * pszQualifier,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcEntriesRead,
unsigned short far * pcTotalAvail );
/****************************************************************
* *
* Data structure templates - CONNECTION *
* *
****************************************************************/
struct connection_info_0 {
unsigned short coni0_id;
}; /* connection_info_0 */
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 far * coni1_username;
char far * coni1_netname;
}; /* connection_info_1 */
#endif /* NETCONNECTION_INCLUDED */
/****************************************************************
* *
* File Class *
* *
****************************************************************/
#if (defined( INCL_NETFILE ) || !defined( LAN_INCLUDED )) \
&& !defined( NETFILE_INCLUDED )
#define NETFILE_INCLUDED
/****************************************************************
* *
* Function prototypes - FILE *
* *
****************************************************************/
extern API_FUNCTION
NetFileClose ( const char far * pszServer,
unsigned short usFileId );
extern API_FUNCTION
NetFileClose2 ( const char far * pszServer,
unsigned long ulFileId );
extern API_FUNCTION
NetFileEnum ( const char far * pszServer,
const char far * pszBasePath,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcEntriesRead,
unsigned short far * pcTotalAvail );
extern API_FUNCTION
NetFileEnum2 ( const char far * pszServer,
const char far * pszBasePath,
const char far * pszUserName,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcEntriesRead,
unsigned short far * pcEntriesRemaining,
void far * pResumeKey );
extern API_FUNCTION
NetFileGetInfo ( const char far * pszServer,
unsigned short usFileId,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcbTotalAvail );
extern API_FUNCTION
NetFileGetInfo2 ( const char far * pszServer,
unsigned long ulFileId,
short sLevel,
char far * pbBuffer,
unsigned short cbBuffer,
unsigned short far * pcbTotalAvail );
/****************************************************************
* *
* Data structure templates - FILE *
* *
****************************************************************/
struct file_info_0 {
unsigned short fi0_id;
}; /* file_info_0 */
struct file_info_1 {
unsigned short fi1_id;
unsigned short fi1_permissions;
unsigned short fi1_num_locks;
char far * fi1_pathname;
char far * fi1_username;
}; /* file_info_1 */
struct file_info_2 {
unsigned long fi2_id;
}; /* file_info_2 */
struct file_info_3 {
unsigned long fi3_id;
unsigned short fi3_permissions;
unsigned short fi3_num_locks;
char far * fi3_pathname;
char far * fi3_username;
}; /* file_info_3 */
struct res_file_enum_2 {
unsigned short res_pad; /* not used now */
unsigned short res_fs; /* server type */
unsigned long res_pro; /* progressive */
}; /* res_file_enum_2 */
/****************************************************************
* *
* Special values and constants - FILE *
* *
****************************************************************/
/* bit values for permissions */
#define PERM_FILE_READ 0x1 /* user has read access */
#define PERM_FILE_WRITE 0x2 /* user has write access */
#define PERM_FILE_CREATE 0x4 /* user has create access */
typedef struct res_file_enum_2 FRK;
#define FRK_INIT( f ) \
{ \
(f).res_pad = 0L; \
(f).res_fs = 0; \
(f).res_pro = 0; \
}
#endif /* NETFILE_INCLUDED */