SvrAPI.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:46k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /********************************************************************/
  2. /**                     Microsoft Windows                          **/
  3. /**               Copyright(c) Microsoft Corp., 1995 - 1999        **/
  4. /********************************************************************/
  5. /********************************************************************
  6.  *                                                                  *
  7.  *  About this file ...  SVRAPI.H                                   *
  8.  *                                                                  *
  9.  *  This file contains information about the NetAccess,             *
  10.  *  NetConnection, NetFile, NetServer, NetSession, NetShare and     *
  11.  *  NetSecurity APIs.                                               *
  12.  *  There is a section for each set of APIs.                        *
  13.  *  Each section contains:                                          *
  14.  *                                                                  *
  15.  *      Function prototypes.                                        *
  16.  *                                                                  *
  17.  *      Data structure templates.                                   *
  18.  *                                                                  *
  19.  *      Definition of special values.                               *
  20.  *                                                                  *
  21.  *      Description of level of Win95 peer server support           *
  22.  *
  23.  *  For background information refer to the Lan Manager Programmer's
  24.  *  Reference.
  25.  *
  26.  *  WARNING:
  27.  *      The APIs documented herein are not guaranteed to be supported
  28.  * in future versions of Windows. Their primary purpose is to       *
  29.  * administer Win95 peer servers.                                   *
  30.  *                                                                  *
  31.  ********************************************************************/
  32. /*
  33.  *      NOTE:  Lengths of ASCIIZ strings are given as the maximum
  34.  *      strlen() value.  This does not include space for the
  35.  *      terminating 0-byte.  When allocating space for such an item,
  36.  *      use the form:
  37.  *
  38.  *              char username[LM20_UNLEN+1];
  39.  *
  40.  *      An exception to this is the PATHLEN manifest, which does
  41.  *      include space for the terminating 0-byte.
  42.  *
  43.  *      User names, computer names and share names should be
  44.  *      upper-cased by the caller and drawn from the ANSI 
  45.  *      character set.
  46.  * 
  47.  */
  48. /*NOINC*/
  49. #ifndef SVRAPI_INCLUDED
  50. #define SVRAPI_INCLUDED
  51. #include <lmcons.h>
  52. #include <lmerr.h>
  53. #ifndef RC_INVOKED
  54. #pragma pack(1)         /* Assume byte packing throughout */
  55. #endif
  56. #ifdef __cplusplus
  57. extern "C" {            /* Assume C declarations for C++ */
  58. #endif /* __cplusplus */
  59. #if !defined(_SVRAPI_)
  60. #define API_FUNCTION DECLSPEC_IMPORT API_RET_TYPE APIENTRY
  61. #else
  62. #define API_FUNCTION API_RET_TYPE APIENTRY
  63. #endif
  64. /*INC*/
  65. /****************************************************************
  66.  *                                                              *
  67.  *                 Access Class                                 *
  68.  *                                                              *
  69.  ****************************************************************/
  70. /****************************************************************
  71.  *                                                              *
  72.  *                  Function prototypes - ACCESS                *
  73.  *
  74.  *  Requires User level security to be enabled
  75.  *                                                              *
  76.  * Peer Server Support:
  77.  *      Remote support of these APIs on NWSERVER is limited as
  78.  *      described below:
  79.  *
  80.  * NetAccessAdd -
  81.  * local and remote VSERVER - level 2
  82.  *              remote NWSERVER -          level 2
  83.  *     NetAccessCheck - local only
  84.  *      NetAccessDel - 
  85.  *              local, remote NWSERVER and remote VSERVER
  86.  *      NetAccessEnum -
  87.  *              sLevel 0 on remote NWSERVER (fRecursive = 1),
  88.  *              slevel 0, 1, 2 on local and remote VSERVER
  89.  * NetAccessGetInfo -
  90.  *               all sLevels on local and remote VSERVER,
  91.  *        sLevel 0, 12 on remote NWSERVER
  92.  *      NetAccessSetInfo - 
  93.  *              sLevel 1, 12 on local and remote VSERVER,
  94.  *              sLevel 12 on remote NWSERVER
  95.  *              parmnum = PARMNUM_ALL only
  96.  *      NetAccessGetUserPerms - local and remote VSERVER only
  97.  ****************************************************************/
  98. extern API_FUNCTION
  99.   NetAccessAdd ( const char FAR * pszServer,
  100.                  short            sLevel,
  101.                  char FAR *       pbBuffer,
  102.                  unsigned short   cbBuffer );
  103. extern API_FUNCTION
  104.   NetAccessCheck ( char FAR *           pszReserved,
  105.                    char FAR *           pszUserName,
  106.                    char FAR *           pszResource,
  107.                    unsigned short       usOperation,
  108.                    unsigned short FAR * pusResult );
  109. extern API_FUNCTION
  110.   NetAccessDel ( const char FAR * pszServer,
  111.                  char FAR *       pszResource );
  112. extern API_FUNCTION
  113.   NetAccessEnum ( const char FAR *     pszServer,
  114.                   char FAR *           pszBasePath,
  115.                   short                fsRecursive,
  116.                   short                sLevel,
  117.                   char FAR *           pbBuffer,
  118.                   unsigned short       cbBuffer,
  119.                   unsigned short FAR * pcEntriesRead,
  120.                   unsigned short FAR * pcTotalAvail );
  121. extern API_FUNCTION
  122.   NetAccessGetInfo ( const char FAR *     pszServer,
  123.                      char FAR *           pszResource,
  124.                      short                sLevel,
  125.                      char FAR *           pbBuffer,
  126.                      unsigned short       cbBuffer,
  127.                      unsigned short FAR * pcbTotalAvail );
  128. extern API_FUNCTION
  129.   NetAccessSetInfo ( const char FAR * pszServer,
  130.                      char FAR *       pszResource,
  131.                      short            sLevel,
  132.                      char FAR *       pbBuffer,
  133.                      unsigned short   cbBuffer,
  134.                      short            sParmNum );
  135. extern API_FUNCTION
  136.   NetAccessGetUserPerms ( char FAR *           pszServer,
  137.                           char FAR *           pszUgName,
  138.                           char FAR *           pszResource,
  139.                           unsigned short FAR * pusPerms );
  140. /****************************************************************
  141.  *                                                              *
  142.  *              Data structure templates - ACCESS               *
  143.  *                                                              *
  144.  ****************************************************************/
  145. struct access_list {
  146.         char            acl_ugname[LM20_UNLEN+1];
  147.         char            acl_ugname_pad_1;
  148.         short           acl_access;
  149. };      /* access_list */
  150. struct access_list_2
  151. {
  152.         char FAR *      acl2_ugname;
  153.         unsigned short  acl2_access;
  154. };      /* access_list_2 */
  155.              
  156. struct access_list_12
  157. {
  158.         char FAR *      acl12_ugname;
  159.         unsigned short  acl12_access;
  160. };      /* access_list_12 */
  161.              
  162. struct access_info_0 {
  163.         char FAR *      acc0_resource_name;
  164. };      /* access_info_0 */
  165. struct access_info_1 {
  166.         char  FAR *     acc1_resource_name;
  167.         short           acc1_attr;                      /* See values below */
  168.         short           acc1_count;
  169. };      /* access_info_1 */
  170. struct access_info_2 
  171. {
  172.         char  FAR *     acc2_resource_name;
  173.         short           acc2_attr;
  174.         short           acc2_count;
  175. };      /* access_info_2 */
  176. struct access_info_10 {
  177.         char FAR *      acc10_resource_name;
  178. };      /* access_info_10 */
  179. struct access_info_12 
  180. {
  181.         char  FAR *     acc12_resource_name;
  182.         short           acc12_attr;
  183.         short           acc12_count;
  184. };      /* access_info_12 */
  185. /****************************************************************
  186.  *                                                              *
  187.  *              Special values and constants - ACCESS           *
  188.  *                                                              *
  189.  ****************************************************************/
  190. /*
  191.  *      Maximum number of permission entries for each resource.
  192.  */
  193. #define MAXPERMENTRIES  64
  194. /*
  195.  *      Bit values for the access permissions.  ACCESS_ALL is a handy
  196.  *      way to specify maximum permissions.  These are used in
  197.  *      acl_access field of access_list structures.
  198.  */
  199. /*NOINC*/
  200. #define         ACCESS_NONE     0
  201. #define         ACCESS_ALL     (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM|ACCESS_FINDFIRST)
  202. /*INC*/
  203. #define         ACCESS_READ     0x1
  204. #define         ACCESS_WRITE    0x2
  205. #define         ACCESS_CREATE   0x4
  206. #define         ACCESS_EXEC     0x8
  207. #define         ACCESS_DELETE   0x10
  208. #define         ACCESS_ATRIB    0x20
  209. #define         ACCESS_PERM     0x40
  210. #define         ACCESS_FINDFIRST 0x80
  211. #define         ACCESS_GROUP    0x8000
  212. /*
  213.  *      Bit values for the acc1_attr field of the access_info_1 structure.
  214.  *      Only one bit is currently defined.
  215.  */
  216. #define         ACCESS_AUDIT            0x1
  217. /*
  218.  *      Parmnum value for NetAccessSetInfo.
  219.  */
  220. #define         ACCESS_ATTR_PARMNUM     2
  221. /*
  222.  *      ACCESS_LETTERS defines a letter for each bit position in
  223.  *      the acl_access field of struct access_list.  Note that some
  224.  *      bits have a corresponding letter of ' ' (space).
  225.  */
  226. #define         ACCESS_LETTERS          "RWCXDAP         "
  227. /****************************************************************
  228.  * *
  229.  *    Share Class                 *
  230.  * *
  231.  ****************************************************************/
  232. /****************************************************************
  233.  *                                                              *
  234.  *              Function prototypes - SHARE                     *
  235.  *                                                              *
  236.  * Peer Server Support
  237.  *  NetShareAdd() - sLevel 50 on VSERVER and NWSERVER
  238.  *  NetShareDel() - VSERVER and NWSERVER
  239.  * NetShareEnum() - sLevel 1,50 on VSERVER; 50 on NWSERVER
  240.  *      NetShareGetInfo() - sLevel 50 on VSERVER, NWSERVER
  241.  *  NetShareSetInfo() - sLevel 50, sParmNum PARMNUM_ALL
  242.  *  on VSERVER, NWSERVER
  243.  ****************************************************************/
  244. /*** NetShareAdd - add a new share to the server tables
  245.  *
  246.  * NetShareAdd( servername, level, buf, buflen )
  247.  *
  248.  * ENTRY: servername - asciz string containing name of server
  249.  *                       or NULL if local
  250.  * level- Must be 50 for Win95 peer servers.
  251.  * buf - far ptr to struct share_info
  252.  * buflen - unsigned int length of buffer
  253.  *
  254.  * EXIT: 0 = success
  255.  * ERROR_INVALID_LEVEL
  256.  *      ERROR_BAD_NETPATH
  257.  * ERROR_INVALID_PARAMETER
  258.  * NERR_UnknownDevDir
  259.  * NERR_ShareExists
  260.  * NERR_UnknownServer
  261.  * NERR_ServerNotStarted
  262.  * NERR_RedirectedPath
  263.  * NERR_DuplicateShare
  264.  * NERR_BufTooSmall
  265.  * ERROR_NOT_ENOUGH_MEMORY
  266.  *
  267.  */
  268. extern API_FUNCTION
  269.   NetShareAdd ( const char FAR * pszServer,
  270.                 short            sLevel,
  271.                 const char FAR * pbBuffer,
  272.                 unsigned short   cbBuffer );
  273. /*** NetShareDel (Admin only)
  274.  *
  275.  * API_FUNCTION NetShareDel( servername, netname, reserved )
  276.  *
  277.  * ENTRY
  278.  *
  279.  * char FAR *  servername;     asciz remote srv name, NULL if local
  280.  * char FAR *  netname;        asciz network name of share being deleted
  281.  * unsigned short reserved;    MBZ
  282.  *
  283.  * EXIT
  284.  *
  285.  * 0 = success
  286.  * NERR_NetNotStarted
  287.  *  ERROR_BAD_NETPATH
  288.  * NERR_ServerNotStarted
  289.  * NERR_NetNameNotFound
  290.  * ERROR_INVALID_PARAMETER
  291.  *
  292.  *
  293.  * Note:  Deleting a share will also delete any existing connections
  294.  * to the shared resource, and close open files within the
  295.  * connections.
  296.  */
  297. extern API_FUNCTION
  298.   NetShareDel ( const char FAR * pszServer,
  299.                 const char FAR * pszNetName,
  300.                 unsigned short   usReserved );
  301. /* 2.1  NetShareEnum
  302.  *
  303.  * API_FUNCTION
  304.  * NetShareEnum( servername, level, buf, buflen, entriesread, totalentries )
  305.  * char FAR *          servername;     asciz remote server name or NULL if local
  306.  * short               sLevel;         level of detail requested; 1 or 50
  307.  * char FAR *          pbBuffer;       buffer to return entries in
  308.  * unsigned short      cbBuffer;       size of buffer on call
  309.  * unsigned short FAR *pcEntriesRead;  # of entries supplied on return
  310.  * unsigned short FAR *pcTotalAvail ;  total # of entries available
  311.  *
  312.  * Supply information about existing shares at specified level.
  313.  *
  314.  * Buffer contents on response (format for a single entry):
  315.  *     Level 1 contains a "struct share_info_1".
  316.  *     Level 50 contains a "struct share_info_50".
  317.  *
  318.  * Returns 0 if successful.  Possible error returns:
  319.  *  ERROR_INVALID_LEVEL
  320.  *  ERROR_BAD_NETPATH
  321.  *  NERR_NetNotStarted
  322.  *  NERR_ServerNotStarted
  323.  *  ERROR_MORE_DATA
  324.  */
  325. extern API_FUNCTION
  326.   NetShareEnum ( const char FAR *     pszServer,
  327.                  short                sLevel,
  328.                  char FAR *           pbBuffer,
  329.                  unsigned short       cbBuffer,
  330.                  unsigned short FAR * pcEntriesRead,
  331.                  unsigned short FAR * pcTotalAvail );
  332. /* 2.2  NetShareGetInfo
  333.  *
  334.  * Purpose: Read complete information about a single outstanding share.
  335.  *
  336.  * API_FUNCTION
  337.  * NetShareGetInfo( servername, netname, level, buf, buflen, totalavail )
  338.  * char FAR *          servername;     asciz remote server name or NULL if local
  339.  * char FAR *          netname;        asciz network name of share being queried
  340.  * short               level;          level of info requested (50 for Win95 peer servers)
  341.  * char FAR *          buf;            for returned entry
  342.  * unsigned short      buflen;         size of buffer
  343.  * unsigned short FAR *totalavail;     total size needed for buffer
  344.  *
  345.  * Buffer contents on response:
  346.  *     Level 50 contains a "struct share_info_50".
  347.  *
  348.  * Returns 0 if successful.  Possible error returns:
  349.  *  ERROR_INVALID_LEVEL
  350.  *  ERROR_INVALID_PARAMETER
  351.  *  ERROR_BAD_NETPATH
  352.  *  NERR_NetNotStarted
  353.  *  NERR_ServerNotStarted
  354.  *  NERR_NetNameNotFound
  355.  *  NERR_MoreData
  356.  *  NERR_BufTooSmall
  357.  */
  358. extern API_FUNCTION
  359.   NetShareGetInfo ( const char FAR *     pszServer,
  360.                     const char FAR *     pszNetName,
  361.                     short                sLevel,
  362.                     char FAR *           pbBuffer,
  363.                     unsigned short       cbBuffer,
  364.                     unsigned short FAR * pcbTotalAvail );
  365. /*** NetShareSetInfo (Admin only)
  366.  *
  367.  * API_FUNCTION NetShareSetInfo( servername,
  368.  * netname,
  369.  * level,
  370.  * buf,
  371.  * buflen,
  372.  * parmnum )
  373.  *
  374.  * ENTRY
  375.  *
  376.  * servername;     asciz remote srv name, NULL if local
  377.  * netname;        asciz network name of share being set
  378.  * level; level of info provided (50 for Win95 peer servers)
  379.  * buf;            contents described below
  380.  * buflen;         size of buffer
  381.  * parmnum;        must be PARMNUM_ALL for Win95 peer servers
  382.  *
  383.  * Buffer contents on call if parmnum is zero:
  384.  *        Level 50 contains a "struct share_info_50".
  385.  *
  386.  * Settable fields are:
  387.  *          shi_remark
  388.  *          shi_passwd
  389.  *
  390.  * EXIT
  391.  *
  392.  * 0 = success
  393.  * NERR_NetNotStarted
  394.  * NERR_ServerNotStarted
  395.  * NERR_NetNameNotFound
  396.  * ERROR_INVALID_LEVEL
  397.  *  NERR_BufTooSmall
  398.  * NERR_RemoteErr
  399.  * ERROR_MORE_DATA
  400.  * ERROR_INVALID_PARAMETER
  401.  ***/
  402. extern API_FUNCTION
  403.   NetShareSetInfo ( const char FAR * pszServer,
  404.                     const char FAR * pszNetName,
  405.                     short            sLevel,
  406.                     const char FAR * pbBuffer,
  407.                     unsigned short   cbBuffer,
  408.                     short            sParmNum );
  409. /****************************************************************
  410.  * *
  411.  *    Data structure templates - SHARE *
  412.  *
  413.  ****************************************************************/
  414. struct share_info_0 {
  415.     char shi0_netname[LM20_NNLEN+1];
  416. };  /* share_info_0 */
  417. struct share_info_1 {
  418.     char shi1_netname[LM20_NNLEN+1];
  419.     char shi1_pad1;
  420.     unsigned short shi1_type;
  421.     char FAR * shi1_remark;
  422. };  /* share_info_1 */
  423. struct share_info_2 {
  424.     char shi2_netname[LM20_NNLEN+1];
  425.     char shi2_pad1;
  426.     unsigned short shi2_type;
  427.     char FAR * shi2_remark;
  428.     unsigned short shi2_permissions;
  429.     unsigned short shi2_max_uses;
  430.     unsigned short shi2_current_uses;
  431.     char FAR * shi2_path;
  432.     char  shi2_passwd[SHPWLEN+1];
  433.     char shi2_pad2;
  434. };  /* share_info_2 */
  435. struct share_info_50 {
  436. char shi50_netname[LM20_NNLEN+1];    /* share name */
  437. unsigned char  shi50_type;                 /* see below */
  438.     unsigned short shi50_flags;                /* see below */
  439. char FAR * shi50_remark;                   /* ANSI comment string */
  440. char FAR * shi50_path;                     /* shared resource */
  441. char shi50_rw_password[SHPWLEN+1];   /* read-write password (share-level security) */
  442. char shi50_ro_password[SHPWLEN+1];   /* read-only password (share-level security) */
  443. }; /* share_info_50 */
  444. /****************************************************************
  445.  * *
  446.  *    Special values and constants - SHARE *
  447.  * *
  448.  ****************************************************************/
  449. /* Field values for shi50_flags; */
  450. /* These flags are relevant for share-level security on VSERVER
  451.  * When operating with user-level security, use SHI50F_FULL - the actual
  452.  * access rights are determined by the NetAccess APIs.
  453.  */
  454. #define SHI50F_RDONLY 0x0001
  455. #define SHI50F_FULL 0x0002
  456. #define SHI50F_DEPENDSON (SHI50F_RDONLY|SHI50F_FULL)
  457. #define SHI50F_ACCESSMASK (SHI50F_RDONLY|SHI50F_FULL)
  458. /* The share is restored on system startup */
  459. #define SHI50F_PERSIST 0x0100
  460. /* The share is not normally visible  */
  461. #define SHI50F_SYSTEM 0x0200
  462. /*
  463.  * Values for parmnum parameter to NetShareSetInfo.
  464.  */
  465. #ifndef PARMNUM_ALL
  466. #define PARMNUM_ALL 0
  467. #endif
  468. #define SHI_REMARK_PARMNUM 4
  469. #define SHI_PERMISSIONS_PARMNUM 5
  470. #define SHI_MAX_USES_PARMNUM 6
  471. #define SHI_PASSWD_PARMNUM 9
  472. #define SHI1_NUM_ELEMENTS 4
  473. #define SHI2_NUM_ELEMENTS 10
  474. /*
  475.  * Share types .
  476.  *  
  477.  *  STYPE_DISKTREE and STYPE_PRINTQ are recognized on peer servers
  478.  */
  479. #define STYPE_DISKTREE  0       /* disk share */
  480. #define STYPE_PRINTQ    1       /* printer share */
  481. #define STYPE_DEVICE    2
  482. #define STYPE_IPC       3
  483. #define SHI_USES_UNLIMITED -1
  484. /****************************************************************
  485.  * *
  486.  *    Session Class                 *
  487.  * *
  488.  ****************************************************************/
  489. /****************************************************************
  490.  *                                                              *
  491.  *              Function prototypes - SESSION                   *
  492.  *
  493.  * Peer Server Support                                         *
  494.  *   NetSessionDel() - NWSERVER and VSERVER  *
  495.  *     NetSessionEnum() - sLevel 50 on NWSERVER and VSERVER    *
  496.  * NetSessionGetInfo() - not supported on peer servers     *
  497.  ****************************************************************/
  498. /*** NetSessionDel (Admin only)
  499.  *
  500.  *
  501.  * API_FUNCTION NetSessionDel( servername, clientname, reserved )
  502.  *
  503.  * ENTRY
  504.  *
  505.  *  servername;     asciz remote srv name, NULL if local
  506.  * clientname;     asciz remote computer name (returned by NetSessionEnum)
  507.  *                                of session being deleted
  508.  *                  In the case of a Win95 NWSERVER, the clientname should be the
  509.  *                  ascii connection number
  510.  * reserved;       session key returned by NetSessionEnum
  511.  *
  512.  *  EXIT
  513.  *
  514.  * 0 = success
  515.  * NERR_NetNotStarted
  516.  *  ERROR_BAD_NETPATH
  517.  * NERR_ServerNotStarted
  518.  * ERROR_INVALID_LEVEL
  519.  * NERR_RemoteErr
  520.  * NERR_RemoteOnly
  521.  *  ERROR_ACCESS_DENIED
  522.  * NERR_BufTooSmall
  523.  * NERR_ClientNameNotFound
  524.  *
  525.  ***/
  526. extern API_FUNCTION
  527.   NetSessionDel ( const char FAR * pszServer,
  528.                   const char FAR * pszClientName,
  529.                   short            sReserved );
  530. /*** NetSessionEnum
  531.  *
  532.  * API_FUNCTION NetSessionEnum( servername,
  533.  *        level,
  534.  *        buf,
  535.  *        buflen,
  536.  *        entriesread,
  537.  *        totalentries )
  538.  * ENTRY
  539.  *
  540.  * servername;     asciz remote srv name, NULL if local
  541.  *  level;          level of detail requested; (50 for Win95 peer servers)
  542.  * buf;            for returned entries
  543.  * buflen;         size of buffer on call;
  544.  * entriesread;    # of entries supplied on return
  545.  * totalentries;   total # of entries available
  546.  *
  547.  *  EXIT
  548.  *
  549.  * 0 = success
  550.  * NERR_NetNotStarted
  551.  * NERR_ServerNotStarted
  552.  *  ERROR_BAD_NETPATH
  553.  * ERROR_INVALID_LEVEL
  554.  * NERR_RemoteErr
  555.  * ERROR_MORE_DATA
  556.  *  ERROR_ACCESS_DENIED
  557.  *
  558.  * Buffer contains an array of session_info structures.
  559.  *
  560.  ***/
  561. extern API_FUNCTION
  562.   NetSessionEnum ( const char FAR *     pszServer,
  563.                    short                sLevel,
  564.                    char FAR *           pbBuffer,
  565.                    unsigned short       cbBuffer,
  566.                    unsigned short FAR * pcEntriesRead,
  567.                    unsigned short FAR * pcTotalAvail );
  568. extern API_FUNCTION
  569.   NetSessionGetInfo ( const char FAR *     pszServer,
  570.                       const char FAR *     pszClientName,
  571.                       short                sLevel,
  572.                       char FAR *           pbBuffer,
  573.                       unsigned short       cbBuffer,
  574.                       unsigned short FAR * pcbTotalAvail );
  575. /****************************************************************
  576.  * *
  577.  * Data structure templates - SESSION *
  578.  * *
  579.  ****************************************************************/
  580. struct session_info_0 {
  581.     char FAR * sesi0_cname;
  582. };  /* session_info_0 */
  583. struct session_info_1 {
  584.     char FAR * sesi1_cname;
  585.     char FAR * sesi1_username;
  586.     unsigned short sesi1_num_conns;
  587.     unsigned short sesi1_num_opens;
  588.     unsigned short sesi1_num_users;
  589.     unsigned long sesi1_time;
  590.     unsigned long sesi1_idle_time;
  591.     unsigned long sesi1_user_flags;
  592. };  /* session_info_1 */
  593. struct session_info_2 {
  594.     char FAR *  sesi2_cname;
  595.     char FAR *  sesi2_username;
  596.     unsigned short  sesi2_num_conns;
  597.     unsigned short  sesi2_num_opens;
  598.     unsigned short  sesi2_num_users;
  599.     unsigned long  sesi2_time;
  600.     unsigned long  sesi2_idle_time;
  601.     unsigned long  sesi2_user_flags;
  602.     char FAR *  sesi2_cltype_name;
  603. };  /* session_info_2 */
  604. struct session_info_10 {
  605.         char FAR *     sesi10_cname;
  606.         char FAR *     sesi10_username;
  607.         unsigned long  sesi10_time;
  608.         unsigned long  sesi10_idle_time;
  609. };  /* session_info_10 */
  610. struct session_info_50 {
  611. char FAR * sesi50_cname;            //remote computer name (connection id in Netware)
  612. char FAR * sesi50_username;
  613. unsigned long sesi50_key;           // used to delete session (not used in Netware)
  614. unsigned short sesi50_num_conns;
  615. unsigned short sesi50_num_opens;    //not available in Netware
  616. unsigned long sesi50_time;
  617. unsigned long sesi50_idle_time; //not available in Netware
  618. unsigned char sesi50_protocol;
  619. unsigned char pad1;
  620. }; /* session_info_50 */
  621. /****************************************************************
  622.  * *
  623.  *    Special values and constants - SESSION *
  624.  * *
  625.  ****************************************************************/
  626. /*
  627.  * Bits defined in sesi1_user_flags.
  628.  */
  629. #define SESS_GUEST 1 /* session is logged on as a guest */
  630. #define SESS_NOENCRYPTION 2 /* session is not using encryption */
  631. #define SESI1_NUM_ELEMENTS 8
  632. #define SESI2_NUM_ELEMENTS 9
  633. /****************************************************************
  634.  * *
  635.  *    Connection Class         *
  636.  * *
  637.  ****************************************************************/
  638. /****************************************************************
  639.  *                                                              *
  640.  *              Function prototypes - CONNECTION                *
  641.  *                                                              *
  642.  *  Peer Server Support
  643.  *  NetConnectionEnum -
  644.  *               sLevel 50 on VSERVER and NWSERVER              *
  645.  *               On NWSERVER, this API doesnt provide more      *
  646.  *               information than NetSessionEnum
  647.  ****************************************************************/
  648. /*** NetConnectionEnum (Admin only)
  649.  *
  650.  * API_FUNCTION NetConnectionEnum( servername, 
  651.  *   qualifier, 
  652.  *   level, 
  653.  *   buf, 
  654.  *   buflen, 
  655.  *   totalavail )
  656.  *
  657.  * ENTRY
  658.  *
  659.  * servername;     asciz remote srv name, NULL if local
  660.  * qualifier;      netname or client computer name.
  661.  *                  computer name should be prefaced by '\'.
  662.  * level;      level of info requested
  663.  * buf;            for returned entry
  664.  * buflen;         size of buffer 
  665.  * totalavail;     total size needed for buffer
  666.  *
  667.  * EXIT
  668.  *
  669.  * 0 = success
  670.  * NERR_NetNotStarted
  671.  * NERR_ServerNotStarted
  672.  * ERROR_INVALID_LEVEL
  673.  * NERR_RemoteErr
  674.  * NERR_RemoteOnly (DOS)
  675.  * ERROR_MORE_DATA
  676.  *  ERROR_ACCESS_DENIED
  677.  * NERR_ClientNameNotFound
  678.  * NERR_NetNameNotFound
  679.  *
  680.  * Buffer contents on response (format for a single entry):
  681.  *        Level 50 contains a "struct connection_info_50".
  682.  ***/
  683. extern API_FUNCTION
  684.   NetConnectionEnum ( const char FAR *     pszServer,
  685.                       const char FAR *     pszQualifier,   /* upper case */
  686.                       short                sLevel,
  687.                       char FAR *           pbBuffer,
  688.                       unsigned short       cbBuffer,
  689.                       unsigned short FAR * pcEntriesRead,
  690.                       unsigned short FAR * pcTotalAvail );
  691. /****************************************************************
  692.  * *
  693.  *    Data structure templates - CONNECTION *
  694.  * *
  695.  ****************************************************************/
  696. struct connection_info_0 {
  697.     unsigned short coni0_id;
  698. };  /* connection_info_0 */
  699. struct connection_info_1 {
  700.     unsigned short coni1_id;
  701.     unsigned short coni1_type;
  702.     unsigned short coni1_num_opens;
  703.     unsigned short coni1_num_users;
  704.     unsigned long coni1_time;
  705.     char FAR * coni1_username;
  706.     char FAR * coni1_netname;
  707. };  /* connection_info_1 */
  708. struct connection_info_50 {
  709. unsigned short coni50_type;         // share type
  710. unsigned short coni50_num_opens; //not used in Netware
  711. unsigned long coni50_time;
  712. char FAR * coni50_netname;          // share name          
  713. char FAR * coni50_username;         // user connected to share
  714. }; /* connection_info_50 */
  715. /****************************************************************
  716.  * *
  717.  *    File Class                 *
  718.  * *
  719.  ****************************************************************/
  720. /****************************************************************
  721.  *                                                              *
  722.  *              Function prototypes - FILE                      *
  723.  *                                                              *
  724.  *  Peer Server Support
  725.  *  NetFileEnum - sLevel 50 on VSERVER and NWSERVER        *
  726.  *      NetFileClose2 - VSERVER only
  727.  ****************************************************************/
  728. /*** NetFileClose2
  729.  *
  730.  * int FAR PASCAL NetFileClose2( servername, fileid )
  731.  *
  732.  * ENTRY
  733.  *
  734.  * servername;     asciz remote srv name, NULL if local
  735.  * fileid;      file id supplied by NetFileEnum
  736.  *
  737.  * EXIT
  738.  *
  739.  * 0 = success
  740.  * NERR_NetNotStarted
  741.  * NERR_ServerNotStarted
  742.  * NERR_RemoteErr
  743.  *  ERROR_ACCESS_DENIED
  744.  * NERR_FileIdNotFound
  745.  *
  746.  ***/
  747. extern API_FUNCTION
  748.   NetFileClose2 ( const char FAR * pszServer,
  749.                   unsigned long    ulFileId );
  750. /*** NetFileEnum (Admin Only)
  751.  *
  752.  * int FAR PASCAL NetFileEnum( servername,
  753.  *     level, 
  754.  *     buf, 
  755.  *     buflen, 
  756.  *     entriesread, 
  757.  *     totalentries )
  758.  *
  759.  * ENTRY
  760.  *
  761.  * servername;     asciz remote srv name, NULL if local
  762.  * basepath; path qualifier for file matching
  763.  *              (not used for Win95 NWSERVER)
  764.  * level;          level of detail requested; (50 for Win95 peer servers)
  765.  * buf;            for returned entries
  766.  * buflen;         size of buffer on call; 
  767.  * entriesread;    # of entries supplied on return
  768.  * totalentries;   total # of entries available
  769.  *
  770.  *  EXIT
  771.  *
  772.  * 0 = success
  773.  * NERR_RemoteOnly
  774.  * NERR_NetNotStarted
  775.  * NERR_ServerNotStarted
  776.  * ERROR_INVALID_LEVEL
  777.  * NERR_RemoteErr
  778.  * ERROR_MORE_DATA
  779.  *  ERROR_ACCESS_DENIED
  780.  *
  781.  *
  782.  * Buffer contents on response (format for a single entry):
  783.  *        Level 0 contains a "struct file_info_0".
  784.  *        Level 50 contains a "struct file_info_50".
  785.  *
  786.  ***/
  787. extern API_FUNCTION
  788.   NetFileEnum ( const char FAR *     pszServer,
  789.                 const char FAR *     pszBasePath,
  790.                 short                sLevel,
  791.                 char FAR *           pbBuffer,
  792.                 unsigned short       cbBuffer,
  793.                 unsigned short FAR * pcEntriesRead,
  794.                 unsigned short FAR * pcTotalAvail );
  795. /****************************************************************
  796.  * *
  797.  *    Data structure templates - FILE *
  798.  * *
  799.  ****************************************************************/
  800. struct file_info_0 {
  801.     unsigned short fi0_id;
  802. };  /* file_info_0 */
  803. struct file_info_1 {
  804.     unsigned short fi1_id;
  805.     unsigned short fi1_permissions;
  806.     unsigned short fi1_num_locks;
  807.     char FAR * fi1_pathname;
  808.     char FAR * fi1_username;
  809. };  /* file_info_1 */
  810. struct file_info_2 {
  811.     unsigned long fi2_id;
  812. };  /* file_info_2 */
  813. struct file_info_3 {
  814.     unsigned long fi3_id;
  815.     unsigned short fi3_permissions;
  816.     unsigned short fi3_num_locks;
  817.     char FAR * fi3_pathname;
  818.     char FAR * fi3_username;
  819. };  /* file_info_3 */
  820. struct file_info_50 {
  821. unsigned long fi50_id;              // not used on NWSERVER
  822. unsigned short fi50_permissions;    // not available on NWSERVER
  823. unsigned short fi50_num_locks;      // not available on NWSERVER
  824. char FAR * fi50_pathname;
  825. char FAR * fi50_username;
  826. char FAR * fi50_sharename;
  827. }; /* file_info_50 */
  828. struct res_file_enum_2 {
  829.     unsigned short res_pad;  /* not used now */
  830.     unsigned short      res_fs;          /* server type */
  831.     unsigned long res_pro;   /* progressive */
  832. };  /* res_file_enum_2 */
  833. /****************************************************************
  834.  * *
  835.  * Special values and constants - FILE *
  836.  * *
  837.  ****************************************************************/
  838. /* bit values for permissions */
  839. #define PERM_FILE_READ 0x1 /* user has read access */
  840. #define PERM_FILE_WRITE 0x2 /* user has write access */
  841. #define PERM_FILE_CREATE 0x4 /* user has create access */
  842. typedef struct res_file_enum_2 FRK;
  843. /*NOINC*/
  844. #define FRK_INIT( f )
  845. {
  846. (f).res_pad = 0L;
  847. (f).res_fs = 0;
  848. (f).res_pro = 0;
  849. }
  850. /*INC*/
  851. /****************************************************************
  852.  * *
  853.  *    Server Class                 *
  854.  * *
  855.  ****************************************************************/
  856. /****************************************************************
  857.  *                                                              *
  858.  *              Function prototypes - SERVER                    *
  859.  *                                                              *
  860.  * Peer Server Support
  861.  *  NetServerGetInfo - sLevel 1,50 on NWSERVER, VSERVER
  862.  ****************************************************************/
  863. /* 6.2  NetServerGetInfo 
  864.  *
  865.  * Purpose: Read the current configuration parameters of the server.
  866.  *
  867.  * int FAR PASCAL
  868.  * NetServerGetInfo( servername, level, buf, buflen, totalavail )
  869.  * char FAR *          servername;   asciz remote server name or NULL if local
  870.  * short               level;          level of information to be returned
  871.  * char FAR *          buf;            for returned data
  872.  * unsigned short      buflen;         size of buffer
  873.  * unsigned short FAR *totalavail;     total size needed for buffer
  874.  *
  875.  * Buffer contents on response (format for a single entry):
  876.  *     Level 1 contains a "struct server_info_1".
  877.  *     Level 50 contains a "struct server_info_50".
  878.  *
  879.  * If the buflen is not large enough for all of the information, the call
  880.  * will return as much as will fit in the buffer.
  881.  *
  882.  * Returns 0 if successful. Error return information:
  883.  *
  884.  *     - ERROR_INVALID_LEVEL       - Level parameter specified is invalid
  885.  *     - ERROR_INVALID_PARAMETER   - An invalid input parameter was detected.
  886.  *     - NERR_NetNotStarted        - Network not installed on local machine
  887.  *     - NERR_ServerNotStarted     - Server is not started
  888.  *     - NERR_BufTooSmall          - The buffer supplied was to small to
  889.  *                                   return the fixed length structure
  890.  *      requested.
  891.  *     - NERR_MoreData             - The buffer supplied was too small to
  892.  *      return all the information available
  893.  *      for this server.
  894.  *
  895.  */
  896. extern API_FUNCTION
  897.   NetServerGetInfo ( const char FAR *     pszServer,
  898.                      short                sLevel,
  899.                      char FAR *           pbBuffer,
  900.                      unsigned short       cbBuffer,
  901.                      unsigned short FAR * pcbTotalAvail );
  902. /****************************************************************
  903.  * *
  904.  *    Data structure templates - SERVER *
  905.  * *
  906.  ****************************************************************/
  907. struct server_info_0 {
  908.     char     sv0_name[CNLEN + 1];  /* Server name     */
  909. };  /* server_info_0 */
  910. struct server_info_1 {
  911.     char     sv1_name[CNLEN + 1];
  912.     unsigned char   sv1_version_major; /* Major version # of net   */
  913.     unsigned char   sv1_version_minor; /* Minor version # of net   */
  914.     unsigned long   sv1_type;       /* Server type      */
  915.     char FAR *     sv1_comment;  /* Exported server comment  */
  916. };  /* server_info_1 */
  917. /* NOTE struct prefix must equal server_info_1 like below! */
  918. struct server_info_50 {
  919.     char     sv50_name[CNLEN + 1];
  920.     unsigned char   sv50_version_major; /* Major version # of net   */
  921.     unsigned char   sv50_version_minor; /* Minor version # of net   */
  922.     unsigned long   sv50_type;       /* Server type      */
  923.     char FAR *     sv50_comment;  /* Exported server comment  */
  924.     unsigned short  sv50_security;     /* SV_SECURITY_* (see below) */
  925.     unsigned short  sv50_auditing;    /* 0 = no auditing; nonzero = auditing */
  926.     char FAR *      sv50_container; /* Security server/domain    */
  927.     char FAR *     sv50_ab_server; /* Address book server       */
  928.     char FAR *     sv50_ab_dll; /* Address book provider DLL */
  929. }; /* server_info_50 */
  930. struct server_info_2 {
  931.     char            sv2_name[CNLEN + 1];
  932.     unsigned char   sv2_version_major;
  933.     unsigned char   sv2_version_minor;
  934.     unsigned long   sv2_type;
  935.     char FAR *     sv2_comment;
  936.     unsigned long   sv2_ulist_mtime; /* User list, last modification time    */
  937.     unsigned long   sv2_glist_mtime; /* Group list, last modification time   */
  938.     unsigned long   sv2_alist_mtime; /* Access list, last modification time  */
  939.     unsigned short  sv2_users;       /* max number of users allowed          */
  940.     unsigned short  sv2_disc;     /* auto-disconnect timeout(in minutes)  */
  941.     char FAR *     sv2_alerts;     /* alert names (semicolon separated)    */
  942.     unsigned short  sv2_security;    /* SV_USERSECURITY or SV_SHARESECURITY  */
  943.     unsigned short  sv2_auditing;    /* 0 = no auditing; nonzero = auditing  */
  944.     unsigned short  sv2_numadmin;    /* max number of administrators allowed */
  945.     unsigned short  sv2_lanmask;     /* bit mask representing the srv'd nets */
  946.     unsigned short  sv2_hidden;      /* 0 = visible; nonzero = hidden        */
  947.     unsigned short  sv2_announce;    /* visible server announce rate (sec)   */
  948.     unsigned short  sv2_anndelta;    /* announce randomize interval (sec)    */
  949.                                     /* name of guest account                */
  950.     char            sv2_guestacct[LM20_UNLEN + 1];
  951.     unsigned char   sv2_pad1;     /* Word alignment pad byte     */
  952.     char FAR *      sv2_userpath;    /* ASCIIZ path to user directories      */
  953.     unsigned short  sv2_chdevs;      /* max # shared character devices       */
  954.     unsigned short  sv2_chdevq;      /* max # character device queues        */
  955.     unsigned short  sv2_chdevjobs;   /* max # character device jobs          */
  956.     unsigned short  sv2_connections; /* max # of connections     */
  957.     unsigned short  sv2_shares;     /* max # of shares     */
  958.     unsigned short  sv2_openfiles;   /* max # of open files     */
  959.     unsigned short  sv2_sessopens;   /* max # of open files per session     */
  960.     unsigned short  sv2_sessvcs;     /* max # of virtual circuits per client */
  961.     unsigned short  sv2_sessreqs;    /* max # of simul. reqs. from a client  */
  962.     unsigned short  sv2_opensearch;  /* max # of open searches     */
  963.     unsigned short  sv2_activelocks; /* max # of active file locks           */
  964.     unsigned short  sv2_numreqbuf;   /* number of server (standard) buffers  */
  965.     unsigned short  sv2_sizreqbuf;   /* size of svr (standard) bufs (bytes)  */
  966.     unsigned short  sv2_numbigbuf;   /* number of big (64K) buffers          */
  967.     unsigned short  sv2_numfiletasks;/* number of file worker processes      */
  968.     unsigned short  sv2_alertsched;  /* alert counting interval (minutes)    */
  969.     unsigned short  sv2_erroralert;  /* error log alerting threshold         */
  970.     unsigned short  sv2_logonalert;  /* logon violation alerting threshold   */
  971.     unsigned short  sv2_accessalert; /* access violation alerting threshold  */
  972.     unsigned short  sv2_diskalert;   /* low disk space alert threshold (KB)  */
  973.     unsigned short  sv2_netioalert;  /* net I/O error ratio alert threshold  */
  974.                                     /*  (tenths of a percent)               */
  975.     unsigned short  sv2_maxauditsz;  /* Maximum audit file size (KB)        */
  976.     char FAR *     sv2_srvheuristics; /* performance related server switches*/
  977. }; /* server_info_2 */
  978. struct server_info_3 {
  979.     char     sv3_name[CNLEN + 1];
  980.     unsigned char   sv3_version_major;
  981.     unsigned char   sv3_version_minor;
  982.     unsigned long   sv3_type;
  983.     char FAR *     sv3_comment;
  984.     unsigned long   sv3_ulist_mtime; /* User list, last modification time    */
  985.     unsigned long   sv3_glist_mtime; /* Group list, last modification time   */
  986.     unsigned long   sv3_alist_mtime; /* Access list, last modification time  */
  987.     unsigned short  sv3_users;      /* max number of users allowed      */
  988.     unsigned short  sv3_disc;     /* auto-disconnect timeout(in minutes)  */
  989.     char FAR *     sv3_alerts;     /* alert names (semicolon separated)    */
  990.     unsigned short  sv3_security;    /* SV_USERSECURITY or SV_SHARESECURITY  */
  991.     unsigned short  sv3_auditing;    /* 0 = no auditing; nonzero = auditing  */
  992.     unsigned short  sv3_numadmin;    /* max number of administrators allowed */
  993.     unsigned short  sv3_lanmask;     /* bit mask representing the srv'd nets */
  994.     unsigned short  sv3_hidden;      /* 0 = visible; nonzero = hidden      */
  995.     unsigned short  sv3_announce;    /* visible server announce rate (sec)   */
  996.     unsigned short  sv3_anndelta;    /* announce randomize interval (sec)    */
  997.     /* name of guest account     */
  998.     char     sv3_guestacct[LM20_UNLEN + 1];
  999.     unsigned char   sv3_pad1;     /* Word alignment pad byte     */
  1000.     char FAR *     sv3_userpath;    /* ASCIIZ path to user directories      */
  1001.     unsigned short  sv3_chdevs;      /* max # shared character devices      */
  1002.     unsigned short  sv3_chdevq;      /* max # character device queues      */
  1003.     unsigned short  sv3_chdevjobs;   /* max # character device jobs      */
  1004.     unsigned short  sv3_connections; /* max # of connections     */
  1005.     unsigned short  sv3_shares;     /* max # of shares     */
  1006.     unsigned short  sv3_openfiles;   /* max # of open files     */
  1007.     unsigned short  sv3_sessopens;   /* max # of open files per session     */
  1008.     unsigned short  sv3_sessvcs;     /* max # of virtual circuits per client */
  1009.     unsigned short  sv3_sessreqs;    /* max # of simul. reqs. from a client  */
  1010.     unsigned short  sv3_opensearch;  /* max # of open searches     */
  1011.     unsigned short  sv3_activelocks; /* max # of active file locks      */
  1012.     unsigned short  sv3_numreqbuf;   /* number of server (standard) buffers  */
  1013.     unsigned short  sv3_sizreqbuf;   /* size of svr (standard) bufs (bytes)  */
  1014.     unsigned short  sv3_numbigbuf;   /* number of big (64K) buffers      */
  1015.     unsigned short  sv3_numfiletasks;/* number of file worker processes      */
  1016.     unsigned short  sv3_alertsched;  /* alert counting interval (minutes)    */
  1017.     unsigned short  sv3_erroralert;  /* error log alerting threshold      */
  1018.     unsigned short  sv3_logonalert;  /* logon violation alerting threshold   */
  1019.     unsigned short  sv3_accessalert; /* access violation alerting threshold  */
  1020.     unsigned short  sv3_diskalert;   /* low disk space alert threshold (KB)  */
  1021.     unsigned short  sv3_netioalert;  /* net I/O error ratio alert threshold  */
  1022.                                     /*  (tenths of a percent)               */
  1023.     unsigned short  sv3_maxauditsz;  /* Maximum audit file size (KB)      */
  1024.     char FAR *     sv3_srvheuristics; /* performance related server switches*/
  1025.     unsigned long   sv3_auditedevents; /* Audit event control mask      */
  1026.     unsigned short  sv3_autoprofile; /* (0,1,2,3) = (NONE,LOAD,SAVE,or BOTH) */
  1027.     char FAR *     sv3_autopath;    /* file pathname (where to load & save) */
  1028. }; /* server_info_3 */
  1029. /****************************************************************
  1030.  * *
  1031.  *    Special values and constants - SERVER *
  1032.  * *
  1033.  ****************************************************************/
  1034. /*
  1035.  * Mask to be applied to svX_version_major in order to obtain
  1036.  * the major version number.
  1037.  */
  1038. #define MAJOR_VERSION_MASK 0x0F
  1039. /*
  1040.  * Bit-mapped values for svX_type fields. X = 1, 2 or 3.
  1041.  */
  1042. #define SV_TYPE_WORKSTATION 0x00000001
  1043. #define SV_TYPE_SERVER 0x00000002
  1044. #define SV_TYPE_SQLSERVER 0x00000004
  1045. #define SV_TYPE_DOMAIN_CTRL 0x00000008
  1046. #define SV_TYPE_DOMAIN_BAKCTRL 0x00000010
  1047. #define SV_TYPE_TIME_SOURCE 0x00000020
  1048. #define SV_TYPE_AFP 0x00000040
  1049. #define SV_TYPE_NOVELL 0x00000080      /* This flag is also set by Win95 NWSERVER */
  1050. #define SV_TYPE_DOMAIN_MEMBER 0x00000100
  1051. #define SV_TYPE_PRINTQ_SERVER 0x00000200
  1052. #define SV_TYPE_DIALIN_SERVER 0x00000400
  1053. #define SV_TYPE_ALL 0xFFFFFFFF   /* handy for NetServerEnum2 */
  1054. /*
  1055.  * Special value for svX_disc that specifies infinite disconnect
  1056.  * time. X = 2 or 3.
  1057.  */
  1058. #define SV_NODISC 0xFFFF /* No autodisconnect timeout enforced */
  1059. /*
  1060.  * Values of svX_security field. X = 2 or 3.
  1061.  */
  1062. #define SV_USERSECURITY 1
  1063. #define SV_SHARESECURITY 0
  1064. /*
  1065.  * Values of svX_security field. X = 50.
  1066.  *  For Win95 NWSERVER, the only possible returned value is SV_SECURITY_NETWARE.
  1067.  */
  1068. #define SV_SECURITY_SHARE 0 /* Share-level */
  1069. #define SV_SECURITY_WINNT 1 /* User-level - Windows NT workst'n */
  1070. #define SV_SECURITY_WINNTAS 2 /* User-level - Windows NT domain */
  1071. #define SV_SECURITY_NETWARE 3 /* User-level - NetWare 3.x bindery */
  1072. /*
  1073.  * Values of svX_hidden field. X = 2 or 3.
  1074.  */
  1075. #define SV_HIDDEN 1
  1076. #define SV_VISIBLE 0
  1077. #define SVI1_NUM_ELEMENTS 5
  1078. #define SVI2_NUM_ELEMENTS 44
  1079. #define SVI3_NUM_ELEMENTS 45
  1080. /*
  1081.  *      Masks describing AUTOPROFILE parameters
  1082.  */
  1083. #define SW_AUTOPROF_LOAD_MASK 0x1
  1084. #define SW_AUTOPROF_SAVE_MASK 0x2
  1085. /****************************************************************
  1086.  *                                                              *
  1087.  *                 Security Class                               *
  1088.  *                                                              *
  1089.  ****************************************************************/
  1090. /****************************************************************
  1091.  *                                                              *
  1092.  *                  Function prototypes - SECURITY              *
  1093.  *                                                              *
  1094.  ****************************************************************/
  1095. extern API_FUNCTION
  1096.   NetSecurityGetInfo ( const char FAR *     pszServer,
  1097.                        short                sLevel,
  1098.                        char FAR *           pbBuffer,
  1099.                        unsigned short       cbBuffer,
  1100.                        unsigned short FAR * pcbTotalAvail );
  1101. /****************************************************************
  1102.  * *
  1103.  *    Data structure templates - SECURITY *
  1104.  * *
  1105.  ****************************************************************/
  1106. struct security_info_1 {
  1107.     unsigned long   sec1_security;     /* SEC_SECURITY_* (see below) */
  1108.     char FAR *      sec1_container; /* Security server/domain     */
  1109.     char FAR *     sec1_ab_server; /* Address book server        */
  1110.     char FAR *     sec1_ab_dll; /* Address book provider DLL  */
  1111. }; /* security_info_1 */
  1112. /****************************************************************
  1113.  * *
  1114.  *    Special values and constants - SECURITY *
  1115.  * *
  1116.  ****************************************************************/
  1117. /*
  1118. /*
  1119.  * Values of secX_security field. X = 1.
  1120.  */
  1121. #define SEC_SECURITY_SHARE SV_SECURITY_SHARE
  1122. #define SEC_SECURITY_WINNT SV_SECURITY_WINNT
  1123. #define SEC_SECURITY_WINNTAS SV_SECURITY_WINNTAS
  1124. #define SEC_SECURITY_NETWARE SV_SECURITY_NETWARE
  1125. /*NOINC*/
  1126. #ifdef __cplusplus
  1127. }
  1128. #endif /* __cplusplus */
  1129. #ifndef RC_INVOKED
  1130. #pragma pack()          /* Revert to default packing */
  1131. #endif
  1132. #endif /* SVRAPI_INCLUDED */
  1133. /*INC*/