home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dsstlkt5.zip / dssos2tk / dss / SHARES.H < prev    next >
C/C++ Source or Header  |  1998-05-08  |  25KB  |  585 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Directory and Security Services (DSS)        */
  4. /*                            Version 5.0                                 */
  5. /*                   (C) Copyright IBM Corp. 1995                         */
  6. /*                  Licensed Materials - Property of IBM                  */
  7. /*                                                                        */
  8. /**************************************************************************/
  9. /********************************************************************/
  10.  
  11. /********************************************************************
  12.  *                                                                  *
  13.  *  About this file ...  SHARES.H                                   *
  14.  *                                                                  *
  15.  *  This file contains information about the NetShare, NetSession,  *
  16.  *  NetFile, and NetConnection APIs.  For each API class there is   *
  17.  *  a section on:                                                   *
  18.  *                                                                  *
  19.  *      Function prototypes.                                        *
  20.  *                                                                  *
  21.  *      Data structure templates.                                   *
  22.  *                                                                  *
  23.  *      Definition of special values.                               *
  24.  *                                                                  *
  25.  *                                                                  *
  26.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  27.  *         file depends on values defined in NETCONS.H.             *
  28.  *                                                                  *
  29.  *         This file is always included by LAN.H.                   *
  30.  *                                                                  *
  31.  ********************************************************************/
  32.  
  33.  
  34. #ifdef ANY_32_BIT
  35. #pragma pack(1)
  36. #endif
  37.  
  38.  
  39.  
  40. /****************************************************************
  41.  *                                                              *
  42.  *              Share Class                                     *
  43.  *                                                              *
  44.  ****************************************************************/
  45.  
  46. #if (defined( INCL_NETSHARE ) || !defined( LAN_INCLUDED )) \
  47.     && !defined( NETSHARE_INCLUDED )
  48.  
  49. #define NETSHARE_INCLUDED
  50.  
  51. /****************************************************************
  52.  *                                                              *
  53.  *              Function prototypes - SHARE                     *
  54.  *                                                              *
  55.  ****************************************************************/
  56.  
  57.  
  58. extern API_FUNCTION
  59.   NetShareAdd ( const unsigned char LSFAR * pszServer,
  60.                 short                       sLevel,
  61.                 const unsigned char LSFAR * pbBuffer,
  62.                 unsigned short              cbBuffer );
  63.  
  64. extern API_FUNCTION
  65.   NetShareCheck ( const unsigned char LSFAR *     pszServer,
  66.                   const unsigned char LSFAR *     pszDeviceName,
  67.                   unsigned short LSFAR *          pusType );
  68.  
  69. extern API_FUNCTION
  70.   NetShareDel ( const unsigned char LSFAR * pszServer,
  71.                 const unsigned char LSFAR * pszNetName,
  72.                 unsigned short              usReserved );
  73.  
  74. extern API_FUNCTION
  75.   NetShareEnum ( const unsigned char LSFAR *     pszServer,
  76.                  short                           sLevel,
  77.                  unsigned char LSFAR *           pbBuffer,
  78.                  unsigned short                  cbBuffer,
  79.                  unsigned short LSFAR *          pcEntriesRead,
  80.                  unsigned short LSFAR *          pcTotalAvail );
  81.  
  82. extern API_FUNCTION
  83.   NetShareGetInfo ( const unsigned char LSFAR *     pszServer,
  84.                     const unsigned char LSFAR *     pszNetName,
  85.                     short                           sLevel,
  86.                     unsigned char LSFAR *           pbBuffer,
  87.                     unsigned short                  cbBuffer,
  88.                     unsigned short LSFAR *          pcbTotalAvail );
  89.  
  90. extern API_FUNCTION
  91.   NetShareSetInfo ( const unsigned char LSFAR * pszServer,
  92.                     const unsigned char LSFAR * pszNetName,
  93.                     short                       sLevel,
  94.                     const unsigned char LSFAR * pbBuffer,
  95.                     unsigned short              cbBuffer,
  96.                     short                       sParmNum );
  97.  
  98.  
  99. /****************************************************************
  100.  *                                                              *
  101.  *              Data structure templates - SHARE                *
  102.  *                                                              *
  103.  ****************************************************************/
  104.  
  105. struct share_info_0 {
  106.     unsigned char      shi0_netname[NNLEN+1];
  107. };  /* share_info_0 */
  108.  
  109. struct share_info_1 {
  110.     unsigned char      shi1_netname[NNLEN+1];
  111.     unsigned char      shi1_pad1;
  112.     unsigned short     shi1_type;
  113.     unsigned char LSFAR * LSPTR shi1_remark;
  114. };  /* share_info_1 */
  115.  
  116. struct share_info_2 {
  117.     unsigned char      shi2_netname[NNLEN+1];
  118.     unsigned char      shi2_pad1;
  119.     unsigned short     shi2_type;
  120.     unsigned char LSFAR * LSPTR shi2_remark;
  121.     unsigned short     shi2_permissions;
  122.     unsigned short     shi2_max_uses;
  123.     unsigned short     shi2_current_uses;
  124.     unsigned char LSFAR * LSPTR shi2_path;
  125.     unsigned char      shi2_passwd[SHPWLEN+1];
  126.     unsigned char      shi2_pad2;
  127. };  /* share_info_2 */
  128.  
  129.  
  130. /* -------------------- Begin F2359 --------------------- */
  131.  
  132. #ifdef PURE_32
  133. /****************************************************************
  134.  *                                                              *
  135.  *              Function prototypes - SHARE                     *
  136.  *                for "pure" 32-bit code                        *
  137.  *                                                              *
  138.  ****************************************************************/
  139.  
  140. extern API32_FUNCTION
  141. Net32ShareAdd ( const unsigned char * pszServer,
  142.                 unsigned long         ulLevel,           /* was signed short */
  143.                 const unsigned char * pbBuffer,
  144.                 unsigned long         ulBuffer );        /* was USHORT */
  145.  
  146. extern API32_FUNCTION
  147. Net32ShareCheck ( const unsigned char * pszServer,
  148.                   const unsigned char * pszDeviceName,
  149.                   unsigned long       * pulType );      /* was USHORT */
  150.  
  151. extern API32_FUNCTION
  152. Net32ShareDel ( const unsigned char * pszServer,
  153.                 const unsigned char * pszNetName,
  154.                 unsigned long         ulReserved );     /* was USHORT */
  155.  
  156. extern API32_FUNCTION
  157. Net32ShareEnum ( const unsigned char     * pszServer,
  158.                  unsigned long     ulLevel,       /* was signed short */
  159.                  unsigned char   * pbBuffer,
  160.                  unsigned long     ulBuffer,       /* was USHORT */
  161.                  unsigned long   * pulEntriesRead, /* was USHORT */
  162.                  unsigned long   * pulTotalAvail );/* was USHORT */
  163.  
  164. extern API32_FUNCTION
  165. Net32ShareGetInfo ( const unsigned char     * pszServer,
  166.                     const unsigned char     * pszNetName,
  167.                     unsigned long     ulLevel,        /* was signed short */
  168.                     unsigned char   * pbBuffer,
  169.                     unsigned long     ulBuffer,        /* was USHORT */
  170.                     unsigned long   * pulTotalAvail ); /* was USHORT */
  171.  
  172. extern API32_FUNCTION
  173. Net32ShareSetInfo ( const unsigned char    * pszServer,
  174.                     const unsigned char    * pszNetName,
  175.                     unsigned long    ulLevel,     /* was signed short */
  176.                     const unsigned char    * pbBuffer,
  177.                     unsigned long    ulBuffer,    /* was USHORT */
  178.                     unsigned long    ulParmNum ); /* was signed short */
  179. #endif /* PURE_32 */
  180.  
  181. /* --------------------  End  F2359 --------------------- */
  182. /****************************************************************
  183.  *                                                              *
  184.  *          Special values and constants - SHARE                *
  185.  *                                                              *
  186.  ****************************************************************/
  187.  
  188.  
  189. /*
  190.  *      Values for parmnum parameter to NetShareSetInfo.
  191.  */
  192.  
  193. #define SHI_REMARK_PARMNUM              4
  194. #define SHI_PERMISSIONS_PARMNUM         5
  195. #define SHI_MAX_USES_PARMNUM            6
  196. #define SHI_PASSWD_PARMNUM              9
  197.  
  198. #define SHI1_NUM_ELEMENTS               4
  199. #define SHI2_NUM_ELEMENTS              10
  200.  
  201.  
  202. /*
  203.  *      Share types (shi1_type and shi2_type fields).
  204.  */
  205.  
  206. #define STYPE_DISKTREE                  0
  207. #define STYPE_PRINTQ                    1
  208. #define STYPE_DEVICE                    2
  209. #define STYPE_IPC                       3
  210.  
  211. #define SHI_USES_UNLIMITED              -1
  212.  
  213. #endif /* NETSHARE_INCLUDED */
  214.  
  215.  
  216. /****************************************************************
  217.  *                                                              *
  218.  *         Session Class                                        *
  219.  *                                                              *
  220.  ****************************************************************/
  221.  
  222. #if (defined( INCL_NETSESSION ) || !defined( LAN_INCLUDED )) \
  223.     && !defined( NETSESSION_INCLUDED )
  224.  
  225. #define NETSESSION_INCLUDED
  226.  
  227.  
  228. /****************************************************************
  229.  *                                                              *
  230.  *              Function prototypes - SESSION                   *
  231.  *                                                              *
  232.  ****************************************************************/
  233.  
  234. extern API_FUNCTION
  235.   NetSessionDel ( const unsigned char LSFAR * pszServer,
  236.                   const unsigned char LSFAR * pszClientName,
  237.                   short              sReserved );
  238.  
  239. extern API_FUNCTION
  240.   NetSessionEnum ( const unsigned char LSFAR *     pszServer,
  241.                    short                  sLevel,
  242.                    unsigned char LSFAR *           pbBuffer,
  243.                    unsigned short         cbBuffer,
  244.                    unsigned short LSFAR * pcEntriesRead,
  245.                    unsigned short LSFAR * pcTotalAvail );
  246.  
  247. extern API_FUNCTION
  248.   NetSessionGetInfo ( const unsigned char LSFAR *     pszServer,
  249.                       const unsigned char LSFAR *     pszClientName,
  250.                       short                  sLevel,
  251.                       unsigned char LSFAR *           pbBuffer,
  252.                       unsigned short         cbBuffer,
  253.                       unsigned short LSFAR * pcbTotalAvail );
  254.  
  255.  
  256. /****************************************************************
  257.  *                                                              *
  258.  *            Data structure templates - SESSION                *
  259.  *                                                              *
  260.  ****************************************************************/
  261.  
  262.  
  263. struct session_info_0 {
  264.     unsigned char LSFAR * LSPTR sesi0_cname;
  265. };  /* session_info_0 */
  266.  
  267. struct session_info_1 {
  268.     unsigned char LSFAR * LSPTR sesi1_cname;
  269.     unsigned char LSFAR * LSPTR sesi1_username;
  270.     unsigned short     sesi1_num_conns;
  271.     unsigned short     sesi1_num_opens;
  272.     unsigned short     sesi1_num_users;
  273.     unsigned long      sesi1_time;
  274.     unsigned long      sesi1_idle_time;
  275.     unsigned long      sesi1_user_flags;
  276. };  /* session_info_1 */
  277.  
  278. struct session_info_2 {
  279.     unsigned char LSFAR * LSPTR sesi2_cname;
  280.     unsigned char LSFAR * LSPTR sesi2_username;
  281.     unsigned short     sesi2_num_conns;
  282.     unsigned short     sesi2_num_opens;
  283.     unsigned short     sesi2_num_users;
  284.     unsigned long      sesi2_time;
  285.     unsigned long      sesi2_idle_time;
  286.     unsigned long      sesi2_user_flags;
  287.     unsigned char LSFAR * LSPTR sesi2_cltype_name;
  288. };  /* session_info_2 */
  289.  
  290. struct session_info_10 {
  291.         unsigned char LSFAR * LSPTR sesi10_cname;
  292.         unsigned char LSFAR * LSPTR sesi10_username;
  293.         unsigned long      sesi10_time;
  294.         unsigned long      sesi10_idle_time;
  295. };  /* session_info_10 */
  296.  
  297.  
  298. /* -------------------- Begin F2359 --------------------- */
  299.  
  300. #ifdef PURE_32
  301. /****************************************************************
  302.  *                                                              *
  303.  *              Function prototypes - SESSION                   *
  304.  *                                                              *
  305.  ****************************************************************/
  306.  
  307. extern API32_FUNCTION
  308. Net32SessionDel (const unsigned char    * pszServer,
  309.                  const unsigned char    * pszClientName,
  310.                  unsigned long    ulReserved);  /* was signed short */
  311.  
  312. extern API32_FUNCTION
  313. Net32SessionEnum (const unsigned char    * pszServer,
  314.                   unsigned long    ulLevel,         /* was signed short */
  315.                   unsigned char  * pbBuffer,
  316.                   unsigned long    ulBuffer,        /* was USHORT */
  317.                   unsigned long  * pulEntriesRead,  /* was USHORT */
  318.                   unsigned long  * pulTotalAvail);  /* was USHORT */
  319.  
  320. extern API32_FUNCTION
  321. Net32SessionGetInfo (const unsigned char    * pszServer,
  322.                      const unsigned char    * pszClientName,
  323.                      unsigned long    ulLevel,        /* was signed short */
  324.                      unsigned char  * pbBuffer,
  325.                      unsigned long    ulBuffer,       /* was USHORT */
  326.                      unsigned long  * pulTotalAvail); /* was USHORT */
  327. #endif /* PURE_32 */
  328.  
  329. /* --------------------  End  F2359 --------------------- */
  330.  
  331.  
  332. /****************************************************************
  333.  *                                                              *
  334.  *        Special values and constants - SESSION                *
  335.  *                                                              *
  336.  ****************************************************************/
  337.  
  338. /*
  339.  *      Bits defined in sesi1_user_flags.
  340.  */
  341.  
  342. #define SESS_GUEST              1       /* session is logged on as a guest */
  343. #define SESS_NOENCRYPTION       2       /* session is not using encryption */
  344.  
  345.  
  346. #define SESI1_NUM_ELEMENTS      8
  347. #define SESI2_NUM_ELEMENTS      9
  348.  
  349. #endif /* NETSESSION_INCLUDED */
  350.  
  351.  
  352. /****************************************************************
  353.  *                                                              *
  354.  *              Connection Class                                *
  355.  *                                                              *
  356.  ****************************************************************/
  357.  
  358. #if (defined( INCL_NETCONNECTION ) || !defined( LAN_INCLUDED )) \
  359.     && !defined( NETCONNECTION_INCLUDED )
  360.  
  361. #define NETCONNECTION_INCLUDED
  362.  
  363.  
  364. /****************************************************************
  365.  *                                                              *
  366.  *              Function prototypes - CONNECTION                *
  367.  *                                                              *
  368.  ****************************************************************/
  369.  
  370. extern API_FUNCTION
  371.   NetConnectionEnum ( const unsigned char LSFAR *     pszServer,
  372.                       const unsigned char LSFAR *     pszQualifier,
  373.                       short                  sLevel,
  374.                       unsigned char LSFAR *           pbBuffer,
  375.                       unsigned short         cbBuffer,
  376.                       unsigned short LSFAR * pcEntriesRead,
  377.                       unsigned short LSFAR * pcTotalAvail );
  378.  
  379.  
  380. /****************************************************************
  381.  *                                                              *
  382.  *              Data structure templates - CONNECTION           *
  383.  *                                                              *
  384.  ****************************************************************/
  385.  
  386. struct connection_info_0 {
  387.     unsigned short      coni0_id;
  388. };  /* connection_info_0 */
  389.  
  390. struct connection_info_1 {
  391.     unsigned short     coni1_id;
  392.     unsigned short     coni1_type;
  393.     unsigned short     coni1_num_opens;
  394.     unsigned short     coni1_num_users;
  395.     unsigned long      coni1_time;
  396.     unsigned char LSFAR * LSPTR coni1_username;
  397.     unsigned char LSFAR * LSPTR coni1_netname;
  398. };  /* connection_info_1 */
  399.  
  400.  
  401. /* -------------------- Begin F2359 --------------------- */
  402. #ifdef PURE_32
  403. /****************************************************************
  404.  *                                                              *
  405.  *       Function prototypes - CONNECTION (32-Bit)              *
  406.  *                                                              *
  407.  ****************************************************************/
  408.  
  409. extern API32_FUNCTION
  410.   Net32ConnectionEnum ( const unsigned char    * pszServer,
  411.                         const unsigned char    * pszQualifier,
  412.                         unsigned long    ulLevel,         /* was signed short*/
  413.                         unsigned char  * pbBuffer,
  414.                         unsigned long    ulBuffer,        /* was USHORT */
  415.                         unsigned long  * pulEntriesRead,  /* was PUSHORT*/
  416.                         unsigned long  * pulTotalAvail ); /* was PUSHORT*/
  417. #endif /* PURE_32 */
  418.  
  419. /* --------------------  End  F2359 --------------------- */
  420.  
  421. #endif /* NETCONNECTION_INCLUDED */
  422.  
  423.  
  424. /****************************************************************
  425.  *                                                              *
  426.  *              File Class                                      *
  427.  *                                                              *
  428.  ****************************************************************/
  429.  
  430. #if (defined( INCL_NETFILE ) || !defined( LAN_INCLUDED )) \
  431.     && !defined( NETFILE_INCLUDED )
  432.  
  433. #define NETFILE_INCLUDED
  434.  
  435.  
  436. /****************************************************************
  437.  *                                                              *
  438.  *              Function prototypes - FILE                      *
  439.  *                                                              *
  440.  ****************************************************************/
  441.  
  442. extern API_FUNCTION
  443.   NetFileClose ( const unsigned char LSFAR * pszServer,
  444.                  unsigned short     usFileId );
  445.  
  446. extern API_FUNCTION
  447.   NetFileClose2 ( const unsigned char LSFAR * pszServer,
  448.                   unsigned long      ulFileId );
  449.  
  450. extern API_FUNCTION
  451.   NetFileEnum ( const unsigned char LSFAR *     pszServer,
  452.                 const unsigned char LSFAR *     pszBasePath,
  453.                 short                  sLevel,
  454.                 unsigned char LSFAR *           pbBuffer,
  455.                 unsigned short         cbBuffer,
  456.                 unsigned short LSFAR * pcEntriesRead,
  457.                 unsigned short LSFAR * pcTotalAvail );
  458.  
  459. extern API_FUNCTION
  460.   NetFileEnum2 ( const unsigned char LSFAR *     pszServer,
  461.                  const unsigned char LSFAR *     pszBasePath,
  462.                  const unsigned char LSFAR *     pszUserName,
  463.                  short                  sLevel,
  464.                  unsigned char LSFAR *           pbBuffer,
  465.                  unsigned short         cbBuffer,
  466.                  unsigned short LSFAR * pcEntriesRead,
  467.                  unsigned short LSFAR * pcEntriesRemaining,
  468.                  void LSFAR *           pResumeKey );
  469.  
  470. extern API_FUNCTION
  471.   NetFileGetInfo ( const unsigned char LSFAR *     pszServer,
  472.                    unsigned short         usFileId,
  473.                    short                  sLevel,
  474.                    unsigned char LSFAR *           pbBuffer,
  475.                    unsigned short         cbBuffer,
  476.                    unsigned short LSFAR * pcbTotalAvail );
  477.  
  478. extern API_FUNCTION
  479.   NetFileGetInfo2 ( const unsigned char LSFAR *     pszServer,
  480.                     unsigned long          ulFileId,
  481.                     short                  sLevel,
  482.                     unsigned char LSFAR *           pbBuffer,
  483.                     unsigned short         cbBuffer,
  484.                     unsigned short LSFAR * pcbTotalAvail );
  485.  
  486.  
  487. /****************************************************************
  488.  *                                                              *
  489.  *              Data structure templates - FILE                 *
  490.  *                                                              *
  491.  ****************************************************************/
  492.  
  493. struct file_info_0 {
  494.     unsigned short      fi0_id;
  495. };  /* file_info_0 */
  496.  
  497. struct file_info_1 {
  498.     unsigned short     fi1_id;
  499.     unsigned short     fi1_permissions;
  500.     unsigned short     fi1_num_locks;
  501.     unsigned char LSFAR * LSPTR fi1_pathname;
  502.     unsigned char LSFAR * LSPTR fi1_username;
  503. };  /* file_info_1 */
  504.  
  505. struct file_info_2 {
  506.     unsigned long       fi2_id;
  507. };  /* file_info_2 */
  508.  
  509. struct file_info_3 {
  510.     unsigned long      fi3_id;
  511.     unsigned short     fi3_permissions;
  512.     unsigned short     fi3_num_locks;
  513.     unsigned char LSFAR * LSPTR fi3_pathname;
  514.     unsigned char LSFAR * LSPTR fi3_username;
  515. };  /* file_info_3 */
  516.  
  517.  
  518. struct res_file_enum_2 {
  519.     unsigned short      res_pad;         /* not used now */
  520.     unsigned short      res_fs;          /* server type */
  521.     unsigned long       res_pro;          /* progressive */
  522. };  /* res_file_enum_2 */
  523.  
  524. #ifdef  PURE_32
  525. /****************************************************************
  526.  *                                                              *
  527.  *              Function prototypes - FILE                      *
  528.  *                for "pure" 32-bit code                        *
  529.  *                                                              *
  530.  ****************************************************************/
  531. extern API32_FUNCTION
  532. Net32FileClose2 ( const unsigned char    * pszServer,
  533.                   unsigned long    ulFileId );
  534.  
  535. extern API32_FUNCTION
  536. Net32FileEnum2 ( const unsigned char    * pszServer,
  537.                  const unsigned char    * pszBasePath,
  538.                  const unsigned char    * pszUserName,
  539.                  unsigned long    ulLevel,             /*was signed short*/
  540.                  unsigned char  * pbBuffer,
  541.                  unsigned long    ulBuffer,            /* was USHORT */
  542.                  unsigned long  * pulEntriesRead,      /* was PUSHORT*/
  543.                  unsigned long  * pulEntriesRemaining, /* was PUSHORT*/
  544.                  void           * pResumeKey );
  545.  
  546. extern API32_FUNCTION
  547. Net32FileGetInfo2 ( const unsigned char    * pszServer,
  548.                     unsigned long    ulFileId,
  549.                     unsigned long    ulLevel,          /*was signed short*/
  550.                     unsigned char  * pbBuffer,
  551.                     unsigned long    ulBuffer,         /* was USHORT */
  552.                     unsigned long  * pulTotalAvail );  /* was PUSHORT*/
  553. #endif /* PURE_32 */
  554.  
  555.  
  556.  
  557. /****************************************************************
  558.  *                                                              *
  559.  *              Special values and constants - FILE             *
  560.  *                                                              *
  561.  ****************************************************************/
  562.  
  563.                                         /* bit values for permissions */
  564. #define PERM_FILE_READ          0x1     /* user has read access */
  565. #define PERM_FILE_WRITE         0x2     /* user has write access */
  566. #define PERM_FILE_CREATE        0x4     /* user has create access */
  567.  
  568.  
  569. typedef struct res_file_enum_2 FRK;
  570.  
  571. #define FRK_INIT( f )   \
  572.         {               \
  573.                 (f).res_pad = 0L;       \
  574.                 (f).res_fs = 0; \
  575.                 (f).res_pro = 0;        \
  576.         }
  577.  
  578.  
  579. #endif /* NETFILE_INCLUDED */
  580.  
  581. #ifdef ANY_32_BIT
  582. #pragma pack()
  583. #endif
  584.  
  585.