home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lansystk.zip / INCLUDE / LANSERV / SERVER.H < prev    next >
C/C++ Source or Header  |  1998-05-08  |  18KB  |  374 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Local Area Network (LAN) Server              */
  4. /*                            Version 4.0                                 */
  5. /*                   (C) Copyright IBM Corp. 1988, 1994                   */
  6. /*                  Licensed Materials - Property of IBM                  */
  7. /*                            52G8468, 52G8475                            */
  8. /*                                                                        */
  9. /**************************************************************************/
  10. /********************************************************************/
  11.  
  12. /********************************************************************
  13.  *                                                                  *
  14.  *  About this file ...  SERVER.H                                   *
  15.  *                                                                  *
  16.  *  This file contains information about the NetServer APIs.        *
  17.  *                                                                  *
  18.  *      Function prototypes.                                        *
  19.  *                                                                  *
  20.  *       Data structure templates.                                  *
  21.  *                                                                  *
  22.  *        Definition of special values.                             *
  23.  *                                                                  *
  24.  *                                                                  *
  25.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  26.  *           file depends on values defined in NETCONS.H.           *
  27.  *                                                                  *
  28.  ********************************************************************/
  29.  
  30.  
  31.  
  32. #ifdef ANY_32_BIT
  33. #pragma pack(1)
  34. #endif
  35.  
  36.  
  37. #ifndef NETSERVER_INCLUDED
  38.  
  39. #define NETSERVER_INCLUDED
  40.  
  41. /****************************************************************
  42.  *                                                              *
  43.  *            Function prototypes (16-bit or mixed-model)       *
  44.  *                                                              *
  45.  ****************************************************************/
  46. extern API_FUNCTION
  47.   NetServerAdminCommand ( const unsigned char LSFAR * pszServer,
  48.                           const unsigned char LSFAR * pszCommand,
  49.                           short LSFAR *               psResult,
  50.                           unsigned char LSFAR *       pbBuffer,
  51.                           unsigned short              cbBuffer,
  52.                           unsigned short LSFAR *      pcbReturned,
  53.                           unsigned short LSFAR *      pcbTotalAvail );
  54.  
  55. extern API_FUNCTION
  56.   NetServerDiskEnum ( const unsigned char LSFAR * pszServer,
  57.                       short                       sLevel,
  58.                       unsigned char LSFAR *       pbBuffer,
  59.                       unsigned short              cbBuffer,
  60.                       unsigned short LSFAR *      pcEntriesRead,
  61.                       unsigned short LSFAR *      pcTotalAvail );
  62.  
  63. extern API_FUNCTION
  64.   NetServerEnum ( const unsigned char LSFAR * pszServer,
  65.                   short                       sLevel,
  66.                   unsigned char LSFAR *       pbBuffer,
  67.                   unsigned short              cbBuffer,
  68.                   unsigned short LSFAR *      pcEntriesRead,
  69.                   unsigned short LSFAR *      pcTotalAvail );
  70.  
  71. extern API_FUNCTION
  72.   NetServerEnum2 ( const unsigned char LSFAR * pszServer,
  73.                    short                       sLevel,
  74.                    unsigned char LSFAR *       pbBuffer,
  75.                    unsigned short              cbBuffer,
  76.                    unsigned short LSFAR *      pcEntriesRead,
  77.                    unsigned short LSFAR *      pcTotalAvail,
  78.                    unsigned long               flServerType,
  79.                    unsigned char LSFAR *       pszDomain );
  80.  
  81. extern API_FUNCTION
  82.   NetServerGetInfo ( const unsigned char LSFAR * pszServer,
  83.                      short                       sLevel,
  84.                      unsigned char LSFAR *       pbBuffer,
  85.                      unsigned short              cbBuffer,
  86.                      unsigned short LSFAR *      pcbTotalAvail );
  87.  
  88. extern API_FUNCTION
  89.   NetServerSetInfo ( const unsigned char LSFAR * pszServer,
  90.                      short                       sLevel,
  91.                      const unsigned char LSFAR * pbBuffer,
  92.                      unsigned short              cbBuffer,
  93.                      short                       sParmNum );
  94.  
  95.  
  96. /****************************************************************
  97.  *                                                              *
  98.  *              Data structure templates                        *
  99.  *                                                              *
  100.  ****************************************************************/
  101. struct server_info_0 {
  102.     unsigned char   sv0_name[CNLEN + 1];        /* Server name        */
  103. };  /* server_info_0 */
  104.  
  105. struct server_info_1 {
  106.     unsigned char      sv1_name[CNLEN + 1];
  107.     unsigned char      sv1_version_major;  /* Major version # of net   */
  108.     unsigned char      sv1_version_minor;  /* Minor version # of net   */
  109.     unsigned long      sv1_type;           /* Server type              */
  110.     unsigned char LSFAR * LSPTR sv1_comment;        /* Exported server comment  */
  111. };  /* server_info_1 */
  112.  
  113. struct server_info_2 {
  114.     unsigned char      sv2_name[CNLEN + 1];
  115.     unsigned char      sv2_version_major;
  116.     unsigned char      sv2_version_minor;
  117.     unsigned long      sv2_type;
  118.     unsigned char LSFAR * LSPTR sv2_comment;
  119.     unsigned long      sv2_ulist_mtime;   /* User list, last modification time    */
  120.     unsigned long      sv2_glist_mtime;   /* Group list, last modification time   */
  121.     unsigned long      sv2_alist_mtime;   /* Access list, last modification time  */
  122.     unsigned short     sv2_users;         /* max number of users allowed          */
  123.     unsigned short     sv2_disc;          /* auto-disconnect timeout(in minutes)  */
  124.     unsigned char LSFAR * LSPTR sv2_alerts;        /* alert names (semicolon separated)    */
  125.     unsigned short     sv2_security;      /* SV_USERSECURITY or SV_SHARESECURITY  */
  126.     unsigned short     sv2_auditing;      /* 0 = no auditing; nonzero = auditing  */
  127.  
  128.     unsigned short     sv2_numadmin;      /* max number of administrators allowed */
  129.     unsigned short     sv2_lanmask;       /* bit mask representing the srv'd nets */
  130.     unsigned short     sv2_hidden;        /* 0 = visible; nonzero = hidden        */
  131.     unsigned short     sv2_announce;      /* visible server announce rate (sec)   */
  132.     unsigned short     sv2_anndelta;      /* announce randomize interval (sec)    */
  133.                                           /* name of guest account                */
  134.     unsigned char      sv2_guestacct[UNLEN + 1];
  135.     unsigned char      sv2_pad1;          /* Word alignment pad byte             */
  136.     unsigned char LSFAR * LSPTR sv2_userpath;      /* ASCIIZ path to user directories      */
  137.     unsigned short     sv2_chdevs;        /* max # shared character devices       */
  138.     unsigned short     sv2_chdevq;        /* max # character device queues        */
  139.     unsigned short     sv2_chdevjobs;     /* max # character device jobs          */
  140.     unsigned short     sv2_connections;   /* max # of connections             */
  141.     unsigned short     sv2_shares;        /* max # of shares                     */
  142.     unsigned short     sv2_openfiles;     /* max # of open files             */
  143.     unsigned short     sv2_sessopens;     /* max # of open files per session     */
  144.     unsigned short     sv2_sessvcs;       /* max # of virtual circuits per client */
  145.     unsigned short     sv2_sessreqs;      /* max # of simul. reqs. from a client  */
  146.     unsigned short     sv2_opensearch;    /* max # of open searches             */
  147.     unsigned short     sv2_activelocks;   /* max # of active file locks           */
  148.     unsigned short     sv2_numreqbuf;     /* number of server (standard) buffers  */
  149.     unsigned short     sv2_sizreqbuf;     /* size of svr (standard) bufs (bytes)  */
  150.     unsigned short     sv2_numbigbuf;     /* number of big (64K) buffers          */
  151.     unsigned short     sv2_numfiletasks;  /* number of file worker processes      */
  152.     unsigned short     sv2_alertsched;    /* alert counting interval (minutes)    */
  153.     unsigned short     sv2_erroralert;    /* error log alerting threshold         */
  154.     unsigned short     sv2_logonalert;    /* logon violation alerting threshold   */
  155.     unsigned short     sv2_accessalert;   /* access violation alerting threshold  */
  156.     unsigned short     sv2_diskalert;     /* low disk space alert threshold (KB)  */
  157.     unsigned short     sv2_netioalert;    /* net I/O error ratio alert threshold  */
  158.                                           /*  (tenths of a percent)               */
  159.     unsigned short     sv2_maxauditsz;    /* Maximum audit file size (KB)        */
  160.     unsigned char LSFAR * LSPTR sv2_srvheuristics; /* performance related server switches*/
  161. };  /* server_info_2 */
  162.  
  163.  
  164. struct server_info_3 {
  165.     unsigned char      sv3_name[CNLEN + 1];
  166.     unsigned char      sv3_version_major;
  167.     unsigned char      sv3_version_minor;
  168.     unsigned long      sv3_type;
  169.     unsigned char LSFAR * LSPTR sv3_comment;
  170.     unsigned long      sv3_ulist_mtime;   /* User list, last modification time    */
  171.     unsigned long      sv3_glist_mtime;   /* Group list, last modification time   */
  172.     unsigned long      sv3_alist_mtime;   /* Access list, last modification time  */
  173.     unsigned short     sv3_users;         /* max number of users allowed      */
  174.     unsigned short     sv3_disc;          /* auto-disconnect timeout(in minutes)  */
  175.     unsigned char LSFAR * LSPTR sv3_alerts;        /* alert names (semicolon separated)    */
  176.     unsigned short     sv3_security;      /* SV_USERSECURITY or SV_SHARESECURITY  */
  177.     unsigned short     sv3_auditing;      /* 0 = no auditing; nonzero = auditing  */
  178.  
  179.     unsigned short     sv3_numadmin;      /* max number of administrators allowed */
  180.     unsigned short     sv3_lanmask;       /* bit mask representing the srv'd nets */
  181.     unsigned short     sv3_hidden;        /* 0 = visible; nonzero = hidden      */
  182.     unsigned short     sv3_announce;      /* visible server announce rate (sec)   */
  183.     unsigned short     sv3_anndelta;      /* announce randomize interval (sec)    */
  184.                                           /* name of guest account             */
  185.     unsigned char      sv3_guestacct[UNLEN + 1];
  186.     unsigned char      sv3_pad1;          /* Word alignment pad byte             */
  187.     unsigned char LSFAR * LSPTR sv3_userpath;      /* ASCIIZ path to user directories      */
  188.     unsigned short     sv3_chdevs;        /* max # shared character devices      */
  189.     unsigned short     sv3_chdevq;        /* max # character device queues      */
  190.     unsigned short     sv3_chdevjobs;     /* max # character device jobs      */
  191.     unsigned short     sv3_connections;   /* max # of connections             */
  192.     unsigned short     sv3_shares;        /* max # of shares                     */
  193.     unsigned short     sv3_openfiles;     /* max # of open files             */
  194.     unsigned short     sv3_sessopens;     /* max # of open files per session     */
  195.     unsigned short     sv3_sessvcs;       /* max # of virtual circuits per client */
  196.     unsigned short     sv3_sessreqs;      /* max # of simul. reqs. from a client  */
  197.     unsigned short     sv3_opensearch;    /* max # of open searches             */
  198.     unsigned short     sv3_activelocks;   /* max # of active file locks      */
  199.     unsigned short     sv3_numreqbuf;     /* number of server (standard) buffers  */
  200.     unsigned short     sv3_sizreqbuf;     /* size of svr (standard) bufs (bytes)  */
  201.     unsigned short     sv3_numbigbuf;     /* number of big (64K) buffers      */
  202.     unsigned short     sv3_numfiletasks;  /* number of file worker processes      */
  203.     unsigned short     sv3_alertsched;    /* alert counting interval (minutes)    */
  204.     unsigned short     sv3_erroralert;    /* error log alerting threshold      */
  205.     unsigned short     sv3_logonalert;    /* logon violation alerting threshold   */
  206.     unsigned short     sv3_accessalert;   /* access violation alerting threshold  */
  207.     unsigned short     sv3_diskalert;     /* low disk space alert threshold (KB)  */
  208.     unsigned short     sv3_netioalert;    /* net I/O error ratio alert threshold  */
  209.                                           /*  (tenths of a percent)               */
  210.     unsigned short     sv3_maxauditsz;    /* Maximum audit file size (KB)      */
  211.     unsigned char LSFAR * LSPTR sv3_srvheuristics; /* performance related server switches*/
  212.     unsigned long      sv3_auditedevents; /* Audit event control mask      */
  213.     unsigned short     sv3_autoprofile;   /* (0,1,2,3) = (NONE,LOAD,SAVE,or BOTH) */
  214.     unsigned char LSFAR * LSPTR sv3_autopath;      /* file pathname (where to load & save) */
  215. };  /* server_info_3 */
  216.  
  217.  
  218. struct server_info_20 {
  219.     unsigned long                si20_reserved;
  220.     unsigned short               si20_count;
  221. };  /* server_info_20 */
  222.  
  223.  
  224. struct server_record_id_list {
  225.     unsigned char LSFAR * LSPTR  sril_srv_rec_id;
  226.     unsigned char LSFAR * LSPTR  sril_remark;
  227. };  /* server_record_id_list */
  228.  
  229.  
  230.  
  231. #ifdef PURE_32
  232. /****************************************************************
  233.  *                                                              *
  234.  *         Function prototypes (32-bit versions)                *
  235.  *                                                              *
  236.  ****************************************************************/
  237.  
  238. extern API32_FUNCTION
  239.   Net32ServerAdminCommand ( const unsigned char   * pszServer,
  240.                             const unsigned char   * pszCommand,
  241.                             unsigned long * pulResult,
  242.                             unsigned char * pbBuffer,
  243.                             unsigned long   cbBuffer,
  244.                             unsigned long * pcbReturned,
  245.                             unsigned long * pcbTotalAvail );
  246.  
  247. extern API32_FUNCTION
  248.   Net32ServerDiskEnum ( const unsigned char   * pszServer,
  249.                         unsigned long   ulLevel,
  250.                         unsigned char * pbBuffer,
  251.                         unsigned long   cbBuffer,
  252.                         unsigned long * pcEntriesRead,
  253.                         unsigned long * pcTotalAvail );
  254.  
  255. extern API32_FUNCTION
  256.   Net32ServerEnum2 ( const unsigned char     * pszServer,
  257.                      unsigned long     ulLevel,
  258.                      unsigned char   * pbBuffer,
  259.                      unsigned long     cbBuffer,
  260.                      unsigned long   * pcEntriesRead,
  261.                      unsigned long   * pcTotalAvail,
  262.                      unsigned long     flServerType,
  263.                      unsigned char   * pszDomain );
  264.  
  265. extern API32_FUNCTION
  266.   Net32ServerGetInfo ( const unsigned char    * pszServer,
  267.                        unsigned long    ulLevel,
  268.                        unsigned char  * pbBuffer,
  269.                        unsigned long    cbBuffer,
  270.                        unsigned long  * pcbTotalAvail );
  271.  
  272. extern API32_FUNCTION
  273.   Net32ServerSetInfo ( const unsigned char    * pszServer,
  274.                        unsigned long    ulLevel,
  275.                        const unsigned char    * pbBuffer,
  276.                        unsigned long    cbBuffer,
  277.                        unsigned long    ulParmNum );
  278. #endif /* PURE_32 */
  279.  
  280.  
  281.  
  282. /****************************************************************
  283.  *                                                              *
  284.  *              Special values and constants                    *
  285.  *                                                              *
  286.  ****************************************************************/
  287.  
  288. /*
  289.  *      Mask to be applied to svX_version_major in order to obtain
  290.  *      the major version number.
  291.  */
  292.  
  293. #define MAJOR_VERSION_MASK      0x0F
  294.  
  295. /*
  296.  *      Bit-mapped values for svX_type fields. X = 1, 2 or 3.
  297.  */
  298.  
  299. #define SV_TYPE_WORKSTATION     0x00000001
  300. #define SV_TYPE_SERVER          0x00000002
  301. #define SV_TYPE_SQLSERVER       0x00000004
  302. #define SV_TYPE_DOMAIN_CTRL     0x00000008
  303. #define SV_TYPE_DOMAIN_BAKCTRL  0x00000010
  304. #define SV_TYPE_TIME_SOURCE     0x00000020
  305. #define SV_TYPE_AFP             0x00000040
  306. #define SV_TYPE_NOVELL          0x00000080
  307. #define SV_TYPE_ALL             0xFFFFFFFF   /* handy for NetServerEnum2 */
  308.  
  309. /*
  310.  *      Special value for svX_disc that specifies infinite disconnect
  311.  *      time. X = 2 or 3.
  312.  */
  313.  
  314. #define SV_NODISC               0xFFFF  /* No autodisconnect timeout enforced */
  315.  
  316. /*
  317.  *      Values of svX_security field. X = 2 or 3.
  318.  */
  319.  
  320. #define SV_USERSECURITY         1
  321. #define SV_SHARESECURITY        0
  322.  
  323. /*
  324.  *      Values of svX_hidden field. X = 2 or 3.
  325.  */
  326.  
  327. #define SV_HIDDEN               1
  328. #define SV_VISIBLE              0
  329.  
  330. /*
  331.  *      Values for parmnum parameter to NetServerSetInfo.
  332.  */
  333.  
  334. #define SV_COMMENT_PARMNUM      5
  335. #define SV_DISC_PARMNUM         10
  336. #define SV_ALERTS_PARMNUM       11
  337. #define SV_HIDDEN_PARMNUM       16
  338. #define SV_ANNOUNCE_PARMNUM     17
  339. #define SV_ANNDELTA_PARMNUM     18
  340. #define SV_ALERTSCHED_PARMNUM   37
  341. #define SV_ERRORALERT_PARMNUM   38
  342. #define SV_LOGONALERT_PARMNUM   39
  343. #define SV_ACCESSALERT_PARMNUM  40
  344. #define SV_DISKALERT_PARMNUM    41
  345. #define SV_NETIOALERT_PARMNUM   42
  346. #define SV_MAXAUDITSZ_PARMNUM   43
  347.  
  348. #define SVI1_NUM_ELEMENTS       5
  349. #define SVI2_NUM_ELEMENTS       44
  350. #define SVI3_NUM_ELEMENTS       45
  351.  
  352. /*
  353.  *      Maxmimum length for command string to NetServerAdminCommand.
  354.  */
  355.  
  356. #define SV_MAX_CMD_LEN          PATHLEN
  357.  
  358.  
  359.  
  360. /*
  361.  *      Masks describing AUTOPROFILE parameters
  362.  */
  363.  
  364. #define SW_AUTOPROF_LOAD_MASK   0x1
  365. #define SW_AUTOPROF_SAVE_MASK   0x2
  366.  
  367.  
  368. #endif /* NETSERVER_INCLUDED */
  369.  
  370. #ifdef ANY_32_BIT
  371. #pragma pack()
  372. #endif
  373.  
  374.