home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / SERVER.H < prev    next >
C/C++ Source or Header  |  1999-04-29  |  21KB  |  428 lines

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