home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / SERVER.H < prev    next >
C/C++ Source or Header  |  1997-09-05  |  20KB  |  388 lines

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