📄 svrapi.h
字号:
/********************************************************************/
/** Microsoft Windows **/
/** Copyright(c) Microsoft Corp., 1995 **/
/********************************************************************/
/********************************************************************
* *
* About this file ... SVRAPI.H *
* *
* This file contains information about the NetAccess, *
* NetConnection, NetFile, NetServer, NetSession, NetShare and *
* NetSecurity APIs. *
* There is a section for each set of APIs. *
* Each section contains: *
* *
* Function prototypes. *
* *
* Data structure templates. *
* *
* Definition of special values. *
* *
* Description of level of Win95 peer server support *
*
* For background information refer to the Lan Manager Programmer's
* Reference.
*
* WARNING:
* The APIs documented herein are not guaranteed to be supported
* in future versions of Windows. Their primary purpose is to *
* administer Win95 peer servers. *
* *
********************************************************************/
/*
* NOTE: Lengths of ASCIIZ strings are given as the maximum
* strlen() value. This does not include space for the
* terminating 0-byte. When allocating space for such an item,
* use the form:
*
* char username[LM20_UNLEN+1];
*
* An exception to this is the PATHLEN manifest, which does
* include space for the terminating 0-byte.
*
* User names, computer names and share names should be
* upper-cased by the caller and drawn from the ANSI
* character set.
*
*/
/*NOINC*/
#ifndef SVRAPI_INCLUDED
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define SVRAPI_INCLUDED
#include <lmcons.h>
#include <lmerr.h>
#ifndef RC_INVOKED
#pragma pack(1) /* Assume byte packing throughout */
#endif
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
#if !defined(_SVRAPI_)
#define API_FUNCTION DECLSPEC_IMPORT API_RET_TYPE APIENTRY
#else
#define API_FUNCTION API_RET_TYPE APIENTRY
#endif
/*INC*/
/****************************************************************
* *
* Access Class *
* *
****************************************************************/
/****************************************************************
* *
* Function prototypes - ACCESS *
*
* Requires User level security to be enabled
* *
* Peer Server Support:
* Remote support of these APIs on NWSERVER is limited as
* described below:
*
* NetAccessAdd -
* local and remote VSERVER - level 2
* remote NWSERVER - level 2
* NetAccessCheck - local only
* NetAccessDel -
* local, remote NWSERVER and remote VSERVER
* NetAccessEnum -
* sLevel 0 on remote NWSERVER (fRecursive = 1),
* slevel 0, 1, 2 on local and remote VSERVER
* NetAccessGetInfo -
* all sLevels on local and remote VSERVER,
* sLevel 0, 12 on remote NWSERVER
* NetAccessSetInfo -
* sLevel 1, 12 on local and remote VSERVER,
* sLevel 12 on remote NWSERVER
* parmnum = PARMNUM_ALL only
* NetAccessGetUserPerms - local and remote VSERVER only
****************************************************************/
extern API_FUNCTION
NetAccessAdd ( const char FAR * pszServer,
short sLevel,
char FAR * pbBuffer,
unsigned short cbBuffer );
extern API_FUNCTION
NetAccessCheck ( char FAR * pszReserved,
char FAR * pszUserName,
char FAR * pszResource,
unsigned short usOperation,
unsigned short FAR * pusResult );
extern API_FUNCTION
NetAccessDel ( const char FAR * pszServer,
char FAR * pszResource );
extern API_FUNCTION
NetAccessEnum ( const char FAR * pszServer,
char FAR * pszBasePath,
short fsRecursive,
short sLevel,
char FAR * pbBuffer,
unsigned short cbBuffer,
unsigned short FAR * pcEntriesRead,
unsigned short FAR * pcTotalAvail );
extern API_FUNCTION
NetAccessGetInfo ( const char FAR * pszServer,
char FAR * pszResource,
short sLevel,
char FAR * pbBuffer,
unsigned short cbBuffer,
unsigned short FAR * pcbTotalAvail );
extern API_FUNCTION
NetAccessSetInfo ( const char FAR * pszServer,
char FAR * pszResource,
short sLevel,
char FAR * pbBuffer,
unsigned short cbBuffer,
short sParmNum );
extern API_FUNCTION
NetAccessGetUserPerms ( char FAR * pszServer,
char FAR * pszUgName,
char FAR * pszResource,
unsigned short FAR * pusPerms );
/****************************************************************
* *
* Data structure templates - ACCESS *
* *
****************************************************************/
struct access_list {
char acl_ugname[LM20_UNLEN+1];
char acl_ugname_pad_1;
short acl_access;
}; /* access_list */
struct access_list_2
{
char FAR * acl2_ugname;
unsigned short acl2_access;
}; /* access_list_2 */
struct access_list_12
{
char FAR * acl12_ugname;
unsigned short acl12_access;
}; /* access_list_12 */
struct access_info_0 {
char FAR * acc0_resource_name;
}; /* access_info_0 */
struct access_info_1 {
char FAR * acc1_resource_name;
short acc1_attr; /* See values below */
short acc1_count;
}; /* access_info_1 */
struct access_info_2
{
char FAR * acc2_resource_name;
short acc2_attr;
short acc2_count;
}; /* access_info_2 */
struct access_info_10 {
char FAR * acc10_resource_name;
}; /* access_info_10 */
struct access_info_12
{
char FAR * acc12_resource_name;
short acc12_attr;
short acc12_count;
}; /* access_info_12 */
/****************************************************************
* *
* Special values and constants - ACCESS *
* *
****************************************************************/
/*
* Maximum number of permission entries for each resource.
*/
#define MAXPERMENTRIES 64
/*
* Bit values for the access permissions. ACCESS_ALL is a handy
* way to specify maximum permissions. These are used in
* acl_access field of access_list structures.
*/
/*NOINC*/
#define ACCESS_NONE 0
#define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM|ACCESS_FINDFIRST)
/*INC*/
#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
/*
* Bit values for the acc1_attr field of the access_info_1 structure.
* Only one bit is currently defined.
*/
#define ACCESS_AUDIT 0x1
/*
* Parmnum value for NetAccessSetInfo.
*/
#define ACCESS_ATTR_PARMNUM 2
/*
* ACCESS_LETTERS defines a letter for each bit position in
* the acl_access field of struct access_list. Note that some
* bits have a corresponding letter of ' ' (space).
*/
#define ACCESS_LETTERS "RWCXDAP "
/****************************************************************
* *
* Share Class *
* *
****************************************************************/
/****************************************************************
* *
* Function prototypes - SHARE *
* *
* Peer Server Support
* NetShareAdd() - sLevel 50 on VSERVER and NWSERVER
* NetShareDel() - VSERVER and NWSERVER
* NetShareEnum() - sLevel 1,50 on VSERVER; 50 on NWSERVER
* NetShareGetInfo() - sLevel 50 on VSERVER, NWSERVER
* NetShareSetInfo() - sLevel 50, sParmNum PARMNUM_ALL
* on VSERVER, NWSERVER
****************************************************************/
/*** NetShareAdd - add a new share to the server tables
*
* NetShareAdd( servername, level, buf, buflen )
*
* ENTRY: servername - asciz string containing name of server
* or NULL if local
* level- Must be 50 for Win95 peer servers.
* buf - far ptr to struct share_info
* buflen - unsigned int length of buffer
*
* EXIT: 0 = success
* ERROR_INVALID_LEVEL
* ERROR_BAD_NETPATH
* ERROR_INVALID_PARAMETER
* NERR_UnknownDevDir
* NERR_ShareExists
* NERR_UnknownServer
* NERR_ServerNotStarted
* NERR_RedirectedPath
* NERR_DuplicateShare
* NERR_BufTooSmall
* ERROR_NOT_ENOUGH_MEMORY
*
*/
extern API_FUNCTION
NetShareAdd ( const char FAR * pszServer,
short sLevel,
const char FAR * pbBuffer,
unsigned short cbBuffer );
/*** NetShareDel (Admin only)
*
* API_FUNCTION NetShareDel( servername, netname, reserved )
*
* ENTRY
*
* char FAR * servername; asciz remote srv name, NULL if local
* char FAR * netname; asciz network name of share being deleted
* unsigned short reserved; MBZ
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -