home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR24 / RXLAN0.ZIP / REXXLAN.DOC < prev    next >
Text File  |  1993-06-30  |  132KB  |  3,317 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                             REXXLAN 0.99 documentation
  10.  
  11.                             !!!!!!!!!!!!!!!!!!!!!!!!!!!
  12.  
  13.                                 PRERELEASE VERSION
  14.  
  15.                             !!!!!!!!!!!!!!!!!!!!!!!!!!!
  16.  
  17.                ┌──────────────────────────────────────────────────┐
  18.                │                      REXXLAN                     │
  19.                │     the programmers REXX API extension for       │
  20.                │     IBM LAN Server (and compatible) networks.    │
  21.                └──────────────────────────────────────────────────┘
  22.  
  23.                   (c) EDV Beratung Leif Braeuer, 1992, 1993
  24.                       2080 Pinneberg, Germany
  25.                       EMAIL: CIS: 100024,3436, Fido: 2:240/5015.13
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.                  THIS EVALUATION LICENSE EXPIRES 30 DAYS FOLLOWING
  33.                  GENERAL AVAILABILITY OF THE PRODUCT OR AT LEAST ON
  34.                  SEPTEMBER 30, 1993.
  35.                  THE PRE-RELEASE PROGRAM AND DOCUMENTATION ARE PRO-
  36.                  VIDED "AS-IS".
  37.  
  38.                  THIS EVALUATION PACKAGE MAY BE DISTRIBUTED UNCHANGED
  39.                  FREELY VIA BULLETIN BOARD SYSTEMS INCLUDING ALL FILES
  40.                  AND CONSIDERING THE COPYRIGHT NOTES.
  41.                  YOU ARE NOT ALLOWED TO CHARGE ANY DISTRIBUTION FEES
  42.                  EXCEPT FOR REASONABLE HANDLING COSTS.
  43.  
  44.  
  45.  
  46.  
  47.  
  48. ┌─────────────────────────────  DISCLAIMER ────────────────────────────────────┐
  49. │                                                                              │
  50. │  THE USER OF THE PROGRAM BY USING IT AGREES NOT TO HOLD THE AUTHOR NOR THE   │
  51. │  DISTRIBUTOR LIABLE FOR ANY DAMAGE THAT MAY HAVE BEEN CAUSED BY EITHER THE   │
  52. │  PROPER OR IMPROPER FUNCTIONING OR BY THE USE OR MISUSE OF THIS REXXLAN      │
  53. │  REXX PROGRAMMING EXTENSION.                                                 │
  54. │                                                                              │
  55. └──────────────────────────────────────────────────────────────────────────────┘
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.                                 TABLE OF CONTENTS
  72.  
  73.  
  74.  
  75.          I.  INTRODUCTION
  76.                 What is REXXLAN
  77.                 How do I use REXXLAN ?
  78.  
  79.  
  80.         II.  CONTENT OF THIS PACKAGE
  81.                 The files
  82.                 Installation
  83.                 Terms of license
  84.                 Ordering and Support
  85.  
  86.  
  87.        III.  DESCRIPTION OF THE API
  88.                 1. The internals API
  89.                 2. The LAN Server API
  90.  
  91.  
  92.  
  93.  
  94.  
  95.   I.  INTRODUCTION.
  96.  
  97.   What is REXXLAN ?
  98.   ─────────────────
  99.   Since the IBM OS/2 version 2.0, IBM provides an easy to use language
  100.   extension for the OS/2 Procedures Language/REXX. Third party developer
  101.   are able to supply REXX extension DLL, to add "special-need" functions
  102.   to the REXX language extent.
  103.   An example for this kind of extension is REXXUTIL.DLL, a component of
  104.   the operating system, that adds some Workplace-Shell and standard API
  105.   system calls to the REXX language.
  106.  
  107.   This well documented possibility to extend REXX and the few command
  108.   line programs available for the IBM LAN Server were the base of
  109.   the idea, to develop an extension that allows full access to the
  110.   broad LAN Server API.
  111.  
  112.   The development goals were:
  113.  
  114.       - supply an API that matches as good as possible the C calls.
  115.         A programmer who uses the LAN API in his C programs should not
  116.         have any problem to use the REXX counterparts.
  117.       - the API will not suppress any information
  118.       - The API will not use any temporary files
  119.       - the API should implement a mechanism to transport data to/from
  120.         the API that is similar to the C data structures.
  121.  
  122.  
  123.   The result is two files, RXLAN20.DLL and RXLAN30.DLL, that implement
  124.   more than 80 API calls to use in REXX.
  125.   RXLAN20.DLL is used for LAN Server 2.X Requester, that do not support
  126.   the LAN Server 3.0 Domain Controller Database (DCDB) API.
  127.   RXLAN30.DLL adds these DCDB API calls and can only be used with IBM
  128.   LAN Requester 3.0 or higher.
  129.  
  130.  
  131.   REXXLAN is excellent for
  132.  
  133.   - LAN Server administrators who have a minimum of REXX programming
  134.     knowledge.
  135.  
  136.   - developers of applications who use some of the LAN Server API,
  137.     and need to test the function of a specific API call. Instead of
  138.     writing several small C programs, compiling them and testing their
  139.     function, one can write a small REXX batch, run, modify and rerun
  140.     this batch. The turnaround time is much shorter using this method.
  141.  
  142.   - users of a LAN Requester, who want to exploit the full capacity of
  143.     the Requester, e.g. to write some batches to connect to resources,
  144.     access other servers, add new applications to their Application Menu.
  145.  
  146.  
  147.   How do I use REXXLAN ?
  148.   ──────────────────────
  149.   The following example shows the use of the REXXLAN extension in your
  150.   REXX programs:
  151.  
  152.     1: /* REXX */
  153.     2: /* Query which user is logged on this PC */
  154.     3:
  155.     4: CALL RxFuncAdd NetLoadFuncs, RXLAN20, NetLoadFuncs
  156.     5: CALL NetLoadFuncs
  157.     6: SAY 'Querying workstation info...'
  158.     7: ret =  NetWkstaGetInfo( '', '0', 'Buffer', '0', '0' )
  159.     8: IF ret = 0 THEN DO
  160.     9:    SAY 'Logged on user : ' || Buffer.wki0_username
  161.    10:    SAY 'Default domain : ' || Buffer.wki0_langroup
  162.    11:    END
  163.    12: ELSE DO
  164.    13:    IF ret = 2201 THEN DO            /* NERR_NotLoggedOn */
  165.    14:       SAY 'No user is logged on.'
  166.    15:       END
  167.    16:    ELSE DO
  168.    17:       SAY 'Error in NetWkstaGetInfo rc = ' || ret
  169.    18:       END
  170.    19:    END
  171.    20: CALL Netdropfuncs
  172.  
  173.    In line 4 the REXX function RxFuncAdd is used to add the loading
  174.    function of a REXX extension DLL. Please refer to your REXX Pro-
  175.    grammers Reference for more information.
  176.    The loading function is called NetLoadFuncs (like SysLoadFuncs in
  177.    the REXXUTIL.DLL). NetLoadFuncs is loaded from RXLAN20.DLL and
  178.    registered under the name NetLoadFuncs.
  179.    In line 5 the NetLoadFuncs registers all RXLAN20 functions, initialises
  180.    all needed variables and allocates memory for the loaded instance of
  181.    the DLL.
  182.  
  183.         DO NOT REGISTER ANY OTHER FUNCTION THROUGH THE RXFUNCADD API !
  184.  
  185.         UNPREDICTABLE ERRORS WILL OCCUR, IF YOU TRY TO USE REXXLAN APIS
  186.         WITHOUT INITIALIZING THEM WITH NETLOADFUNCS
  187.  
  188.    In line 7 the NetWkstaGetInfo is called. The first parameter specifies
  189.    where the command will be executed. '' means, the command will be
  190.    executed locally. The second parameter '0' specifies the level of
  191.    information needed. 'Buffer' tells the REXX function under which name
  192.    the variables should be created. The remaining buffers were left for
  193.    "future use" and for compatibility reasons. The lines 9 and 10 show
  194.    which variables are created by the Wksta API call. These values are
  195.    printed, if a user is logged on.
  196.  
  197.    REXXLAN and the REXX variable pools
  198.    ───────────────────────────────────
  199.    REXX does not know any structured variables. So, a mechanism had to be
  200.    implemented which simulates this by seperating the variable name and
  201.    its struct fields by a dot. The REXX progammer passes the API the name
  202.    of a top level qualifier under which the complete variable structure
  203.    will be created.
  204.    E.g.         ACCESSINFO.ACC1_RESOURCENAME
  205.                 ACCESSINFO.ACC1_ATTR         
  206.                 ACCESSINFO.ACC1_COUNT
  207.                 ACCESSINFO.n.ACL_UGNAME
  208.                 ACCESSINFO.n.ACL_ACCESS            (n: 0..ACC1_COUNT-1)
  209.  
  210.    In this example the programmer passed 'ACCESSINFO' for the parameter
  211.    buffer to the NetAccessAdd function.
  212.  
  213.  
  214.  
  215.   II.  CONTENT OF THIS PACKAGE
  216.  
  217.   The files
  218.   ─────────
  219.  
  220.   This package consists of the following files:
  221.  
  222.        - RXLAN20.DLL       The REXXLAN extension DLL for a LAN Server
  223.                            Version 2.0 Requester
  224.  
  225.        - RXLAN30.DLL       The counterpart DLL for a LAN Server Version
  226.                            3.0 Requester.
  227.                            DO NOT USE THIS WITH A LAN REQUESTER 2.0
  228.  
  229.        - REXXLAN.DOC       This document
  230.  
  231.        - REXXLAN.INF       The VIEWable one-line reference
  232.                            (NO AVAILABLE YET)
  233.  
  234.        - README.1ST        Any last minute comments. Please read them.
  235.  
  236.        - \SMPLES20         Some sample REXX files using the REXX20.DLL
  237.                            The files are well documented, please read
  238.                            the remarks for further details.
  239.  
  240.        - \SMPLES30         The REXX30.DLL counterpart.
  241.  
  242.        - FORM              For the development of further releases of
  243.                            REXXLAN and other Network management utilities,
  244.                            I ask you to fill in this form. Please send the
  245.                            completed form back to me.
  246.  
  247.        - REPORT.BUG        For the - hopefully - never occuring case, that
  248.                            you discover an "anomaly" of my program,
  249.                            please fill in this form and send it to me.
  250.  
  251.  
  252.       You are not allowed to distribute any changed file, except of
  253.       packing these files into one archive using a program like PKZIP
  254.       or LHARC.
  255.  
  256.  
  257.  
  258.   Installation
  259.   ────────────
  260.  
  261.   To use the REXXLAN extension, copy all files from the diskette into
  262.   a directory of you choice. Then copy the appropriate file RXLAN20.DLL
  263.   or RXLAN30.DLL in a LIBPATH directory like \IBMLAN\NETLIB or add
  264.   your installation directory to the LIBBPATH statement in the CONFIG.SYS
  265.   You may add the pathname of your REXX program directory to the PATH
  266.   statement of the CONFIG.SYS to run your CMD files from every directory.
  267.  
  268.  
  269.  
  270.  
  271.  
  272.   Terms of license
  273.   ────────────────
  274.  
  275.  
  276.       THIS EVALUATION LICENSE EXPIRES 30 DAYS FOLLOWING GENERAL
  277.       AVAILABILITY OF THE PRODUCT OR AT LEAST ON SEPTEMBER 30, 1993.
  278.  
  279.       THE PRE-RELEASE PROGRAM AND DOCUMENTATION ARE PROVIDED "AS-IS".
  280.  
  281.       THIS EVALUATION PACKAGE MAY BE DISTRIBUTED UNCHANGED FREELY (E.G.
  282.       VIA BULLETIN BOARD SYSTEMS)  INCLUDING ALL FILES AND CONSIDERING
  283.       THE COPYRIGHT NOTES.
  284.  
  285.       YOU ARE NOT ALLOWED TO CHARGE ANY DISTRIBUTION FEES EXCEPT OF
  286.       REASONABLE HANDLING COSTS.
  287.  
  288.  
  289.       THE PACKAGE IS NEITHER FREEWARE, NOR "FOR PUBLIC DOMAIN", NOR
  290.       SHAREWARE.
  291.       AFTER EXPIRATION OF THIS LICENSE, YOU HAVE TO DELETE ALL COPIES
  292.       OF THIS PROGRAM AND DOCUMENTATION OR IF YOU WISH TO CONTINUE
  293.       USING REXXLAN, ORDER THE "GOLDEN CODE" OF THE PROGRAM.
  294.  
  295.  
  296.  
  297.   Ordering and support
  298.   ────────────────────
  299.   At the moment, no details on ordering and licensing cost are available.
  300.   Please contact the technical support or wait for the general available
  301.   announcement.
  302.  
  303.   The technical support is provided through electronic mail. You will
  304.   reach it at:
  305.  
  306.         COMPUSERVE:   LEIF BRAEUER, 100024,3436
  307.  
  308.         FIDO:         2:240/5015.13  OR
  309.                       2:242/320.13
  310.  
  311.         INTERNET:     100024,3436@compuserve.com
  312.  
  313.         MAUS NET:     LEIF BRAEUER@HH           (GERMANY ONLY)
  314.  
  315.  
  316.  
  317. *************************************************************************
  318. *************************************************************************
  319.  
  320.  
  321.                                     REXXLAN LAN SERVER API IMPLEMENTATION
  322.  
  323.                                                     (Version 0.99)
  324.  
  325. *************************************************************************
  326. *************************************************************************
  327.  
  328.  
  329.  
  330.  
  331. -------------------------------------------------------------------------
  332.                                                      1. INTERNALS SECTION
  333. -------------------------------------------------------------------------
  334.  
  335.                                                              NetDropFuncs
  336. -------------------------------------------------------------------------
  337.     Syntax    : CALL NetDropFuncs
  338.  
  339.     Purpose   : Deregister all registered Functions of RXLAN?0.DLL
  340.  
  341.     Return    : NONE
  342.  
  343.     Parameter : NONE
  344.  
  345.     Variables : NONE
  346.  
  347. -------------------------------------------------------------------------
  348.  
  349.  
  350.                                                              NetLoadFuncs
  351. -------------------------------------------------------------------------
  352.     Syntax    : CALL NetLoadFuncs
  353.  
  354.     Purpose   : Register additional Function from RXLAN?0.DLL
  355.  
  356.     Return    : NONE
  357.  
  358.     Parameter : NONE
  359.  
  360.     Variables : NONE
  361.  
  362. -------------------------------------------------------------------------
  363.  
  364.  
  365.                                                            NetRexxVersion
  366. -------------------------------------------------------------------------
  367.     Syntax    : Call NetRexxVersion level
  368.  
  369.     Purpose   : Get information about REXXLAN version / supported LAN
  370.                 Requester
  371.  
  372.     Return    : depends on the value of level
  373.  
  374.     Parameter : level  0 : return major and minor version of REXXLAN
  375.                            (e.g. "0.99")
  376.                        1 : return supported LAN Requester version
  377.                            "2.0" or "3.0"
  378.                        2 : return a textual copyright note
  379.  
  380.     Variables : NONE
  381.  
  382. -------------------------------------------------------------------------
  383.  
  384.  
  385.                                                      NetRexxQueryFunction
  386. -------------------------------------------------------------------------
  387.     Syntax    : Call NetRexxQueryFunction( function-name )
  388.  
  389.     Purpose   : Answer requests, if a function is available in the loaded
  390.                 REXXLAN module.
  391.  
  392.     Return    : 1 : function-name is available
  393.                 0 : function is unknown
  394.  
  395.     Parameter : Name of function to test
  396.  
  397.     Variables : NONE
  398.  
  399. -------------------------------------------------------------------------
  400.  
  401.  
  402. -------------------------------------------------------------------------
  403.                                                        2. ACCESS SECTION
  404. -------------------------------------------------------------------------
  405.  
  406.  
  407.                                                             NetAccessAdd
  408. -------------------------------------------------------------------------
  409.     Syntax    : ret = NetAccessAdd( server, level, rexx-buffer, dummy )
  410.  
  411.     Purpose   : Add a access profile for the resource on a server
  412.                 Implements NetAccessAdd (only level 1 info is supported)
  413.  
  414.     Return    : NETAPI return code (0 = successful completion)
  415.  
  416.     Parameter : server      - UNC servername like \\SERVER1
  417.                 level       - only level '1' is supported
  418.                 rexx-buffer - name of  REXX variable containing the
  419.                               access_info_1 struct
  420.                 dummy       - reserved to preserve NetApi compatibility
  421.  
  422.     Variables : there needs to be a fully initialized Variable structure
  423.                 to which the rexx-buffer name points.
  424.                 E.g. rexx-buffer contains the name 'ACCESSINFO', there
  425.                 will be the following variables:
  426.                 (For a description, please refer to the 'Lan Application
  427.                 Programmers Reference')
  428.  
  429.                 ACCESSINFO.ACC1_RESOURCENAME 
  430.                 ACCESSINFO.ACC1_ATTR         
  431.                 ACCESSINFO.ACC1_COUNT
  432.                 ACCESSINFO.n.ACL_UGNAME
  433.                 ACCESSINFO.n.ACL_ACCESS            (n: 0..ACC1_COUNT-1)
  434.  
  435.  
  436.  
  437.  
  438.                                                         NetAccessGetInfo
  439. -------------------------------------------------------------------------
  440.     Syntax    : ret = NetAccessGetInfo( server, resource, level,
  441.                                         rexx-buffer, dummy, dummy )
  442.  
  443.     Purpose   : Get information about access profiles for the resource
  444.                 on a server
  445.  
  446.     Return    : NETAPI return code (0 = successful completion)
  447.  
  448.     Parameter : server      - UNC servername like \\SERVER1
  449.                 resource    - name of the resource like C:\IBMLAN
  450.                 level       - only level '1' is supported
  451.                 rexx-buffer - name of  REXX variable containing the
  452.                               access_info_1 struct
  453.                 dummy       - reserved to preserve NetApi compatibility
  454.  
  455.     Variables : This call fills a variable struct of the type
  456.                 access_info_1 with the name passed through the
  457.                 rexx-name parameter  E.g. rexx-buffer contains the
  458.                 name 'ACCESSINFO', there will be returned the following
  459.                 variables:
  460.                 (For a description, please refer to the 'Lan Application
  461.                 Programmers Reference')
  462.  
  463.                 ACCESSINFO.ACC1_RESOURCENAME 
  464.                 ACCESSINFO.ACC1_ATTR         
  465.                 ACCESSINFO.ACC1_COUNT
  466.                 ACCESSINFO.n.ACL_UGNAME
  467.                 ACCESSINFO.n.ACL_ACCESS            (n: 0..ACC1_COUNT-1)
  468.  
  469.  
  470.  
  471.  
  472.                                                         NetAccessSetInfo
  473. -------------------------------------------------------------------------
  474.  
  475.     Syntax    : ret = NetAccessSetInfo( server, resource, level,
  476.                                         rexx-buffer, dummy, parmnum )
  477.  
  478.     Purpose   : Set information about access profiles for the resource
  479.                 on a server changes the access profile for the specified
  480.                 resource. Only level 1 is supported. The paramnum option
  481.                 is not implemented.
  482.     Return    : NETAPI return code (0 = successful completion)
  483.  
  484.     Parameter : server      - UNC servername like \\SERVER1
  485.                 resource    - name of the resource like C:\IBMLAN
  486.                 level       - only level '1' is supported
  487.                 rexx-buffer - name of  REXX variable containing the
  488.                               access_info_1 struct
  489.                 paramnum    - 0: change the complete ACL
  490.                               ACCESS_ATTR_PARAMNUM: not implemented !!!!!!
  491.                 dummy       - reserved to preserve NetApi compatibility
  492.  
  493.     Variables : This call fills a variable struct of type access_info_1
  494.                 with the name passed through the rexx-name parameter
  495.                 E.g. rexx-buffer contains the name 'ACCESSINFO', there
  496.                 will be returned the following variables:
  497.                 (For a description, please refer to the 'Lan Application
  498.                 Programmers Reference')
  499.  
  500.                 ACCESSINFO.ACC1_RESOURCENAME 
  501.                 ACCESSINFO.ACC1_ATTR         
  502.                 ACCESSINFO.ACC1_COUNT
  503.                 ACCESSINFO.n.ACL_UGNAME
  504.                 ACCESSINFO.n.ACL_ACCESS            (n: 0..ACC1_COUNT-1)
  505.  
  506.  
  507.  
  508.  
  509.                                                           NetAccessCheck
  510. -------------------------------------------------------------------------
  511.  
  512.     Syntax    : ret = NetAccessCheck( resvd, user, resource, operation,
  513.                                       result )
  514.  
  515.     Purpose   : Used to check that user can do the operation on resource
  516.  
  517.     Return    : NETAPI return code (0 = successful completion)
  518.  
  519.     Parameter : resvd      : must be ""
  520.                 user       : name of user
  521.                 resource   : name of resouce, e.g. UNC name
  522.                 operation  : access control bitmask
  523.                 result     : name of REXX variable, containing result
  524.                              result can contain 0 (access allowed) or
  525.                              ERROR_ACCESS_DENIED
  526.  
  527.     Variables : NONE
  528.  
  529.  
  530.  
  531.  
  532.                                                    NetAccessGetUserPerms
  533. -------------------------------------------------------------------------
  534.  
  535.     Syntax    : ret = NetAccessGetUserPerms( server, user, resource,
  536.                                              perms )
  537.  
  538.     Purpose   : Returns permissions for the resource on the specified
  539.                 server for user in the REXX variable
  540.  
  541.     Return    : NETAPI return code (0 = successful completion)
  542.  
  543.     Parameter : server :        server, which owns the resource
  544.                 resource:       directory, pipe, etc.
  545.                 perms:          name of REXX variable, that will contain
  546.                                 the permission mask
  547.  
  548.     Variables : NONE
  549.  
  550.  
  551.  
  552.  
  553.                                                            NetAccessEnum
  554. -------------------------------------------------------------------------
  555.  
  556.     Syntax    : ret = NetAccessEnum( server, basepath, recursively, level,
  557.                                      buffer, dummy, total, dummy )
  558.  
  559.  
  560.     Purpose   : lists all resources with defined access profiles.
  561.                 Only level 0 is supported                                                                *
  562.  
  563.     Return    : NETAPI return code (0 = successful completion)
  564.  
  565.     Parameter : server:       name of server, e.g. \\SERVER1
  566.                 basepath:     display profiles for resources beginning
  567.                               with basepath (e.g. C:\ or \PIPE)
  568.                 recursively:  1 = include all subdirectories
  569.                               0 = don't include subdirectories
  570.                 level:        0
  571.                 Rexx-buffer:  name of Rexx variable, containing the
  572.                               found profiles
  573.                 Rexx-total:   Rexx variable containing the number of
  574.                               profiles found
  575.  
  576.     Variables : This call fills a number of variable structs of the
  577.                 type access_info_1 with the name passed through the
  578.                 rexx-buffer parameter.
  579.                 E.g. rexx-buffer contains the name 'ACCESSINFO', there
  580.                 will be returned the following variables:
  581.  
  582.                 if level = 0:
  583.                 ACCESSINFO.n.ACC0_RESOURCENAME
  584.  
  585.                 if level = 1:
  586.                 ACCESSINFO.n.ACC1_RESOURCENAME
  587.                 ACCESSINFO.n.ACC1_ATTR
  588.                 ACCESSINFO.n.ACC1_COUNT
  589.                 ACCESSINFO.n.o.ACL_UGNAME
  590.                 ACCESSINFO.n.o.ACL_ACCESS            (o: 0..ACC1_COUNT-1)
  591.  
  592.  
  593.  
  594.  
  595.                                                             NetAccessDel
  596. -------------------------------------------------------------------------
  597.  
  598.     Syntax    : ret = NetAccessDel( server, resource )
  599.  
  600.     Purpose   : Removes the access profile for the resource
  601.  
  602.     Return    : NETAPI return code (0 = successful completion)
  603.  
  604.     Parameter : server :   name of server (e.g. "\\SERVER1")
  605.                 resource:  directory, pipe, printer, etc.
  606.  
  607.     Variables : NONE
  608.  
  609.  
  610. -------------------------------------------------------------------------
  611.                                                     3. REQUESTER SECTION
  612. -------------------------------------------------------------------------
  613.  
  614.     Comments:
  615.                 The API call NetWkstaSetUID will not be supported.
  616.                 This API has been replaced by NetWkstaSetUID2.
  617.  
  618.  
  619.                                                          NetWkstaSetInfo
  620. -------------------------------------------------------------------------
  621.  
  622.     Syntax    : ret = NetWkstaSetInfo( server, level, rexx-buffer,
  623.                                        dummy, dummy )
  624.  
  625.     Purpose   : modifies actual LAN server parameter
  626.                 the parmnum field is not supported
  627.  
  628.     Return    : NETAPI return code (0 = successful completion)
  629.  
  630.     Parameter : server:            s.o.
  631.                 level:             0, 1
  632.                 rexx-buffer:       name of rexx variable containing
  633.                                    wksta data
  634.  
  635.     Variables : For Rexx-buffer = "BUFFER" and level = 0:
  636.   
  637.                 BUFFER.WKI0_root
  638.                 BUFFER.WKI0_computername
  639.                 BUFFER.WKI0_username
  640.                 BUFFER.WKI0_langroup
  641.                 BUFFER.WKI0_ver_major
  642.                 BUFFER.WKI0_ver_minor
  643.                 BUFFER.WKI0_charwait
  644.                 BUFFER.WKI0_chartime
  645.                 BUFFER.WKI0_charcount
  646.                 BUFFER.WKI0_keepconn
  647.                 BUFFER.WKI0_keepsearch
  648.                 BUFFER.WKI0_maxthreads
  649.                 BUFFER.WKI0_maxcmds
  650.                 BUFFER.WKI0_numworkbuf
  651.                 BUFFER.WKI0_sizworkbuf
  652.                 BUFFER.WKI0_maxwrkcache
  653.                 BUFFER.WKI0_sesstimeout
  654.                 BUFFER.WKI0_sizerror
  655.                 BUFFER.WKI0_numalerts
  656.                 BUFFER.WKI0_numservices
  657.                 BUFFER.WKI0_errlogsz
  658.                 BUFFER.WKI0_printbuftime
  659.                 BUFFER.WKI0_numcharbuf
  660.                 BUFFER.WKI0_sizcharbuf
  661.                 BUFFER.WKI0_logon_server
  662.                 BUFFER.WKI0_wrkheuristics
  663.                 BUFFER.WKI0_mailslots
  664.  
  665.                 - For Rexx-buffer = "BUFFER" and level = 1:
  666.                 BUFFER.WKI1_root
  667.                 BUFFER.WKI1_computername
  668.                 BUFFER.WKI1_username
  669.                 BUFFER.WKI1_langroup
  670.                 BUFFER.WKI1_ver_major
  671.                 BUFFER.WKI1_ver_minor
  672.                 BUFFER.WKI1_charwait
  673.                 BUFFER.WKI1_chartime
  674.                 BUFFER.WKI1_charcount
  675.                 BUFFER.WKI1_keepconn
  676.                 BUFFER.WKI1_keepsearch
  677.                 BUFFER.WKI1_maxthreads
  678.                 BUFFER.WKI1_maxcmds
  679.                 BUFFER.WKI1_numworkbuf
  680.                 BUFFER.WKI1_sizworkbuf
  681.                 BUFFER.WKI1_maxwrkcache
  682.                 BUFFER.WKI1_sesstimeout
  683.                 BUFFER.WKI1_sizerror
  684.                 BUFFER.WKI1_numalerts
  685.                 BUFFER.WKI1_numservices
  686.                 BUFFER.WKI1_errlogsz
  687.                 BUFFER.WKI1_printbuftime
  688.                 BUFFER.WKI1_numcharbuf
  689.                 BUFFER.WKI1_sizcharbuf
  690.                 BUFFER.WKI1_logon_server
  691.                 BUFFER.WKI1_wrkheuristics
  692.                 BUFFER.WKI1_mailslots
  693.                 BUFFER.WKI1_logon_domain
  694.                 BUFFER.WKI1_oth_domains
  695.                 BUFFER.WKI1_numdgrambuf
  696.  
  697.  
  698.  
  699.                                                          NetWkstaGetInfo
  700. -------------------------------------------------------------------------
  701.  
  702.     Syntax    : ret = NetWkstaGetInfo( server, level, rexx-buffer,
  703.                                        dummy, dummy )
  704.  
  705.     Purpose   : query actual LAN server parameter
  706.  
  707.     Return    : NETAPI return code (0 = successful completion)
  708.  
  709.     Parameter : server:            s.o.
  710.                 level:             0, 1, 10
  711.                 rexx-buffer:       name of rexx variable containing
  712.                                    wksta data
  713.  
  714.     Variables : For Rexx-buffer = "BUFFER" and level = 0 or 1 the
  715.                 variables used were described in NetWkstaSetInfo.
  716.                 Additional level 10 is available.
  717.  
  718.                 - For Rexx-buffer = "BUFFER" and level = 10:
  719.  
  720.                 BUFFER.WKI10_computername
  721.                 BUFFER.WKI10_username
  722.                 BUFFER.WKI10_langroup
  723.                 BUFFER.WKI10_ver_major
  724.                 BUFFER.WKI10_ver_minor
  725.                 BUFFER.WKI10_logon_domain
  726.                 BUFFER.WKI10_oth_domains
  727.  
  728.  
  729.  
  730.                                                           NetWkstaSetUID2
  731. -------------------------------------------------------------------------
  732.  
  733.     Syntax    : ret = NetWkstaSetUID2( dummy, domain, username, password,
  734.                                        parms, ucond, level, rexx-buffer,
  735.                                        dummy, dummy )
  736.  
  737.     Purpose   : Logons/ Logoffs a user to/from the network and returns
  738.                 statistics
  739.  
  740.     Return    : NETAPI return code (0 = successful completion)
  741.  
  742.     Parameter : domain:            name of logon domain
  743.                 username:          name of user to log on (if "" a user
  744.                                    is logged off)
  745.                 password:          password of user. (if "" the ID has
  746.                                    no password)
  747.                                    This field is CASE SENSITIVE !!
  748.                                    For compatibility to LAN Server
  749.                                    interface use only UPPER CHARACTERS !
  750.                 parms:             In LAN Server environments it must be ""
  751.                 ucond:             specifies what action to take if another
  752.                                    user name is logged on to the requester.
  753.                                    Defined are four values:
  754.  
  755.                                    Value   Meaning
  756.                                    ___________________________________________
  757.                                    0       NetWkstaSetUID2 fails, and the
  758.                                            user's identification number (UID)
  759.                                            does not change.
  760.                                    1       Logs the current user name off,
  761.                                            disconnecting any connections to
  762.                                            redirected resources.
  763.                                    2       Cancels any connections and other
  764.                                            pending activities necessary.
  765.                                            Fails if any connection is used by
  766.                                            a process as the current drive.
  767.                                    3       Always succeeds and forces all
  768.                                            disconnections.
  769.                 level:             must be 1.
  770.                 rexx-buffer:       name of rexx variable containing user data
  771.  
  772.     Variables : For Rexx-buffer = "BUFFER" and level = 1:
  773.  
  774.                 BUFFER.USRLOG1_code
  775.                 BUFFER.USRLOG1_eff_name[UNLEN+1]
  776.                 BUFFER.USRLOG1_priv
  777.                 BUFFER.USRLOG1_auth_flags
  778.                 BUFFER.USRLOG1_num_logons
  779.                 BUFFER.USRLOG1_bad_pw_count
  780.                 BUFFER.USRLOG1_last_logon
  781.                 BUFFER.USRLOG1_last_logoff
  782.                 BUFFER.USRLOG1_logoff_time
  783.                 BUFFER.USRLOG1_kickoff_time
  784.                 BUFFER.USRLOG1_password_age
  785.                 BUFFER.USRLOG1_pw_can_change
  786.                 BUFFER.USRLOG1_pw_must_change
  787.                 BUFFER.USRLOG1_computer
  788.                 BUFFER.USRLOG1_domain
  789.                 BUFFER.USRLOG1_script_path
  790.  
  791.                 If username is "" (user logged off) the following variables
  792.                 were used:
  793.  
  794.                 BUFFER.USRLOGF1_code
  795.                 BUFFER.USRLOGF1_duration
  796.                 BUFFER.USRLOGF1_num_logons
  797.  
  798.  
  799. -------------------------------------------------------------------------
  800.                                                         4. DOMAIN SECTION
  801. -------------------------------------------------------------------------
  802.  
  803.                                                              NetGetDCName
  804. -------------------------------------------------------------------------
  805.  
  806.     Syntax    : ret = NetGetDCName( server, domain, DC-name, buffer )
  807.  
  808.     Purpose   : Returns the name of the domain controller.
  809.  
  810.     Return    : NETAPI return code (0 = successful completion)
  811.  
  812.     Parameter : server:            s.o.
  813.                 domain:            s.o.
  814.                 DC-name:           contains the name of the domain
  815.                                    controller after return.
  816.     Variables : NONE
  817.  
  818.  
  819.  
  820.                                                              NetLogonEnum
  821. -------------------------------------------------------------------------
  822.  
  823.     Syntax    : ret = NetLogonEnum( server, level, buffer, dummy,
  824.                                     eread, dummy )
  825.  
  826.     Purpose   : Supplies information about logged-on users
  827.  
  828.     Return    : NETAPI return code (0 = successful completion)
  829.  
  830.     Parameter : server:            s.o.
  831.                 level:             0, 2
  832.                 rexx-buffer:       name of rexx variable containing
  833.                                    logon data
  834.                 eread              Number of logged on users
  835.  
  836.     Variables : For level 0 these variables are used: (n=0..eread-1)
  837.                 BUFFER.n.usrlog0_eff_name
  838.  
  839.                 For level 2:
  840.                 BUFFER.n.usrlog2_eff_name
  841.                 BUFFER.n.usrlog2_computer
  842.                 BUFFER.n.usrlog2_fullname
  843.                 BUFFER.n.usrlog2_usrcomment
  844.                 BUFFER.n.usrlog2_logon_time
  845.  
  846.  
  847.  
  848. -------------------------------------------------------------------------
  849.                                                            5. USE SECTION
  850. -------------------------------------------------------------------------
  851.  
  852.  
  853.                                                                 NetUseAdd
  854. -------------------------------------------------------------------------
  855.  
  856.     Syntax    : ret = NetUseAdd( server, level, rexx-buffer, dummy )
  857.  
  858.     Purpose   : Establishes a connection between a local device (or NULL)
  859.                 and a remote resource.
  860.  
  861.     Return    : NETAPI return code (0 = successful completion)
  862.  
  863.     Parameter : server:            name of computer for which the connection
  864.                                    will be established. For server <> ""
  865.                                    you will need administrator priviledges,
  866.                                    for the local machine server must be ""
  867.                 level:             1
  868.                 rexx-buffer:       name of rexx variable containing use data
  869.  
  870.     Variables : If rexx-buffer contains "BUFFER", the following variables
  871.                 were used:
  872.  
  873.                 BUFFER.UI1_local
  874.                 BUFFER.UI1_remote
  875.                 BUFFER.UI1_password
  876.                 BUFFER.UI1_status
  877.                 BUFFER.UI1_asg_type
  878.                 BUFFER.UI1_refcount
  879.                 BUFFER.UI1_usecount
  880.  
  881.  
  882.  
  883.                                                                 NetUseDel
  884. -------------------------------------------------------------------------
  885.  
  886.     Syntax    : ret = NetUseDel( server, usename, ucond )
  887.  
  888.     Purpose   : Ends a connection.
  889.  
  890.     Return    : NETAPI return code (0 = successful completion)
  891.  
  892.     Parameter : servername:        points to an ASCIIZ string containing
  893.                                    the name of the remote server on which
  894.                                    the function is to execute. A null
  895.                                    pointer or string specifies a local
  896.                                    computer.
  897.                 devicename         points to an ASCIIZ string that contains
  898.                                    the following information:
  899.                                    - If the connection is a device name
  900.                                      connection, the name specified must
  901.                                      be the name of the local device.
  902.                                    - If the connection is a UNC connection
  903.                                      (either implicit or explicit), the
  904.                                      name must be the UNC name.
  905.  
  906.                 forceflag          is one of three values specifying three
  907.                                    types of disconnection. The following
  908.                                    options are available:
  909.  
  910.                                    Value  Meaning
  911.                                    ____________________________________________
  912.                                      0   Maintains the connection in a dormant
  913.                                          state, decrementing usecount.
  914.                                          A dormant session can quickly be
  915.                                          activated as soon as reconnection is
  916.                                          needed, improving system performance.
  917.                                      1   Connection is removed only if no file
  918.                                          directory, or drive is opened.
  919.                                          usecount is decremented for a local
  920.                                          device name connection and forced
  921.                                          to 0 for a UNC connection.
  922.                                      2   All files, directories, and drives
  923.                                          open  on the connection are forced
  924.                                          closed.
  925.  
  926.  
  927.  
  928.                                                                NetUseEnum
  929. -------------------------------------------------------------------------
  930.  
  931.     Syntax    : ret = NetUseEnum( server, level, rexx-buffer, dummy,
  932.                                   eread, dummy )
  933.  
  934.     Purpose   : Lists all current connections
  935.  
  936.     Return    : NETAPI return code (0 = successful completion)
  937.  
  938.     Parameter : server:            s.o.
  939.                 level:             0, 1
  940.                 rexx-buffer:       name of rexx variable containing use data
  941.                 eread:             rexx variable containing number of
  942.                                    connections found
  943.  
  944.     Variables : For rexx-buffer containing "BUFFER" the following variables
  945.                 were used: (n= 0..eread-1)
  946.  
  947.                 BUFFER.n.UI0_local[DEVLEN+1]
  948.                 BUFFER.n.UI0_pad_1
  949.                 BUFFER.n.UI0_remote
  950.  
  951.                 For level 1:
  952.  
  953.                 BUFFER.n.UI1_local[DEVLEN+1]
  954.                 BUFFER.n.UI1_pad_1
  955.                 BUFFER.n.UI1_remote
  956.                 BUFFER.n.UI1_password
  957.                 BUFFER.n.UI1_status
  958.                 BUFFER.n.UI1_asg_type
  959.                 BUFFER.n.UI1_refcount
  960.                 BUFFER.n.UI1_usecount
  961.  
  962.  
  963.  
  964.                                                             NetUseGetInfo
  965. -------------------------------------------------------------------------
  966.  
  967.     Syntax    : ret = NetUseGetInfo( server, usename, level, rexx-buffer,
  968.                                      dummy, dummy )
  969.  
  970.     Purpose   : Returns information about a connection.
  971.  
  972.     Return    : NETAPI return code (0 = successful completion)
  973.  
  974.     Parameter : server:            s.o.
  975.                 usename:           name of the connection
  976.                 level:             1
  977.                 rexx-buffer:       name of rexx variable containing
  978.                                    use data
  979.  
  980.     Variables : For rexx-buffer containing "BUFFER" the following variables
  981.                 were used:
  982.  
  983.                 BUFFER.UI1_local[DEVLEN+1]
  984.                 BUFFER.UI1_pad_1
  985.                 BUFFER.UI1_remote
  986.                 BUFFER.UI1_password
  987.                 BUFFER.UI1_status
  988.                 BUFFER.UI1_asg_type
  989.                 BUFFER.UI1_refcount
  990.                 BUFFER.UI1_usecount
  991.  
  992.  
  993. -------------------------------------------------------------------------
  994.                                                        6. MESSAGE SECTION
  995. -------------------------------------------------------------------------
  996.  
  997.                                                      NetMessageBufferSend
  998. -------------------------------------------------------------------------
  999.  
  1000.     Syntax    : ret = NetMessageBufferSend( server, msgname, buffer,
  1001.                                             dummy )
  1002.  
  1003.     Purpose   : Send a buffer to selected messengers
  1004.  
  1005.     Return    : NETAPI return code (0 = successful completion)
  1006.  
  1007.     Parameter : server:            where the message will be send
  1008.                 msgname:           receiver, for broadcast-messages enter "*"
  1009.                 buffer:            message to send
  1010.  
  1011.     Variables : NONE
  1012.  
  1013.  
  1014.  
  1015.                                                        NetMessageFileSend
  1016. -------------------------------------------------------------------------
  1017.  
  1018.     Syntax    : ret = NetMessageFileSend( server, msgname, filename )
  1019.  
  1020.     Purpose   : Send a buffer to selected messengers
  1021.  
  1022.     Return    : NETAPI return code (0 = successful completion)
  1023.  
  1024.     Parameter : server:            where the message will be send
  1025.                 msgname:           receiver, for broadcast-messages enter "*"
  1026.                 filename:          file containing the message
  1027.  
  1028.     Variables : NONE
  1029.  
  1030.  
  1031.  
  1032.                                                        NetMessageNameEnum
  1033. -------------------------------------------------------------------------
  1034.  
  1035.     Syntax    : ret = NetMessageNameEnum( server, level, rexx-buffer,
  1036.                                           dummy, eread, dummy )
  1037.  
  1038.     Purpose   : lists the names in the message name table
  1039.  
  1040.     Return    : NETAPI return code (0 = successful completion)
  1041.  
  1042.     Parameter : server:            s.o.
  1043.                 level:             0, 1
  1044.                 rexx-buffer:       name of rexx variable containing
  1045.                                    message data
  1046.                 eread:             number of entries
  1047.  
  1048.     Variables : if rexx-buffer contains "BUFFER" these variables
  1049.                 were used:
  1050.  
  1051.                 level = 0:
  1052.                 BUFFER.n.MSGI0_NAME
  1053.  
  1054.                 level = 1:
  1055.                 BUFFER.n.msgi1_name
  1056.                 BUFFER.n.msgi1_forward_flag
  1057.                 BUFFER.n.msgi1_forward
  1058.  
  1059.  
  1060.  
  1061.  
  1062.                                                         NetMessageNameAdd
  1063. -------------------------------------------------------------------------
  1064.  
  1065.     Syntax    : ret = NetMessageNameAdd( server, name, fwd_action )
  1066.  
  1067.     Purpose   : registers a name in the message name table
  1068.  
  1069.     Return    : NETAPI return code (0 = successful completion)
  1070.  
  1071.     Parameter : server:            s.o.
  1072.                 name:              name to register
  1073.                 fwd_action:        action to take if names is already
  1074.                                    forwarded
  1075.  
  1076.     Variables : NONE
  1077.  
  1078.  
  1079.  
  1080.                                                         NetMessageNameDel
  1081. -------------------------------------------------------------------------
  1082.  
  1083.     Syntax    : ret = NetMessageNameDel( server, name, fwd_action )
  1084.  
  1085.     Purpose   : de-registers a name in the message name table
  1086.  
  1087.     Return    : NETAPI return code (0 = successful completion)
  1088.  
  1089.     Parameter : server:            s.o.
  1090.                 name:              name to de-register
  1091.                 fwd_action:        specifies the action to take if the
  1092.                                    messages for name are being forwarded
  1093.                                    to another name. If fwd_action is
  1094.                                    non-zero, the forwarded name is deleted.
  1095.                                    A 0 value prevents the name from being
  1096.                                    deleted.
  1097.  
  1098.     Variables : NONE
  1099.  
  1100.  
  1101.  
  1102.                                                         NetMessageNameFwd
  1103. -------------------------------------------------------------------------
  1104.  
  1105.     Syntax    : ret = NetMessageNameFwd( server, name, fwd_name, del_for )
  1106.  
  1107.     Purpose   : modifies the message name table to forward messages to
  1108.                 another messaging name
  1109.  
  1110.     Return    : NETAPI return code (0 = successful completion)
  1111.  
  1112.     Parameter : server:            s.o.
  1113.                 name:              name in message name table
  1114.                 forwardname:       points to an ASCIIZ string specifying
  1115.                                    the name to receive name's forwarded
  1116.                                    messages.
  1117.                 delfor:            specifies the action to take if name
  1118.                                    forwards messages to another name. If
  1119.                                    non-zero, then any previous forwarded
  1120.                                    user name is deleted; if 0, it is not
  1121.                                    deleted and an error is returned.
  1122.     Variables : NONE
  1123.  
  1124.  
  1125.  
  1126.                                                     NetMessageNameGetInfo
  1127. -------------------------------------------------------------------------
  1128.  
  1129.     Syntax    : ret = NetMessageNameGetInfo( server, name, level, buffer,
  1130.                                              dummy, dummy )
  1131.  
  1132.     Purpose   : Get information about a registered name
  1133.  
  1134.     Return    : NETAPI return code (0 = successful completion)
  1135.  
  1136.     Parameter : server:            s.o.
  1137.                 name:              name to get information
  1138.                 level:             1
  1139.                 rexx-buffer:       name of rexx variable containing
  1140.                                    name data
  1141.  
  1142.     Variables : For rexx-buffer containing "BUFFER" these variables
  1143.                 are used:
  1144.  
  1145.                 BUFFER.msgi1_name
  1146.                 BUFFER.msgi1_forward_flag
  1147.                 BUFFER.msgi1_forward
  1148.  
  1149.  
  1150.  
  1151.                                                       NetMessageNameUnFwd
  1152. -------------------------------------------------------------------------
  1153.  
  1154.     Syntax    : ret = NetMessageNameUnFwd( server, name )
  1155.  
  1156.     Purpose   : Unforwards a message name
  1157.  
  1158.     Return    : NETAPI return code (0 = successful completion)
  1159.  
  1160.     Parameter : server:            s.o.
  1161.                 name:              name whose message forwarding is to
  1162.                                    be canceled
  1163.  
  1164.     Variables : NONE
  1165.  
  1166.  
  1167.  
  1168.                                                      NetMessageLogFileSet
  1169. -------------------------------------------------------------------------
  1170.  
  1171.     Syntax    : ret = NetMessageLogFileSet( server, filename, on )
  1172.  
  1173.     Purpose   : specifies a file to log messages received by registered
  1174.                 users and enables or disables logging.
  1175.  
  1176.     Return    : NETAPI return code (0 = successful completion)
  1177.  
  1178.     Parameter : server:            s.o.
  1179.                 filename:          specifies the path name of the device
  1180.                                    (LPTn or COMn) or file to which the
  1181.                                    messages are logged.
  1182.                                    If filename is "", no message file
  1183.                                    will be used; in this case, the value
  1184.                                    of on must be 0.
  1185.                 on:                specifies whether or not logging is
  1186.                                    enabled.
  1187.  
  1188.     Variables : NONE
  1189.  
  1190.  
  1191.  
  1192.                                                      NetMessageLogFileGet
  1193. -------------------------------------------------------------------------
  1194.  
  1195.     Syntax    : ret = NetMessageLogFileGet( server, filename, dummy, pon )
  1196.  
  1197.     Purpose   : specifies a file to log messages received by registered
  1198.                 users and enables or disables logging.
  1199.  
  1200.     Return    : NETAPI return code (0 = successful completion)
  1201.  
  1202.     Parameter : server:            s.o.
  1203.                 filename:          rexx-variable that will contain the
  1204.                                    name of the message file.
  1205.                 pon:               rexx-variable that will contain the
  1206.                                    status of message logging
  1207.     Variables : NONE
  1208.  
  1209.  
  1210. -------------------------------------------------------------------------
  1211.                                                         7. CONFIG SECTION
  1212. -------------------------------------------------------------------------
  1213.  
  1214.     The APIs NetConfigGet and NetConfigGetAll are replaced by their newer
  1215.     counterparts NetConfigGet2 and NetConfigGetAll2
  1216.  
  1217.  
  1218.  
  1219.                                                             NetConfigGet2
  1220. -------------------------------------------------------------------------
  1221.  
  1222.     Syntax    : ret = NetConfigGet2( server, dummy, component, parameter,
  1223.                                      rexx-buffer, dummy, dummy )
  1224.  
  1225.     Purpose   : retrieves a specified parameter value from the IBMLAN.INI
  1226.                 file of a local computer or a remote server.
  1227.  
  1228.     Return    : NETAPI return code (0 = successful completion)
  1229.  
  1230.     Parameter : server:            s.o.
  1231.                 component:         the name of the component to search.
  1232.                 parameter          the parameter whose value is to be
  1233.                                    returned.
  1234.                 rexx-buffer:       name of rexx variable which will
  1235.                                    contain the parameters value
  1236.  
  1237.     Variables : NONE
  1238.  
  1239.  
  1240.  
  1241.                                                          NetConfigGetAll2
  1242. -------------------------------------------------------------------------
  1243.  
  1244.     Syntax    : ret = NetConfigGet2( server, dummy, parameter,
  1245.                                      rexx-buffer, dummy, dummy, dummy )
  1246.  
  1247.     Purpose   : retrieves a all parameter value for a component from the
  1248.                 IBMLAN.INI file of a local computer or a remote server.
  1249.  
  1250.     Return    : NETAPI return code (0 = successful completion)
  1251.  
  1252.     Parameter : server:            s.o.
  1253.                 parameter:         the name of the component to search.
  1254.                 rexx-buffer:       name of rexx variable which will
  1255.                                    contain the parameters values
  1256.  
  1257.     Variables : If rexx-buffer contains "BUFFER", the following variables
  1258.                 are used:
  1259.                 BUFFER.0      number of parameters found in the component
  1260.                               section
  1261.                 BUFFER.n      (n=1..BUFFER.0) A formatted line from the
  1262.                               IBMLAN.INI like:
  1263.                                  RCVSERVICE=REQUESTER,MESSENGER,NETPOPUP
  1264.  
  1265.  
  1266.  
  1267. -------------------------------------------------------------------------
  1268.                                                     8. CONNECTION SECTION
  1269. -------------------------------------------------------------------------
  1270.  
  1271.                                                         NetConnectionEnum
  1272. -------------------------------------------------------------------------
  1273.  
  1274.     Syntax    : ret = NetConnectionEnum( server, qualifier, level, buffer,
  1275.                                          dummy, eread, dummy )
  1276.  
  1277.     Purpose   : gives a listing of connections made to a shared resource
  1278.                 of a server, or of all connections established from a
  1279.                 particular computer to a server.
  1280.  
  1281.  
  1282.     Return    : NETAPI return code (0 = successful completion)
  1283.  
  1284.     Parameter : server:            s.o.
  1285.                 qualifier:         specifies either the netname of the
  1286.                                    shared resource whose connections will
  1287.                                    be listed or the client name of the
  1288.                                    requester whose connections to the
  1289.                                    shared resource will be listed
  1290.                                    (qualifier cannot be a null pointer
  1291.                                    or string).
  1292.                 level:             1
  1293.                 rexx-buffer:       name of rexx variable containing
  1294.                                    connection data
  1295.                 eread:             rexx-variable containing number of
  1296.                                    entries found
  1297.  
  1298.     Variables : With n = 0..eread-1
  1299.  
  1300.                 BUFFER.n.coni1_id
  1301.                 BUFFER.n.coni1_type
  1302.                 BUFFER.n.coni1_num_opens
  1303.                 BUFFER.n.coni1_num_users
  1304.                 BUFFER.n.coni1_time
  1305.                 BUFFER.n.coni1_username
  1306.                 BUFFER.n.coni1_netname
  1307.  
  1308.  
  1309. -------------------------------------------------------------------------
  1310.                                                          9. ERROR SECTION
  1311. -------------------------------------------------------------------------
  1312.  
  1313.    These APIs are not supported yet:
  1314.     - NetErrorLogOpen
  1315.     - NetErrorLogRead
  1316.     - NetErrorLogWrite
  1317.  
  1318.                                                          NetErrorLogClear
  1319. -------------------------------------------------------------------------
  1320.  
  1321.     Syntax    : ret = NetErrorLogClear( server, backupfile, dummy )
  1322.  
  1323.     Purpose   : Clears (and optionally saves) the computers error log file
  1324.  
  1325.     Return    : NETAPI return code (0 = successful completion)
  1326.  
  1327.     Parameter : server:            s.o.
  1328.                 backupfile:        If not "", the error log is copied to
  1329.                                    this file, before it is cleared.
  1330.  
  1331.     Variables : NONE
  1332.  
  1333.  
  1334. -------------------------------------------------------------------------
  1335.                                                          10. FILE SECTION
  1336. -------------------------------------------------------------------------
  1337.  
  1338.     The following API were only held in the NETAPI libary for
  1339.     compatibility reasons are are not supported by REXXLAN.
  1340.       - NetFileClose           (replaced by NetFileClose2)
  1341.       - NetFileEnum            (replaced by NetFileEnum2)
  1342.       - NetFileGetInfo         (replaced by NetFileGetInfo2)
  1343.  
  1344.  
  1345.  
  1346.                                                              NetFileEnum2
  1347. -------------------------------------------------------------------------
  1348.  
  1349.     Syntax    : ret = NetFileEnum2( server, basepath, user, level, buffer,
  1350.                                     dummy, eread, dummy, dummy )
  1351.  
  1352.     Purpose   : supplies information about some or all open files on the
  1353.                 server.
  1354.                 The resume_key function, as described in the LAN
  1355.                 Application Programmers Reference, will not be passed
  1356.                 through the REXX API, the REXX function iterates the
  1357.                 NetFileEnum2 calls, until it retrieved all information.
  1358.  
  1359.     Return    : NETAPI return code (0 = successful completion)
  1360.  
  1361.     Parameter : server:            s.o.
  1362.                 basepath:          base path for enumeration. If not NULL,
  1363.                                    basepath serves as a qualifier to the
  1364.                                    enumeration.  The entries returned are
  1365.                                    limited to those whose name begins with
  1366.                                    the qualifier string.
  1367.                 username:          indicates the name of the user. If not
  1368.                                    NULL, username serves as a qualifier
  1369.                                    to the enumeration.
  1370.                                    The files returned are limited to those
  1371.                                    whose opener username matches the
  1372.                                    qualifier.
  1373.                 level:             2, 3
  1374.                 rexx-buffer:       name of rexx variable containing file
  1375.                                    data
  1376.                 eread:             contains number of entries found
  1377.  
  1378.     Variables : level = 2:         (n=0..eread-1)
  1379.                 BUFFER.n.fi2_id;
  1380.  
  1381.                 level = 3:
  1382.                 BUFFER.n.fi3_id
  1383.                 BUFFER.n.fi3_permissions
  1384.                 BUFFER.n.fi3_num_locks
  1385.                 BUFFER.n.fi3_pathname
  1386.                 BUFFER.n.fi3_username
  1387.  
  1388.  
  1389.  
  1390.                                                           NetFileGetInfo2
  1391. -------------------------------------------------------------------------
  1392.  
  1393.     Syntax    : ret = NetFileGetInfo2( server, file-ID, level, buffer,
  1394.                                        dummy, dummy )
  1395.  
  1396.     Purpose   : retrieves information about a particular opening of a
  1397.                 server resource.
  1398.  
  1399.     Return    : NETAPI return code (0 = successful completion)
  1400.  
  1401.     Parameter : server:            s.o.
  1402.                 file-ID:           identifier of open file.
  1403.                 level:             3
  1404.                 rexx-buffer:       name of rexx variable containing
  1405.                                    file data
  1406.  
  1407.     Variables :
  1408.                 BUFFER.fi3_id
  1409.                 BUFFER.fi3_permissions
  1410.                 BUFFER.fi3_num_locks
  1411.                 BUFFER.fi3_pathname
  1412.                 BUFFER.fi3_username
  1413.  
  1414.  
  1415.  
  1416.                                                             NetFileClose2
  1417. -------------------------------------------------------------------------
  1418.  
  1419.     Syntax    : ret = NetFileClose2( server, file-ID )
  1420.  
  1421.     Purpose   : forces a close to an open file
  1422.  
  1423.     Return    : NETAPI return code (0 = successful completion)
  1424.  
  1425.     Parameter : server:            s.o.
  1426.                 file-ID:           identifier of open file.
  1427.  
  1428.     Variables : NONE
  1429.  
  1430.  
  1431. -------------------------------------------------------------------------
  1432.                                                        11. SERVER SECTION
  1433. -------------------------------------------------------------------------
  1434.  
  1435.     The API NetServerEnum was replaced by NetServerEnum2 and is not
  1436.     supported.
  1437.  
  1438.                                                     NetServerAdminCommand
  1439. -------------------------------------------------------------------------
  1440.  
  1441.     Syntax    : ret = NetServerAdminCommand( server, command, result,
  1442.                                              dummy, dummy, dummy, dummy )
  1443.  
  1444.     Purpose   : executes a command on a server. The output is queued
  1445.                 in the active REXX Queue.
  1446.  
  1447.     Return    : NETAPI return code (0 = successful completion)
  1448.  
  1449.     Parameter : server:            s.o.
  1450.                 command:           contains the command to execute
  1451.                 rexx-buffer:       name of rexx variable containing the
  1452.                                    result code of the command
  1453.  
  1454.     Variables : NONE
  1455.  
  1456.     Comment:    After the NetServerAdminCommand, the data is in the
  1457.                 REXX queue
  1458.  
  1459.     Example:
  1460.                 /* REXX */
  1461.                 call rxfuncadd NetLoadFuncs, Rxlan30, NetLoadFuncs
  1462.                 CALL NetLoadFuncs
  1463.  
  1464.                 ret = NetServerAdminCommand( "\\SERVER", "DIR C:\",
  1465.                                              "RESULT", "", "", "", "" )
  1466.                 IF ret = 0 THEN DO
  1467.                    SAY "Result of DIR C:\ on Server \\SERVER: " || RESULT
  1468.                    DO QUEUED()
  1469.                       PULL line
  1470.                       SAY line
  1471.                       END
  1472.                    END
  1473.                 CALL NetDropFuncs
  1474.  
  1475.  
  1476.  
  1477.                                                         NetServerDiskEnum
  1478. -------------------------------------------------------------------------
  1479.  
  1480.     Syntax    : ret = NetServerDiskEnum( server, level, buffer, dummy,
  1481.                                          eread, dummy )
  1482.  
  1483.     Purpose   : retrieves a list of disk drives on a workstation.
  1484.  
  1485.     Return    : NETAPI return code (0 = successful completion)
  1486.  
  1487.     Parameter : server:            s.o.
  1488.                 level:             0
  1489.                 rexx-buffer:       name of rexx variable containing
  1490.                                    list of found drives
  1491.                 eread:             number of entries found
  1492.  
  1493.     Variables : Array of found drives (n=0..eread-1)
  1494.  
  1495.                 BUFFER.n
  1496.  
  1497.  
  1498.  
  1499.                                                            NetServerEnum2
  1500. -------------------------------------------------------------------------
  1501.  
  1502.     Syntax    : ret = NetServerEnum2( server, level, buffer, dummy,
  1503.                                       eread, dummy, servertype, domain )
  1504.  
  1505.     Purpose   : enumerates the set of all servers visible on the network.
  1506.                 The type of NetServerEnum2 matches the bit mask in the
  1507.                 field.
  1508.  
  1509.     Return    : NETAPI return code (0 = successful completion)
  1510.  
  1511.     Parameter : server:            s.o.(where the command will be executed)
  1512.                 level:             0, 1
  1513.                 rexx-buffer:       name of rexx variable containing
  1514.                                    server data
  1515.                 eread:             number of found servers
  1516.                 servertype:        specifies the types of servers to
  1517.                                    enumerate.
  1518.                                    This parameter is tested against the
  1519.                                    svx_type element of each entry. Entries
  1520.                                    that match at least one of the specified
  1521.                                    bits are included in the returned buffer
  1522.                                    and in the counts returned.
  1523.                                    svx_type, where x is 1, 2, or 3, and their
  1524.                                    values defined:
  1525.                                    Bit Mask        Type of Software
  1526.                                    _________________________________________
  1527.                                    0x00000001      Workstation
  1528.                                    0x00000002      Server
  1529.                                    0x00000004      SQL server
  1530.                                    0x00000008      Domain controller
  1531.                                    0x00000010      Backup domain controller
  1532.                                    0x00000020      Time server
  1533.                                    0x00000040      Apple** File Protocol
  1534.                                                    (AFP) service
  1535.                                    0x00000080      Novell** service
  1536.                                    0xFFFFFFFF      All types of servers
  1537.  
  1538.                 domain             points to the servers in this domain.
  1539.  
  1540.     Variables : level=0:           (n=0..eread-1)
  1541.                 BUFFER.n.sv0_name
  1542.  
  1543.                 level=1            (n=0..eread-1)
  1544.                 BUFFER.n.sv1_name[CNLEN + 1]
  1545.                 BUFFER.n.sv1_version_major
  1546.                 BUFFER.n.sv1_version_minor
  1547.                 BUFFER.n.sv1_type
  1548.                 BUFFER.n.sv1_comment
  1549.  
  1550.  
  1551.  
  1552.                                                          NetServerGetInfo
  1553. -------------------------------------------------------------------------
  1554.  
  1555.     Syntax    : ret = NetServerGetInfo( server, level, buffer, dummy,
  1556.                                         dummy )
  1557.  
  1558.     Purpose   : retrieves information about a particular server.
  1559.  
  1560.     Return    : NETAPI return code (0 = successful completion)
  1561.  
  1562.     Parameter : server:            s.o.
  1563.                 level:             1, 2, 3
  1564.                 rexx-buffer:       name of rexx variable containing
  1565.                                    server data
  1566.  
  1567.     Variables :
  1568.                 level=1
  1569.                 BUFFER.sv1_name
  1570.                 BUFFER.sv1_version_major
  1571.                 BUFFER.sv1_version_minor
  1572.                 BUFFER.sv1_type
  1573.                 BUFFER.sv1_comment
  1574.  
  1575.                 level = 2
  1576.                 BUFFER.SV2_name
  1577.                 BUFFER.SV2_version_major
  1578.                 BUFFER.SV2_version_minor
  1579.                 BUFFER.SV2_type
  1580.                 BUFFER.SV2_comment
  1581.                 BUFFER.SV2_ulist_mtime
  1582.                 BUFFER.SV2_glist_mtime
  1583.                 BUFFER.SV2_alist_mtime
  1584.                 BUFFER.SV2_users
  1585.                 BUFFER.SV2_disc
  1586.                 BUFFER.SV2_alerts
  1587.                 BUFFER.SV2_security
  1588.                 BUFFER.SV2_auditing
  1589.                 BUFFER.SV2_numadmin
  1590.                 BUFFER.SV2_lanmask
  1591.                 BUFFER.SV2_hidden
  1592.                 BUFFER.SV2_announce
  1593.                 BUFFER.SV2_anndelta
  1594.                 BUFFER.SV2_guestacct
  1595.                 BUFFER.SV2_pad1
  1596.                 BUFFER.SV2_userpath
  1597.                 BUFFER.SV2_chdevs
  1598.                 BUFFER.SV2_chdevq
  1599.                 BUFFER.SV2_chdevjobs
  1600.                 BUFFER.SV2_connections
  1601.                 BUFFER.SV2_shares
  1602.                 BUFFER.SV2_openfiles
  1603.                 BUFFER.SV2_sessopens
  1604.                 BUFFER.SV2_sessvcs
  1605.                 BUFFER.SV2_sessreqs
  1606.                 BUFFER.SV2_opensearch
  1607.                 BUFFER.SV2_activelocks
  1608.                 BUFFER.SV2_numreqbuf
  1609.                 BUFFER.SV2_sizreqbuf
  1610.                 BUFFER.SV2_numbigbuf
  1611.                 BUFFER.SV2_numfiletasks
  1612.                 BUFFER.SV2_alertsched
  1613.                 BUFFER.SV2_erroralert
  1614.                 BUFFER.SV2_logonalert
  1615.                 BUFFER.SV2_accessalert
  1616.                 BUFFER.SV2_diskalert
  1617.                 BUFFER.SV2_netioalert
  1618.                 BUFFER.SV2_maxauditsz
  1619.                 BUFFER.SV2_srvheuristics
  1620.  
  1621.                 level = 3
  1622.                 BUFFER.SV3_name
  1623.                 BUFFER.SV3_version_major
  1624.                 BUFFER.SV3_version_minor
  1625.                 BUFFER.SV3_type
  1626.                 BUFFER.SV3_comment
  1627.                 BUFFER.SV3_ulist_mtime
  1628.                 BUFFER.SV3_glist_mtime
  1629.                 BUFFER.SV3_alist_mtime
  1630.                 BUFFER.SV3_users
  1631.                 BUFFER.SV3_disc
  1632.                 BUFFER.SV3_alerts
  1633.                 BUFFER.SV3_security
  1634.                 BUFFER.SV3_auditing
  1635.                 BUFFER.SV3_numadmin
  1636.                 BUFFER.SV3_lanmask
  1637.                 BUFFER.SV3_hidden
  1638.                 BUFFER.SV3_announce
  1639.                 BUFFER.SV3_anndelta
  1640.                 BUFFER.SV3_guestacct
  1641.                 BUFFER.SV3_pad1
  1642.                 BUFFER.SV3_userpath
  1643.                 BUFFER.SV3_chdevs
  1644.                 BUFFER.SV3_chdevq
  1645.                 BUFFER.SV3_chdevjobs
  1646.                 BUFFER.SV3_connections
  1647.                 BUFFER.SV3_shares
  1648.                 BUFFER.SV3_openfiles
  1649.                 BUFFER.SV3_sessopens
  1650.                 BUFFER.SV3_sessvcs
  1651.                 BUFFER.SV3_sessreqs
  1652.                 BUFFER.SV3_opensearch
  1653.                 BUFFER.SV3_activelocks
  1654.                 BUFFER.SV3_numreqbuf
  1655.                 BUFFER.SV3_sizreqbuf
  1656.                 BUFFER.SV3_numbigbuf
  1657.                 BUFFER.SV3_numfiletasks
  1658.                 BUFFER.SV3_alertsched
  1659.                 BUFFER.SV3_erroralert
  1660.                 BUFFER.SV3_logonalert
  1661.                 BUFFER.SV3_accessalert
  1662.                 BUFFER.SV3_diskalert
  1663.                 BUFFER.SV3_netioalert
  1664.                 BUFFER.SV3_maxauditsz
  1665.                 BUFFER.SV3_srvheuristics
  1666.                 BUFFER.SV3_auditedevents
  1667.                 BUFFER.SV3_autoprofile
  1668.                 BUFFER.SV3_autopath
  1669.     
  1670.  
  1671.  
  1672.                                                          NetServerSetInfo
  1673. -------------------------------------------------------------------------
  1674.  
  1675.     Syntax    : ret = NetServerSetInfo( server, level, buffer, dummy,
  1676.                                         parmnum )
  1677.  
  1678.     Purpose   : changes information about a particular server.
  1679.  
  1680.     Return    : NETAPI return code (0 = successful completion)
  1681.  
  1682.     Parameter : server:            s.o.
  1683.                 level:             1, 2, 3
  1684.                 rexx-buffer:       name of rexx variable containing
  1685.                                    server data
  1686.                 paramnum:          determines whether buf contains a
  1687.                                    complete server_info data array or a
  1688.                                    single data component.  If parmnum is 0,
  1689.                                    buf must contain a server_info_1,
  1690.                                    server_info_2, or server_info_3 data
  1691.                                    structure.
  1692.                                    Otherwise, parmnum must specify the
  1693.                                    ordinal position value for one of the
  1694.                                    following data structure components:
  1695.                                     Value    Component
  1696.                                    ______________________________________
  1697.                                     5      svx_comment or sv1_comment
  1698.                                    10      svx_disc
  1699.                                    11      svx_alerts
  1700.                                    16      svx_hidden
  1701.                                    17      svx_announce
  1702.                                    18      svx_anndelta
  1703.                                    37      svx_alertsched
  1704.                                    38      svx_erroralert
  1705.                                    39      svx_logonalert
  1706.                                    40      svx_accessalert
  1707.                                    41      svx_diskalert
  1708.                                    42      svx_netioalert
  1709.                                    43      svx_maxauditsz
  1710.                                    where x is equal to either 2 or 3.
  1711.  
  1712.     Variables : For a list of used variables, please view the
  1713.                 NetServerGetInfo  API description above.
  1714.     
  1715.  
  1716. -------------------------------------------------------------------------
  1717.                                                       12. SESSION SECTION
  1718. -------------------------------------------------------------------------
  1719.  
  1720.     The following API were only held in the NETAPI libary for
  1721.     compatibility reasons are are not supported by REXXLAN.
  1722.       - NetFileClose           (replaced by NetFileClose2)
  1723.       - NetFileEnum            (replaced by NetFileEnum2)
  1724.       - NetFileGetInfo         (replaced by NetFileGetInfo2)
  1725.  
  1726.  
  1727.  
  1728.                                                            NetSessionEnum
  1729. -------------------------------------------------------------------------
  1730.  
  1731.     Syntax    : ret = NetSessionEnum( server, level, buffer, dummy,
  1732.                                       eread, dummy )
  1733.  
  1734.     Purpose   : supplies information about all sessions on the server.
  1735.  
  1736.     Return    : NETAPI return code (0 = successful completion)
  1737.  
  1738.     Parameter : server:            s.o.
  1739.                 level:             0, 1, 2, 10
  1740.                 rexx-buffer:       name of rexx variable containing
  1741.                                    session data
  1742.                 eread:             contains number of entries found
  1743.  
  1744.     Variables : level=0            (n=0..eread-1)
  1745.                 BUFFER.n.SESI0_cname
  1746.   
  1747.                 level=1            (n=0..eread-1)
  1748.                 BUFFER.n.SESI1_cname
  1749.                 BUFFER.n.SESI1_username
  1750.                 BUFFER.n.SESI1_num_cons
  1751.                 BUFFER.n.SESI1_num_opens
  1752.                 BUFFER.n.SESI1_num_users
  1753.                 BUFFER.n.SESI1_sess_time
  1754.                 BUFFER.n.SESI1_idle_time
  1755.                 BUFFER.n.SESI1_user_flags
  1756.  
  1757.                 level=2            (n=0..eread-1)
  1758.                 BUFFER.n.SESI2_cname
  1759.                 BUFFER.n.SESI2_username
  1760.                 BUFFER.n.SESI2_num_conns
  1761.                 BUFFER.n.SESI2_num_opens
  1762.                 BUFFER.n.SESI2_num_users
  1763.                 BUFFER.n.SESI2_sess_time
  1764.                 BUFFER.n.SESI2_idle_time
  1765.                 BUFFER.n.SESI2_user_flags
  1766.                 BUFFER.n.SESI2_cltype_name
  1767.  
  1768.                 level=10           (n=0..eread-1)
  1769.                 BUFFER.n.SESI10_cname
  1770.                 BUFFER.n.SESI10_username
  1771.                 BUFFER.n.SESI10_sess_time
  1772.                 BUFFER.n.SESI10_idle_time
  1773.  
  1774.  
  1775.  
  1776.                                                         NetSessionGetInfo
  1777. -------------------------------------------------------------------------
  1778.  
  1779.     Syntax    : ret = NetSessionGetInfo( server, client, level, buffer,
  1780.                                          dummy, dummy )
  1781.  
  1782.     Purpose   : retrieves information about a particular session on a server
  1783.  
  1784.     Return    : NETAPI return code (0 = successful completion)
  1785.  
  1786.     Parameter : server:            s.o.
  1787.                 client:            workstation name whose session is to
  1788.                                    be monitored
  1789.                 level:             0, 1, 2, 10
  1790.                 rexx-buffer:       name of rexx variable containing
  1791.                                    session data
  1792.  
  1793.     Variables : level=0
  1794.                 BUFFER.SESI0_cname
  1795.   
  1796.                 level=1
  1797.                 BUFFER.SESI1_cname
  1798.                 BUFFER.SESI1_username
  1799.                 BUFFER.SESI1_num_cons
  1800.                 BUFFER.SESI1_num_opens
  1801.                 BUFFER.SESI1_num_users
  1802.                 BUFFER.SESI1_sess_time
  1803.                 BUFFER.SESI1_idle_time
  1804.                 BUFFER.SESI1_user_flags
  1805.  
  1806.                 level=2
  1807.                 BUFFER.SESI2_cname
  1808.                 BUFFER.SESI2_username
  1809.                 BUFFER.SESI2_num_conns
  1810.                 BUFFER.SESI2_num_opens
  1811.                 BUFFER.SESI2_num_users
  1812.                 BUFFER.SESI2_sess_time
  1813.                 BUFFER.SESI2_idle_time
  1814.                 BUFFER.SESI2_user_flags
  1815.                 BUFFER.SESI2_cltype_name
  1816.  
  1817.                 level=10
  1818.                 BUFFER.SESI10_cname
  1819.                 BUFFER.SESI10_username
  1820.                 BUFFER.SESI10_sess_time
  1821.                 BUFFER.SESI10_idle_time
  1822.  
  1823.  
  1824.  
  1825.                                                             NetSessionDel
  1826. -------------------------------------------------------------------------
  1827.  
  1828.     Syntax    : ret = NetSessionDel( server, client-name, dummy )
  1829.  
  1830.     Purpose   : forces a close to a session
  1831.  
  1832.     Return    : NETAPI return code (0 = successful completion)
  1833.  
  1834.     Parameter : server:            s.o.
  1835.                 client-name:       name of client whose session is to
  1836.                                    be closed
  1837.  
  1838.     Variables : NONE
  1839.  
  1840.  
  1841. -------------------------------------------------------------------------
  1842.                                                         13. SHARE SECTION
  1843. -------------------------------------------------------------------------
  1844.  
  1845.                                                               NetShareAdd
  1846. -------------------------------------------------------------------------
  1847.     Syntax    : ret = NetShareAdd( server, level, rexx-buffer, dummy )
  1848.  
  1849.     Purpose   : Adds a shared resource on a server
  1850.  
  1851.     Return    : NETAPI return code (0 = successful completion)
  1852.  
  1853.     Parameter : server      - UNC servername like \\SERVER1
  1854.                 level         must be 2
  1855.                 rexx-buffer - name of  REXX variable containing the
  1856.                               share info data
  1857.  
  1858.     Variables :
  1859.                 The following variables must be set:
  1860.                 BUFFER.SHI2_netname
  1861.                 BUFFER.SHI2_type
  1862.                 BUFFER.SHI2_remark
  1863.                 BUFFER.SHI2_permissions
  1864.                 BUFFER.SHI2_max_uses
  1865.                 BUFFER.SHI2_current_uses
  1866.                 BUFFER.SHI2_path
  1867.                 BUFFER.SHI2_passwd
  1868.  
  1869.  
  1870.  
  1871.                                                           NetShareGetInfo
  1872. -------------------------------------------------------------------------
  1873.     Syntax    : ret = NetShareGetInfo( server, netname, level,
  1874.                                        rexx-buffer, dummy, dummy )
  1875.  
  1876.     Purpose   : Get information a shared resource on a server
  1877.  
  1878.     Return    : NETAPI return code (0 = successful completion)
  1879.  
  1880.     Parameter : server:       UNC servername like \\SERVER1
  1881.                 netname:      Alias for a resource
  1882.                 level         0, 1, 2
  1883.                 rexx-buffer   name of  REXX variable containing the
  1884.                               share info datas
  1885.  
  1886.     Variables :
  1887.                 level = 0:
  1888.                 BUFFER.SHI0_netname
  1889.  
  1890.                 level = 1:
  1891.                 BUFFER.SHI1_netname
  1892.                 BUFFER.SHI1_type
  1893.                 BUFFER.SHI1_remark
  1894.  
  1895.                 level = 2:
  1896.                 BUFFER.SHI2_netname
  1897.                 BUFFER.SHI2_type
  1898.                 BUFFER.SHI2_remark
  1899.                 BUFFER.SHI2_permissions
  1900.                 BUFFER.SHI2_max_uses
  1901.                 BUFFER.SHI2_current_uses
  1902.                 BUFFER.SHI2_path
  1903.                 BUFFER.SHI2_passwd
  1904.  
  1905.  
  1906.  
  1907.  
  1908.                                                           NetShareSetInfo
  1909. -------------------------------------------------------------------------
  1910.     Syntax    : ret = NetShareSetInfo( server, netname, level,
  1911.                                        rexx-buffer, dummy, parmnum )
  1912.  
  1913.     Purpose   : Set information a shared resource on a server
  1914.  
  1915.     Return    : NETAPI return code (0 = successful completion)
  1916.  
  1917.     Parameter : server:       UNC servername like \\SERVER1
  1918.                 netname:      Alias for a resource
  1919.                 level         1, 2
  1920.                 rexx-buffer   name of  REXX variable containing the
  1921.                               share info datas
  1922.                 parmnum:      specifies whether a specific component of
  1923.                               the share_info or the entire data structure
  1924.                               is being set.  If parmnum is 0, then buf
  1925.                               must contain a complete share_info data array.
  1926.                               Otherwise, parmnum must pass the ordinal
  1927.                               position value for one of the following
  1928.                               share_info_2 data structure  components:
  1929.  
  1930.                               Value       Component
  1931.                               _________________________________________
  1932.                                  4        shi1_remark or shi2_remark
  1933.                                  6        shi2_max_uses
  1934.  
  1935.     Variables :
  1936.                 Refer to NetShareGetInfo to get details of used variables.
  1937.  
  1938.  
  1939.  
  1940.  
  1941.                                                             NetShareCheck
  1942. -------------------------------------------------------------------------
  1943.  
  1944.     Syntax    : ret = NetAccessCheck( server, device, type )
  1945.  
  1946.     Purpose   : queries whether a server is sharing a device.
  1947.  
  1948.     Return    : NETAPI return code (0 = successful completion)
  1949.  
  1950.     Parameter : server:       contains the name of the remote server on
  1951.                               which the function is to execute
  1952.                 device:       contains the name of the device to be
  1953.                               checked.
  1954.                 type:         indicates the type of shared device:
  1955.                               Value        Share Type
  1956.                               _____________________________________________
  1957.                                 0          Disk drive
  1958.                                 1          Spooler queue
  1959.                                 2          Serial device
  1960.                                 3          Interprocess communication (IPC)
  1961.  
  1962.     Variables : NONE
  1963.  
  1964.  
  1965.                                                              NetShareEnum
  1966. -------------------------------------------------------------------------
  1967.  
  1968.     Syntax    : ret = NetShareEnum( server, level, buffer, dummy, eread,
  1969.                                     dummy )
  1970.  
  1971.     Purpose   : lists shared resources
  1972.  
  1973.     Return    : NETAPI return code (0 = successful completion)
  1974.  
  1975.     Parameter : server:       name of server, e.g. \\SERVER1
  1976.                 level:        0, 1, 2
  1977.                 Rexx-buffer:  name of Rexx variable, containing the found
  1978.                               resources
  1979.                 eread:        Rexx variable containing the number of
  1980.                               resources found
  1981.  
  1982.     Variables :
  1983.                 level = 0:    (n=0..eread-1)
  1984.                 BUFFER.n.SHI0_netname
  1985.  
  1986.                 level = 1:    (n=0..eread-1)
  1987.                 BUFFER.n.SHI1_netname
  1988.                 BUFFER.n.SHI1_type
  1989.                 BUFFER.n.SHI1_remark
  1990.  
  1991.                 level = 2:    (n=0..eread-1)
  1992.                 BUFFER.n.SHI2_netname
  1993.                 BUFFER.n.SHI2_type
  1994.                 BUFFER.n.SHI2_remark
  1995.                 BUFFER.n.SHI2_permissions
  1996.                 BUFFER.n.SHI2_max_uses
  1997.                 BUFFER.n.SHI2_current_uses
  1998.                 BUFFER.n.SHI2_path
  1999.                 BUFFER.n.SHI2_passwd
  2000.  
  2001.  
  2002.  
  2003.  
  2004.                                                               NetShareDel
  2005. -------------------------------------------------------------------------
  2006.  
  2007.     Syntax    : ret = NetShareDel( server, netname, dummy )
  2008.  
  2009.     Purpose   : Stops sharing a resource
  2010.  
  2011.     Return    : NETAPI return code (0 = successful completion)
  2012.  
  2013.     Parameter : server :   name of server (e.g. "\\SERVER1")
  2014.                 netname:   name of the shared resource
  2015.  
  2016.     Variables : NONE
  2017.  
  2018.  
  2019. -------------------------------------------------------------------------
  2020.                                                    14. STATISTICS SECTION
  2021. -------------------------------------------------------------------------
  2022.  
  2023.      The NetStatisticsGet and NetStatisticsClear are replaced by
  2024.      NetStatisticsGet2 and are now obsolete.
  2025.  
  2026.  
  2027.  
  2028.                                                         NetStatisticsGet2
  2029. -------------------------------------------------------------------------
  2030.  
  2031.     Syntax    : ret = NetStatisticsGet2( server, service, dummy, dummy,
  2032.                                          option, buffer, dummy, dummy )
  2033.  
  2034.     Purpose   : retrieves and optionally clears operating statistics for
  2035.                 a service.
  2036.  
  2037.     Return    : NETAPI return code (0 = successful completion)
  2038.  
  2039.     Parameter : server:            s.o.
  2040.                 servicename:       service name for which to get the
  2041.                                    statistics.
  2042.                                    Only SERVER and REQUESTER are allowed
  2043.                                    for the servicename.  Other names will
  2044.                                    produce the ERROR_NOT_SUPPORTED error
  2045.                                    code.
  2046.                 level              must be 0
  2047.                 options:           The options parameter is bitmapped
  2048.                                    as follows:
  2049.                                    Bit    Mask   Meaning
  2050.                                    ______________________________________
  2051.                                    0      0x1    Clear statistics after
  2052.                                                  retrieval.
  2053.                                    1-31          Must be 0.
  2054.    
  2055.                 rexx-buffer:       name of rexx variable containing
  2056.                                    service data
  2057.  
  2058.     Variables : If service = "REQUESTER"
  2059.                 BUFFER.STw0_start
  2060.                 BUFFER.STw0_numNCB_r
  2061.                 BUFFER.STw0_numNCB_s
  2062.                 BUFFER.STw0_numNCB_a
  2063.                 BUFFER.STw0_fiNCB_r
  2064.                 BUFFER.STw0_fiNCB_s
  2065.                 BUFFER.STw0_fiNCB_a
  2066.                 BUFFER.STw0_fcNCB_r
  2067.                 BUFFER.STw0_fcNCB_s
  2068.                 BUFFER.STw0_fcNCB_a
  2069.                 BUFFER.STw0_sesstart
  2070.                 BUFFER.STw0_sessfailcon
  2071.                 BUFFER.STw0_sessbroke
  2072.                 BUFFER.STw0_uses
  2073.                 BUFFER.STw0_usefail
  2074.                 BUFFER.STw0_autorec
  2075.                 BUFFER.STw0_bytessent_r_high
  2076.                 BUFFER.STw0_bytessent_r_low
  2077.                 BUFFER.STw0_bytesrcvd_r_high
  2078.                 BUFFER.STw0_bytesrcvd_r_low
  2079.                 BUFFER.STw0_bytessent_s_high
  2080.                 BUFFER.STw0_bytessent_s_low
  2081.                 BUFFER.STw0_bytesrcvd_s_high
  2082.                 BUFFER.STw0_bytesrcvd_s_low
  2083.                 BUFFER.STw0_bytessent_a_high
  2084.                 BUFFER.STw0_bytessent_a_low
  2085.                 BUFFER.STw0_bytesrcvd_a_high
  2086.                 BUFFER.STw0_bytesrcvd_a_low
  2087.                 BUFFER.STw0_reqbufneed
  2088.                 BUFFER.STw0_bigbufneed
  2089.  
  2090.                 If service = "SERVER"
  2091.                 BUFFER.STs0_start
  2092.                 BUFFER.STs0_fopens
  2093.                 BUFFER.STs0_devopens
  2094.                 BUFFER.STs0_jobsqueued
  2095.                 BUFFER.STs0_sopens
  2096.                 BUFFER.STs0_stimedout
  2097.                 BUFFER.STs0_serrorout
  2098.                 BUFFER.STs0_pwerrors
  2099.                 BUFFER.STs0_permerrors
  2100.                 BUFFER.STs0_syserrors
  2101.                 BUFFER.STs0_bytessent_high
  2102.                 BUFFER.STs0_bytessent_low
  2103.                 BUFFER.STs0_bytesrcvd_high
  2104.                 BUFFER.STs0_bytesrcvd_low
  2105.                 BUFFER.STs0_avresponse
  2106.                 BUFFER.STs0_reqbufneed
  2107.                 BUFFER.STs0_bigbufneed
  2108.  
  2109. -------------------------------------------------------------------------
  2110.                                                         15. GROUP SECTION
  2111. -------------------------------------------------------------------------
  2112.  
  2113.                                                               NetGroupAdd
  2114. -------------------------------------------------------------------------
  2115.  
  2116.     Syntax    : ret = NetGroupAdd( server, level, buffer, dummy )
  2117.  
  2118.     Purpose   : creates a new group account in the UAS database.
  2119.  
  2120.     Return    : NETAPI return code (0 = successful completion)
  2121.  
  2122.     Parameter : server:            s.o.
  2123.                 level:             0, 1
  2124.                 rexx-buffer:       name of rexx variable containing
  2125.                                    group data
  2126.  
  2127.     Variables : level = 0
  2128.                 BUFFER.grpi0_name
  2129.  
  2130.                 level = 1
  2131.                 BUFFER.grpi1_name
  2132.                 BUFFER.grpi1_comment
  2133.  
  2134.  
  2135.  
  2136.                                                              NetGroupEnum
  2137. -------------------------------------------------------------------------
  2138.  
  2139.     Syntax    : ret = NetGroupEnum( server, level, buffer, dummy,
  2140.                                     eread, dummy )
  2141.  
  2142.     Purpose   : Retrieves all group accounts in the UAS database
  2143.  
  2144.     Return    : NETAPI return code (0 = successful completion)
  2145.  
  2146.     Parameter : server:            s.o.
  2147.                 level:             0, 1
  2148.                 rexx-buffer:       name of rexx variable containing
  2149.                                    group data
  2150.                 eread:             number of entries found
  2151.  
  2152.     Variables : level = 0          (n=0..eread-1)
  2153.                 BUFFER.n.grpi0_name
  2154.  
  2155.                 level = 1          (n=0..eread-1)
  2156.                 BUFFER.n.grpi1_name
  2157.                 BUFFER.n.grpi1_comment
  2158.  
  2159.  
  2160.  
  2161.                                                               NetGroupDel
  2162. -------------------------------------------------------------------------
  2163.  
  2164.     Syntax    : ret = NetGroupDel( server, group )
  2165.  
  2166.     Purpose   : removes a group account in the UAS database.
  2167.  
  2168.     Return    : NETAPI return code (0 = successful completion)
  2169.  
  2170.     Parameter : server:            s.o.
  2171.                 group:             name of group to remove
  2172.  
  2173.     Variables : NONE
  2174.  
  2175.  
  2176.  
  2177.                                                           NetGroupAddUser
  2178. -------------------------------------------------------------------------
  2179.  
  2180.     Syntax    : ret = NetGroupAddUser( server, group, user )
  2181.  
  2182.     Purpose   : Adds a user-ID to a group account in the UAS database.
  2183.  
  2184.     Return    : NETAPI return code (0 = successful completion)
  2185.  
  2186.     Parameter : server:            s.o.
  2187.                 group:             name of group
  2188.                 user:              name of user to add to group
  2189.  
  2190.     Variables : NONE
  2191.  
  2192.  
  2193.  
  2194.                                                           NetGroupDelUser
  2195. -------------------------------------------------------------------------
  2196.  
  2197.     Syntax    : ret = NetGroupDelUser( server, group, user )
  2198.  
  2199.     Purpose   : Removes a user-ID from a group account in the UAS database.
  2200.  
  2201.     Return    : NETAPI return code (0 = successful completion)
  2202.  
  2203.     Parameter : server:            s.o.
  2204.                 group:             name of group
  2205.                 user:              name of user to remove from group
  2206.  
  2207.     Variables : NONE
  2208.  
  2209.  
  2210.  
  2211.                                                           NetGroupGetInfo
  2212. -------------------------------------------------------------------------
  2213.  
  2214.     Syntax    : ret = NetGroupGetInfo( server, group, level, buffer,
  2215.                                        dummy, dummy )
  2216.  
  2217.     Purpose   : queries informmation about a group account in the UAS
  2218.                 database.
  2219.  
  2220.     Return    : NETAPI return code (0 = successful completion)
  2221.  
  2222.     Parameter : server:            s.o.
  2223.                 group:             group to get information
  2224.                 level:             1
  2225.                 rexx-buffer:       name of rexx variable containing
  2226.                                    group data
  2227.  
  2228.     Variables : level = 1
  2229.                 BUFFER.grpi1_name
  2230.                 BUFFER.grpi1_comment
  2231.  
  2232.  
  2233.  
  2234.                                                           NetGroupSetInfo
  2235. -------------------------------------------------------------------------
  2236.  
  2237.     Syntax    : ret = NetGroupSetInfo( server, group, level, buffer,
  2238.                                        dummy, dummy )
  2239.  
  2240.     Purpose   : changes informmation about a group account in the
  2241.                 UAS database.
  2242.  
  2243.     Return    : NETAPI return code (0 = successful completion)
  2244.  
  2245.     Parameter : server:            s.o.
  2246.                 group:             group to get information
  2247.                 level:             1
  2248.                 rexx-buffer:       name of rexx variable containing group
  2249.                                    data
  2250.  
  2251.     Variables : level = 1
  2252.                 BUFFER.grpi1_name
  2253.                 BUFFER.grpi1_comment
  2254.  
  2255.  
  2256.  
  2257.                                                          NetGroupGetUsers
  2258. -------------------------------------------------------------------------
  2259.  
  2260.     Syntax    : ret = NetGroupGetUsers( server, group, level, buffer,
  2261.                                         dummy, eread, dummy )
  2262.  
  2263.     Purpose   : gets a list of all users of a group
  2264.  
  2265.     Return    : NETAPI return code (0 = successful completion)
  2266.  
  2267.     Parameter : server:            s.o.
  2268.                 group              name of group to get user list
  2269.                 level:             0
  2270.                 rexx-buffer:       name of rexx variable containing user
  2271.                                    list
  2272.                 eread:             number of entries found
  2273.  
  2274.     Variables : level = 0          (n=0..eread-1)
  2275.                 BUFFER.n.grui0_name
  2276.  
  2277.  
  2278.  
  2279.                                                          NetGroupSetUsers
  2280. -------------------------------------------------------------------------
  2281.  
  2282.     Syntax    : ret = NetGroupSetUsers( server, group, level, buffer,
  2283.                                         dummy, entries )
  2284.  
  2285.     Purpose   : joins a list of users for a group
  2286.  
  2287.     Return    : NETAPI return code (0 = successful completion)
  2288.  
  2289.     Parameter : server:            s.o.
  2290.                 group              name of group to set user list
  2291.                 level:             0
  2292.                 rexx-buffer:       name of rexx variable containing user
  2293.                                    list
  2294.                 entries:           number of entries to set
  2295.  
  2296.     Variables : level = 0          (n=0..eread-1)
  2297.                 BUFFER.n.grui0_name
  2298.  
  2299. -------------------------------------------------------------------------
  2300.                                                        16.  USER SECTION
  2301. -------------------------------------------------------------------------
  2302.  
  2303.  
  2304.                                                               NetUserAdd
  2305. -------------------------------------------------------------------------
  2306.  
  2307.     Syntax    : ret = NetUserAdd( server, level, buffer, dummy )
  2308.  
  2309.     Purpose   : creates a new user account in the UAS database.
  2310.  
  2311.     Return    : NETAPI return code (0 = successful completion)
  2312.  
  2313.     Parameter : server:            s.o.
  2314.                 level:             1, 2
  2315.                 rexx-buffer:       name of rexx variable containing
  2316.                                    user data
  2317.  
  2318.     Variables : level = 1
  2319.                 BUFFER.USRI1_name
  2320.                 BUFFER.USRI1_pad_1
  2321.                 BUFFER.USRI1_password
  2322.                 BUFFER.USRI1_password_age
  2323.                 BUFFER.USRI1_priv
  2324.                 BUFFER.USRI1_home_dir
  2325.                 BUFFER.USRI1_comment
  2326.                 BUFFER.USRI1_flags
  2327.                 BUFFER.USRI1_script_path
  2328.  
  2329.                 level = 2
  2330.                 BUFFER.USRI2_name
  2331.                 BUFFER.USRI2_password
  2332.                 BUFFER.USRI2_password_age
  2333.                 BUFFER.USRI2_priv
  2334.                 BUFFER.USRI2_home_dir
  2335.                 BUFFER.USRI2_comment
  2336.                 BUFFER.USRI2_flags
  2337.                 BUFFER.USRI2_script_path
  2338.                 BUFFER.USRI2_auth_flags
  2339.                 BUFFER.USRI2_full_name
  2340.                 BUFFER.USRI2_usr_comment
  2341.                 BUFFER.USRI2_parms
  2342.                 BUFFER.USRI2_workstations
  2343.                 BUFFER.USRI2_last_logon
  2344.                 BUFFER.USRI2_last_logoff
  2345.                 BUFFER.USRI2_acct_expires
  2346.                 BUFFER.USRI2_max_storage
  2347.                 BUFFER.USRI2_units_per_week
  2348.                 BUFFER.USRI2_logon_hours
  2349.                 BUFFER.USRI2_bad_pw_count
  2350.                 BUFFER.USRI2_num_logons
  2351.                 BUFFER.USRI2_logon_server
  2352.                 BUFFER.USRI2_country_code
  2353.                 BUFFER.USRI2_code_page
  2354.  
  2355.  
  2356.  
  2357.                                                              NetUserEnum
  2358. -------------------------------------------------------------------------
  2359.  
  2360.     Syntax    : ret = NetUserEnum( server, level, buffer, dummy, eread,
  2361.                                    dummy )
  2362.  
  2363.     Purpose   : Retrieves all user accounts in the UAS database
  2364.  
  2365.     Return    : NETAPI return code (0 = successful completion)
  2366.  
  2367.     Parameter : server:            s.o.
  2368.                 level:             0, 1, 2, 10
  2369.                 rexx-buffer:       name of rexx variable containing user
  2370.                                    data
  2371.                 eread:             number of entries found
  2372.  
  2373.     Variables : level = 0          (n=0..eread-1)
  2374.                 BUFFER.n.usri0_name
  2375.  
  2376.                 level = 1          (n=0..eread-1)
  2377.                 BUFFER.n.USRI1_name
  2378.                 BUFFER.n.USRI1_pad_1
  2379.                 BUFFER.n.USRI1_password
  2380.                 BUFFER.n.USRI1_password_age
  2381.                 BUFFER.n.USRI1_priv
  2382.                 BUFFER.n.USRI1_home_dir
  2383.                 BUFFER.n.USRI1_comment
  2384.                 BUFFER.n.USRI1_flags
  2385.                 BUFFER.n.USRI1_script_path
  2386.  
  2387.                 level = 2          (n=0..eread-1)
  2388.                 BUFFER.n.USRI2_name
  2389.                 BUFFER.n.USRI2_password
  2390.                 BUFFER.n.USRI2_password_age
  2391.                 BUFFER.n.USRI2_priv
  2392.                 BUFFER.n.USRI2_home_dir
  2393.                 BUFFER.n.USRI2_comment
  2394.                 BUFFER.n.USRI2_flags
  2395.                 BUFFER.n.USRI2_script_path
  2396.                 BUFFER.n.USRI2_auth_flags
  2397.                 BUFFER.n.USRI2_full_name
  2398.                 BUFFER.n.USRI2_usr_comment
  2399.                 BUFFER.n.USRI2_parms
  2400.                 BUFFER.n.USRI2_workstations
  2401.                 BUFFER.n.USRI2_last_logon
  2402.                 BUFFER.n.USRI2_last_logoff
  2403.                 BUFFER.n.USRI2_acct_expires
  2404.                 BUFFER.n.USRI2_max_storage
  2405.                 BUFFER.n.USRI2_units_per_week
  2406.                 BUFFER.n.USRI2_logon_hours
  2407.                 BUFFER.n.USRI2_bad_pw_count
  2408.                 BUFFER.n.USRI2_num_logons
  2409.                 BUFFER.n.USRI2_logon_server
  2410.                 BUFFER.n.USRI2_country_code
  2411.                 BUFFER.n.USRI2_code_page
  2412.  
  2413.                 level = 10         (n=0..eread-1)
  2414.                 BUFFER.n.USRI10_name
  2415.                 BUFFER.n.USRI10_comment
  2416.                 BUFFER.n.USRI10_usr_comment
  2417.                 BUFFER.n.USRI10_full_name
  2418.  
  2419.  
  2420.  
  2421.                                                                NetUserDel
  2422. -------------------------------------------------------------------------
  2423.  
  2424.     Syntax    : ret = NetUserDel( server, user )
  2425.  
  2426.     Purpose   : removes a user account in the UAS database.
  2427.  
  2428.     Return    : NETAPI return code (0 = successful completion)
  2429.  
  2430.     Parameter : server:            s.o.
  2431.                 user:              name of user to remove
  2432.  
  2433.     Variables : NONE
  2434.  
  2435.  
  2436.  
  2437.                                                            NetUserGetInfo
  2438. -------------------------------------------------------------------------
  2439.  
  2440.     Syntax    : ret = NetUserGetInfo( server, user, level, buffer, dummy,
  2441.                                       dummy )
  2442.  
  2443.     Purpose   : queries informmation about a user account in the UAS
  2444.                 database.
  2445.  
  2446.     Return    : NETAPI return code (0 = successful completion)
  2447.  
  2448.     Parameter : server:            s.o.
  2449.                 user:              user to get information
  2450.                 level:             0, 1, 2, 10, 11
  2451.                 rexx-buffer:       name of rexx variable containing
  2452.                                    user data
  2453.  
  2454.     Variables : level = 0
  2455.                 BUFFER.usri0_name
  2456.  
  2457.                 level = 1
  2458.                 BUFFER.USRI1_name
  2459.                 BUFFER.USRI1_pad_1
  2460.                 BUFFER.USRI1_password
  2461.                 BUFFER.USRI1_password_age
  2462.                 BUFFER.USRI1_priv
  2463.                 BUFFER.USRI1_home_dir
  2464.                 BUFFER.USRI1_comment
  2465.                 BUFFER.USRI1_flags
  2466.                 BUFFER.USRI1_script_path
  2467.  
  2468.                 level = 2
  2469.                 BUFFER.USRI2_name
  2470.                 BUFFER.USRI2_password
  2471.                 BUFFER.USRI2_password_age
  2472.                 BUFFER.USRI2_priv
  2473.                 BUFFER.USRI2_home_dir
  2474.                 BUFFER.USRI2_comment
  2475.                 BUFFER.USRI2_flags
  2476.                 BUFFER.USRI2_script_path
  2477.                 BUFFER.USRI2_auth_flags
  2478.                 BUFFER.USRI2_full_name
  2479.                 BUFFER.USRI2_usr_comment
  2480.                 BUFFER.USRI2_parms
  2481.                 BUFFER.USRI2_workstations
  2482.                 BUFFER.USRI2_last_logon
  2483.                 BUFFER.USRI2_last_logoff
  2484.                 BUFFER.USRI2_acct_expires
  2485.                 BUFFER.USRI2_max_storage
  2486.                 BUFFER.USRI2_units_per_week
  2487.                 BUFFER.USRI2_logon_hours
  2488.                 BUFFER.USRI2_bad_pw_count
  2489.                 BUFFER.USRI2_num_logons
  2490.                 BUFFER.USRI2_logon_server
  2491.                 BUFFER.USRI2_country_code
  2492.                 BUFFER.USRI2_code_page
  2493.  
  2494.                 level = 10
  2495.                 BUFFER.USRI10_name
  2496.                 BUFFER.USRI10_comment
  2497.                 BUFFER.USRI10_usr_comment
  2498.                 BUFFER.USRI10_full_name
  2499.  
  2500.                 level = 11
  2501.                 BUFFER.USRI11_name
  2502.                 BUFFER.USRI11_comment
  2503.                 BUFFER.USRI11_usr_comment
  2504.                 BUFFER.USRI11_full_name
  2505.                 BUFFER.USRI11_priv
  2506.                 BUFFER.USRI11_auth_flags
  2507.                 BUFFER.USRI11_password_age
  2508.                 BUFFER.USRI11_home_dir
  2509.                 BUFFER.USRI11_parms
  2510.                 BUFFER.USRI11_last_logon
  2511.                 BUFFER.USRI11_last_logoff
  2512.                 BUFFER.USRI11_bad_pw_count
  2513.                 BUFFER.USRI11_num_logons
  2514.                 BUFFER.USRI11_logon_server
  2515.                 BUFFER.USRI11_country_code
  2516.                 BUFFER.USRI11_workstations
  2517.                 BUFFER.USRI11_max_storage
  2518.                 BUFFER.USRI11_units_per_week
  2519.                 BUFFER.USRI11_logon_hours
  2520.                 BUFFER.USRI11_code_page
  2521.  
  2522.  
  2523.  
  2524.                                                            NetUserSetInfo
  2525. -------------------------------------------------------------------------
  2526.  
  2527.     Syntax    : ret = NetUserSetInfo( server, user, level, buffer, dummy,
  2528.                                       parmnum )
  2529.  
  2530.     Purpose   : changes information about a user account in the UAS
  2531.                 database.
  2532.  
  2533.     Return    : NETAPI return code (0 = successful completion)
  2534.  
  2535.     Parameter : server:            s.o.
  2536.                 group:             group to get information
  2537.                 level:             1, 2
  2538.                 parmnum            determines whether buf contains a
  2539.                                    complete user_info data structure or
  2540.                                    a single component.  If parmnum is 0,
  2541.                                    level can be 1 or 2, and buf must
  2542.                                    contain a complete user_info_1 or
  2543.                                    user_info_2 data structure.
  2544.                                    Otherwise, parmnum must specify the
  2545.                                    ordinal position value for one of the
  2546.                                    following data structure components:
  2547.                                    Value      Component
  2548.                                    ___________________________________
  2549.                                        0      user_info_x
  2550.                                        1      usrix_name
  2551.                                        2      usrix_pad_1
  2552.                                        3      usrix_password
  2553.                                        4      usrix_password_age
  2554.                                        5      usrix_priv
  2555.                                        6      usrix_home_dir
  2556.                                        7      usrix_comment
  2557.                                        8      usrix_flags
  2558.                                        9      usrix_script_path
  2559.                                       10      usri2_auth_flags
  2560.                                       11      usri2_full_name
  2561.                                       12      usri2_usr_comment
  2562.                                       13      usri2_parms
  2563.                                       14      usri2_workstations
  2564.                                       15      usri2_last_logon
  2565.                                       16      usri2_last_logoff
  2566.                                       17      usri2_acct_expires
  2567.                                       18      usri2_max_storage
  2568.                                       19      usri2_units_per_week
  2569.                                       20      usri2_logon_hours
  2570.                                       21      usri2_bad_pw_count
  2571.                                       22      usri2_num_logons
  2572.                                       23      usri2_logon_server
  2573.                                       24      usri2_country_code
  2574.                                       25      usri2_code_page
  2575.                                      100      usrix_password_age
  2576.                                     Note:  x = 1 or 2.
  2577.                 
  2578.                 rexx-buffer:       name of rexx variable containing group
  2579.                                    data
  2580.  
  2581.     Variables : For a description of the used variables, please refer
  2582.                 to the NetUserGetInfo section.
  2583.  
  2584.  
  2585.  
  2586.                                                          NetUserGetGroups
  2587. -------------------------------------------------------------------------
  2588.  
  2589.     Syntax    : ret = NetGroupGetUsers( server, user, level, buffer,
  2590.                                         dummy, eread, dummy )
  2591.  
  2592.     Purpose   : gets a list groups a user belongs to
  2593.  
  2594.     Return    : NETAPI return code (0 = successful completion)
  2595.  
  2596.     Parameter : server:            s.o.
  2597.                 user               name of user to get group list
  2598.                 level:             0
  2599.                 rexx-buffer:       name of rexx variable containing
  2600.                                    group list
  2601.                 eread:             number of entries found
  2602.  
  2603.     Variables : level = 0          (n=0..eread-1)
  2604.                 BUFFER.n.grpi0_name
  2605.  
  2606.  
  2607.  
  2608.                                                          NetUserSetGroups
  2609. -------------------------------------------------------------------------
  2610.  
  2611.     Syntax    : ret = NetUserSetGroups( server, user, level, buffer,
  2612.                                         dummy, entries )
  2613.  
  2614.     Purpose   : user joins the groups in the list specified
  2615.  
  2616.     Return    : NETAPI return code (0 = successful completion)
  2617.  
  2618.     Parameter : server:            s.o.
  2619.                 user               name of user to set group list
  2620.                 level:             0
  2621.                 rexx-buffer:       name of rexx variable containing
  2622.                                    group list
  2623.                 entries:           number of entries to set
  2624.  
  2625.     Variables : level = 0          (n=0..eread-1)
  2626.                 BUFFER.n.grpi0_name
  2627.  
  2628.  
  2629.                                                        NetUserPasswordSet
  2630. -------------------------------------------------------------------------
  2631.  
  2632.     Syntax    : ret = NetUserPasswordSet( server, user, old, new )
  2633.  
  2634.     Purpose   :
  2635.  
  2636.     Return    : NETAPI return code (0 = successful completion)
  2637.  
  2638.     Parameter : server:            s.o.
  2639.                 user:              user-ID whose password to change
  2640.                 old                the currently used password
  2641.                 new:               the new password to set
  2642.  
  2643.     Variables : NONE
  2644.  
  2645.     Comment:    NOTE !
  2646.                 The Password API is CASE SENSITIVE !
  2647.                 It is strongly recommended, to use only upper case
  2648.                 character and only standard ASCII character, because
  2649.                 the LAN servers and user profile interface only accept
  2650.                 these characters.
  2651.  
  2652.  
  2653.  
  2654.                                                          NetUserModalsGet
  2655. -------------------------------------------------------------------------
  2656.  
  2657.     Syntax    : ret = NetUserModalsGet( server, level, buffer, dummy,
  2658.                                         dummy )
  2659.  
  2660.     Purpose   : gets global modals-related information for all users and
  2661.                 groups in the user accounts subsystem (UAS) database.
  2662.  
  2663.     Return    : NETAPI return code (0 = successful completion)
  2664.  
  2665.     Parameter : server:            s.o.
  2666.                 level:             0, 1
  2667.                 rexx-buffer:       name of rexx variable containing modal
  2668.                                    data
  2669.  
  2670.     Variables : level = 0
  2671.                 BUFFER.USRMOD0_min_passwd_len
  2672.                 BUFFER.USRMOD0_max_passwd_age
  2673.                 BUFFER.USRMOD0_min_passwd_age
  2674.                 BUFFER.USRMOD0_force_logoff
  2675.                 BUFFER.USRMOD0_password_hist_len
  2676.  
  2677.                 level = 1
  2678.                 BUFFER.USRMOD1_role
  2679.                 BUFFER.USRMOD1_primary
  2680.  
  2681.  
  2682.  
  2683.                                                          NetUserModalsSet
  2684. -------------------------------------------------------------------------
  2685.  
  2686.     Syntax    : ret = NetUserModalsGet( server, level, buffer, dummy,
  2687.                                         dummy )
  2688.  
  2689.     Purpose   : sets global modals-related information for all users and
  2690.                 groups in the user accounts subsystem (UAS) database.
  2691.                 The parmnum field is not supported.
  2692.  
  2693.     Return    : NETAPI return code (0 = successful completion)
  2694.  
  2695.     Parameter : server:            s.o.
  2696.                 level:             0, 1
  2697.                 rexx-buffer:       name of rexx variable containing modal
  2698.                                    data
  2699.  
  2700.     Variables : For a description of the used variables, please refer to
  2701.                 NetUserModalsGet
  2702.  
  2703.  
  2704.  
  2705.                                                          NetUserValidate2
  2706. -------------------------------------------------------------------------
  2707.  
  2708.     Syntax    : ret = NetUserValidate2( dummy, level, buffer, dummy,
  2709.                                         dummy, dummy )
  2710.  
  2711.     Purpose   : validates a user with its password. It checks if the user can
  2712.                 log on based on logon restrictions defined for the account.
  2713.  
  2714.     Return    : NETAPI return code (0 = successful completion)
  2715.  
  2716.     Parameter : level              specifies the level of detail (1) supplied
  2717.                                    to the user_logon data structure.
  2718.                 rexx-buffer:       At logon the rexx-buffer contains the name
  2719.                                    of the variable, containing a
  2720.                                    user_logon_req_1 array.
  2721.                                    The API creates variables supplying a
  2722.                                    user_logon_info_1 array.
  2723.  
  2724.     Variables : Before calling the API, these variables are neccessary:
  2725.                 BUFFER.USRreq1_name
  2726.                 BUFFER.USRreq1_password
  2727.                 BUFFER.USRreq1_workstation
  2728.  
  2729.                 On return, these variables are found.
  2730.                 BUFFER.USRlog1_code
  2731.                 BUFFER.USRlog1_eff_name
  2732.                 BUFFER.USRlog1_priv
  2733.                 BUFFER.USRlog1_auth_flags
  2734.                 BUFFER.USRlog1_num_logons
  2735.                 BUFFER.USRlog1_bad_pw_count
  2736.                 BUFFER.USRlog1_last_logon
  2737.                 BUFFER.USRlog1_last_logoff
  2738.                 BUFFER.USRlog1_logoff_time
  2739.                 BUFFER.USRlog1_kickoff_time
  2740.                 BUFFER.USRlog1_password_age
  2741.                 BUFFER.USRlog1_pw_can_change
  2742.                 BUFFER.USRlog1_pw_must_change
  2743.                 BUFFER.USRlog1_computer
  2744.                 BUFFER.USRlog1_domain
  2745.                 BUFFER.USRlog1_script_path
  2746.  
  2747.  
  2748.                                           NetUserDCDBInit (ONLY WITH 3.0)
  2749. -------------------------------------------------------------------------
  2750.  
  2751.     Syntax    : ret = NetUserDCDBInit( server, user, dummy )
  2752.  
  2753.     Purpose   : initializes the domain control database for the
  2754.                 specified user.
  2755.  
  2756.     Return    : NETAPI return code (0 = successful completion)
  2757.  
  2758.     Parameter : server:            s.o.
  2759.                 user:              specifies the user ID of a user that
  2760.                                    is defined on the domain.
  2761.  
  2762.     Variables : NONE
  2763.     
  2764.  
  2765.  
  2766.                                          NetUserGetAppSel (ONLY WITH 3.0)
  2767. -------------------------------------------------------------------------
  2768.  
  2769.     Syntax    : ret = NetUserGetAppSel( server, user, level, type,
  2770.                                         buffer, dummy, dummy )
  2771.  
  2772.     Purpose   : retrieves information about all specified types of
  2773.                 applications contained in the user's desktop application
  2774.                 folders.
  2775.  
  2776.     Return    : NETAPI return code (0 = successful completion)
  2777.  
  2778.     Parameter : server:            s.o.
  2779.                 user:              specifies the user ID of a user that
  2780.                                    is defined on the domain.
  2781.                 level              specifies the level of information
  2782.                                    requested.  Currently, only level 1 is
  2783.                                    supported.
  2784.                 type:              indicates the types of application to
  2785.                                    retrieve:
  2786.                                    Value     Meaning
  2787.                                    ___________________________________
  2788.                                    0x1       Public DOS applications
  2789.                                    0x2       Public OS/2 applications
  2790.                                    0x4       Private OS/2 applications
  2791.                                    0x7       All applications
  2792.                 rexx-buffer:       name of rexx variable containing
  2793.                                    application data
  2794.  
  2795.     Variables :
  2796.                 BUFFER.asi1_count
  2797.  
  2798.                 Followed by (n=0..BUFFER.asi1_count) arrays:
  2799.                 BUFFER.n.asl_appname
  2800.                 BUFFER.n.asl_apptype
  2801.  
  2802.  
  2803.  
  2804.                                          NetUserSetAppSel (ONLY WITH 3.0)
  2805. -------------------------------------------------------------------------
  2806.  
  2807.     Syntax    : ret = NetUserGetAppSel( server, user, level, buffer,
  2808.                                         dummy )
  2809.  
  2810.     Purpose   : changes information about all specified types of
  2811.                 applications contained in the user's desktop
  2812.                 application folders.
  2813.  
  2814.     Return    : NETAPI return code (0 = successful completion)
  2815.  
  2816.     Parameter : server:            s.o.
  2817.                 user:              specifies the user ID of a user that
  2818.                                    is defined on the domain.
  2819.                 level              specifies the level of information
  2820.                                    requested.  Currently, only level 1
  2821.                                    is supported.
  2822.                 rexx-buffer:       name of rexx variable containing
  2823.                                    application data
  2824.  
  2825.     Variables : The variables used are matching these of the
  2826.                 NetUserGetApp API.
  2827.  
  2828.  
  2829.  
  2830.                                        NetUserGetLogonAsn (ONLY WITH 3.0)
  2831. -------------------------------------------------------------------------
  2832.  
  2833.     Syntax    : ret = NetUserGetLogonAsn( server, user, level, type,
  2834.                                           buffer, dummy, dummy )
  2835.  
  2836.     Purpose   : retrieves information about logon assignments for a user.
  2837.  
  2838.     Return    : NETAPI return code (0 = successful completion)
  2839.  
  2840.     Parameter : server:            s.o.
  2841.                 user:              name of user to modify logon
  2842.                                    assignments
  2843.                 level:             1
  2844.                 type:              indicates the types of logon
  2845.                                    assignments:
  2846.                                    Bit Mask   Meaning
  2847.                                    _____________________________________
  2848.                                    0x0001    Network nickname used
  2849.                                              for a file.
  2850.                                    0x0002    Network nickname used
  2851.                                              for a printer.
  2852.                                    0x0004    Network nickname used
  2853.                                              for a serial device.
  2854.                 rexx-buffer:       name of rexx variable containing
  2855.                                    assignment data
  2856.  
  2857.     Variables : BUFFER.lai1_count
  2858.  
  2859.                 followed by n=0..BUFFER.lai1_count alias arrays:
  2860.                 BUFFER.n.lal_alias
  2861.                 BUFFER.n.lal_type
  2862.                 BUFFER.n.lal_device
  2863.  
  2864.  
  2865.  
  2866.                                        NetUserSetLogonAsn (ONLY WITH 3.0)
  2867. -------------------------------------------------------------------------
  2868.  
  2869.     Syntax    : ret = NetUserSetLogonAsn( server, user, level, buffer,
  2870.                                           dummy )
  2871.  
  2872.     Purpose   : sets information about logon assignments for a user.
  2873.  
  2874.     Return    : NETAPI return code (0 = successful completion)
  2875.  
  2876.     Parameter : server:            s.o.
  2877.                 user:              name of user to modify logon
  2878.                                    assignments
  2879.                 level:             1
  2880.                 rexx-buffer:       name of rexx variable containing
  2881.                                    assignment data
  2882.  
  2883.     Variables : BUFFER.lai1_count
  2884.  
  2885.                 followed by n=0..BUFFER.lai1_count alias arrays:
  2886.                 BUFFER.n.lal_alias
  2887.                 BUFFER.n.lal_type
  2888.                 BUFFER.n.lal_device
  2889.  
  2890.  
  2891. -------------------------------------------------------------------------
  2892.                                                         17. ALIAS SECTION
  2893. -------------------------------------------------------------------------
  2894.  
  2895.                                               NetAliasAdd (ONLY WITH 3.0)
  2896. -------------------------------------------------------------------------
  2897.  
  2898.     Syntax    : ret = NetAliasAdd( server, level, buffer, dummy )
  2899.  
  2900.     Purpose   : creates an alias definition
  2901.  
  2902.     Return    : NETAPI return code (0 = successful completion)
  2903.  
  2904.     Parameter : server:            s.o.
  2905.                 level:             2
  2906.                 rexx-buffer:       name of rexx variable containing
  2907.                                    alias data
  2908.  
  2909.     Variables :
  2910.                 BUFFER.AI2_alias
  2911.                 BUFFER.AI2_remark
  2912.                 BUFFER.AI2_type
  2913.                 BUFFER.AI2_location
  2914.                 BUFFER.AI2_server
  2915.                 BUFFER.AI2_mode
  2916.                 BUFFER.AI2_maxuses
  2917.                 BUFFER.AI2_netname
  2918.                 BUFFER.AI2_queue
  2919.                 BUFFER.AI2_path
  2920.                 BUFFER.AI2_priority
  2921.                 BUFFER.AI2_device_pool
  2922.  
  2923.  
  2924.  
  2925.  
  2926.                                               NetAliasDel (ONLY WITH 3.0)
  2927. -------------------------------------------------------------------------
  2928.  
  2929.     Syntax    : ret = NetAliasDel( server, alias, dummy )
  2930.  
  2931.     Purpose   : deletes an alias definition
  2932.  
  2933.     Return    : NETAPI return code (0 = successful completion)
  2934.  
  2935.     Parameter : server:            s.o.
  2936.                 alias:             name of alias to delete
  2937.  
  2938.     Variables : NONE
  2939.  
  2940.  
  2941.  
  2942.                                              NetAliasEnum (ONLY WITH 3.0)
  2943. -------------------------------------------------------------------------
  2944.  
  2945.     Syntax    : ret = NetAliasEnum( server, level, type, buffer, dummy,
  2946.                                     eread, dummy )
  2947.  
  2948.     Purpose   : Returns a list of all aliases of a given type
  2949.  
  2950.     Return    : NETAPI return code (0 = successful completion)
  2951.  
  2952.     Parameter : server:            s.o.
  2953.                 level:             0, 1, 2
  2954.                 type               indicates the kind of alias to be
  2955.                                    enumerated:
  2956.                                    Bit Mask     Meaning
  2957.                                    ______________________________________
  2958.                                    0x0001       Files alias
  2959.                                    0x0002       Printer alias
  2960.                                    0x0004       Serial device alias
  2961.  
  2962.                 rexx-buffer:       name of rexx variable containing
  2963.                                    alias data
  2964.                 eread:             number of entries found
  2965.  
  2966.     Variables : level = 0
  2967.                 BUFFER.n.ai0_alias
  2968.  
  2969.                 level = 1
  2970.                 BUFFER.n.ai1_alias
  2971.                 BUFFER.n.ai1_remark
  2972.                 BUFFER.n.ai1_type
  2973.  
  2974.                 level = 2
  2975.                 BUFFER.n.AI2_alias
  2976.                 BUFFER.n.AI2_remark
  2977.                 BUFFER.n.AI2_type
  2978.                 BUFFER.n.AI2_location
  2979.                 BUFFER.n.AI2_server
  2980.                 BUFFER.n.AI2_mode
  2981.                 BUFFER.n.AI2_maxuses
  2982.                 BUFFER.n.AI2_netname
  2983.                 BUFFER.n.AI2_queue
  2984.                 BUFFER.n.AI2_path
  2985.                 BUFFER.n.AI2_priority
  2986.                 BUFFER.n.AI2_device_pool
  2987.  
  2988.  
  2989.  
  2990.                                           NetAliasGetInfo (ONLY WITH 3.0)
  2991. -------------------------------------------------------------------------
  2992.  
  2993.     Syntax    : ret = NetAliasGetInfo( server, alias, level, buffer,
  2994.                                        dummy, dummy )
  2995.  
  2996.     Purpose   : returns information about a given alias
  2997.  
  2998.     Return    : NETAPI return code (0 = successful completion)
  2999.  
  3000.     Parameter : server:            s.o.
  3001.                 alias:             name of alias to get information
  3002.                 level:             0, 1, 2
  3003.                 rexx-buffer:       name of rexx variable containing
  3004.                                    alias data
  3005.  
  3006.     Variables : level = 0
  3007.                 BUFFER.ai0_alias
  3008.  
  3009.                 level = 1
  3010.                 BUFFER.ai1_alias
  3011.                 BUFFER.ai1_remark
  3012.                 BUFFER.ai1_type
  3013.  
  3014.                 level = 2
  3015.                 BUFFER.AI2_alias
  3016.                 BUFFER.AI2_remark
  3017.                 BUFFER.AI2_type
  3018.                 BUFFER.AI2_location
  3019.                 BUFFER.AI2_server
  3020.                 BUFFER.AI2_mode
  3021.                 BUFFER.AI2_maxuses
  3022.                 BUFFER.AI2_netname
  3023.                 BUFFER.AI2_queue
  3024.                 BUFFER.AI2_path
  3025.                 BUFFER.AI2_priority
  3026.                 BUFFER.AI2_device_pool
  3027.  
  3028.  
  3029.  
  3030.                                           NetAliasSetInfo (ONLY WITH 3.0)
  3031. -------------------------------------------------------------------------
  3032.  
  3033.     Syntax    : ret = NetAliasSetInfo( server, alias, level, buffer,
  3034.                                        dummy, parmnum )
  3035.  
  3036.     Purpose   : set information about a given alias
  3037.  
  3038.     Return    : NETAPI return code (0 = successful completion)
  3039.  
  3040.     Parameter : server:            s.o.
  3041.                 alias:             name of alias to get information
  3042.                 level:             0, 1, 2
  3043.                 rexx-buffer:       name of rexx variable containing alias
  3044.                                    data
  3045.                 parmnum:           determines whether buf contains a
  3046.                                    complete alias_info data structure or
  3047.                                    a single component.
  3048.                                    If parmnum is 0, level can be 1 or 2,
  3049.                                    and buf must contain a complete
  3050.                                    alias_info data structure.  Otherwise,
  3051.                                    parmnum must specify the ordinal
  3052.                                    position value for one of the following
  3053.                                    data structure components:
  3054.                                    Value  Component       Comment
  3055.                                    ___________________________________
  3056.                                      3   aix_remark        -
  3057.                                      7   aix_mode          -
  3058.                                      8   aix_maxuses       -
  3059.                                     13   aix_path          Valid for files
  3060.                                                           aliases only
  3061.                                     14   aix_priority      Valid for serial
  3062.                                                           device aliases only
  3063.                                     15   aix_device_pool   Valid for serial
  3064.                                                           device aliases only
  3065.                 
  3066.     Variables : For further information about used variables, please refer
  3067.                 to NetAliasGetInfo
  3068.  
  3069.  
  3070. -------------------------------------------------------------------------
  3071.                                                   18. APPLICATION SECTION
  3072. -------------------------------------------------------------------------
  3073.  
  3074.  
  3075.  
  3076.                                                 NetAppAdd (ONLY WITH 3.0)
  3077. -------------------------------------------------------------------------
  3078.  
  3079.     Syntax    : ret = NetAppAdd( server, user, level, buffer, dummy )
  3080.  
  3081.     Purpose   : Adds an application definition
  3082.  
  3083.     Return    : NETAPI return code (0 = successful completion)
  3084.  
  3085.     Parameter : server:            s.o.
  3086.                 user:              indicates the application type. If
  3087.                                    userid is NULL, the application is
  3088.                                    considered to be a public application.
  3089.                                    Otherwise, userid contains the user ID
  3090.                                    of a user defined on the domain. A
  3091.                                    userid that is not "" indicates
  3092.                                    that the application to be added is
  3093.                                    private.
  3094.                 level:             3
  3095.                 rexx-buffer:       name of rexx variable containing app
  3096.                                    data
  3097.  
  3098.     Variables : The API needs a app_info_3 array:
  3099.                 BUFFER.APP3_name
  3100.                 BUFFER.APP3_remark
  3101.                 BUFFER.APP3_command
  3102.                 BUFFER.APP3_command_parms
  3103.                 BUFFER.APP3_app_alias_or_drv
  3104.                 BUFFER.APP3_app_drive
  3105.                 BUFFER.APP3_app_path_to_dir
  3106.                 BUFFER.APP3_wrkdir_alias_or_drv
  3107.                 BUFFER.APP3_wrkdir_drive
  3108.                 BUFFER.APP3_wrkdir_path_to_dir
  3109.                 BUFFER.APP3_prompt
  3110.                 BUFFER.APP3_interface
  3111.                 BUFFER.APP3_apptype
  3112.                 BUFFER.APP3_res_count
  3113.  
  3114.                 followed by BUFFER.APP3_res_count app_res_list arrays.
  3115.                                           (n=0..BUFFER.APP3_res_count-1)
  3116.                 BUFFER.n.ARL_alias
  3117.                 BUFFER.n.ARL_device
  3118.  
  3119.  
  3120.  
  3121.  
  3122.                                                 NetAppDel (ONLY WITH 3.0)
  3123. -------------------------------------------------------------------------
  3124.  
  3125.     Syntax    : ret = NetAppDel( server, user, appname, dummy )
  3126.  
  3127.     Purpose   : deletes an application definition
  3128.  
  3129.     Return    : NETAPI return code (0 = successful completion)
  3130.  
  3131.     Parameter : server:            s.o.
  3132.                 user:              indicates the application type. If
  3133.                                    userid is NULL, the application is
  3134.                                    considered to be a public application.
  3135.                                    Otherwise, userid contains the user ID
  3136.                                    of a user defined on the domain. A
  3137.                                    userid that is not "" indicates that
  3138.                                    the application to be removed is private.
  3139.                 appname:           name of application to delete
  3140.  
  3141.     Variables : NONE
  3142.  
  3143.  
  3144.  
  3145.                                                NetAppEnum (ONLY WITH 3.0)
  3146. -------------------------------------------------------------------------
  3147.  
  3148.     Syntax    : ret = NetAppEnum( server, userid, level, type, buffer,
  3149.                                   dummy, eread, dummy )
  3150.  
  3151.     Purpose   : enumerates all application of a given type.
  3152.  
  3153.     Return    : NETAPI return code (0 = successful completion)
  3154.  
  3155.     Parameter : server:            s.o.
  3156.                 user:              indicates the application type. If
  3157.                                    userid is NULL, the applications are
  3158.                                    considered to be public applications.
  3159.                                    Otherwise, userid contains the user ID
  3160.                                    of a user defined on the domain. A
  3161.                                    userid that is not "" indicates that
  3162.                                    the applications to be enumerated are
  3163.                                    private.
  3164.                 level:             0, 1, 2, 3
  3165.                 type               indicates the kind of application to be
  3166.                                    enumerated:
  3167.                                    Bit Mask     Meaning
  3168.                                    _________________________________________
  3169.                                    0x1          Public DOS applications
  3170.                                    0x2          Public OS/2 applications
  3171.                                    0x4          Private OS/2 applications
  3172.                                    0x7          All applications
  3173.                 rexx-buffer:       name of rexx variable containing
  3174.                                    app data
  3175.  
  3176.     Variables : level = 0          (n=0..eread-1)
  3177.                 BUFFER.n.app0_name
  3178.  
  3179.                 level = 1          (n=0..eread-1)
  3180.                 BUFFER.n.app1_name
  3181.                 BUFFER.n.app1_remark
  3182.  
  3183.                 level = 2          (n=0..eread-1)
  3184.                 BUFFER.n.APP2_name
  3185.                 BUFFER.n.APP2_remark
  3186.                 BUFFER.n.APP2_command
  3187.                 BUFFER.n.APP2_command_parms
  3188.                 BUFFER.n.APP2_app_alias_or_drv
  3189.                 BUFFER.n.APP2_app_drive
  3190.                 BUFFER.n.APP2_app_path_to_dir
  3191.                 BUFFER.n.APP2_wrkdir_alias_or_drv
  3192.                 BUFFER.n.APP2_wrkdir_drive
  3193.                 BUFFER.n.APP2_wrkdir_path_to_dir
  3194.                 BUFFER.n.APP2_prompt
  3195.                 BUFFER.n.APP2_interface
  3196.                 BUFFER.n.APP2_apptype
  3197.  
  3198.                 level = 3          (n=0..eread-1)
  3199.                 BUFFER.n.APP3_name
  3200.                 BUFFER.n.APP3_remark
  3201.                 BUFFER.n.APP3_command
  3202.                 BUFFER.n.APP3_command_parms
  3203.                 BUFFER.n.APP3_app_alias_or_drv
  3204.                 BUFFER.n.APP3_app_drive
  3205.                 BUFFER.n.APP3_app_path_to_dir
  3206.                 BUFFER.n.APP3_wrkdir_alias_or_drv
  3207.                 BUFFER.n.APP3_wrkdir_drive
  3208.                 BUFFER.n.APP3_wrkdir_path_to_dir
  3209.                 BUFFER.n.APP3_prompt
  3210.                 BUFFER.n.APP3_interface
  3211.                 BUFFER.n.APP3_apptype
  3212.                 BUFFER.n.APP3_res_count
  3213.  
  3214.                 followed by BUFFER.APP3_res_count app_res_list arrays.
  3215.                                           (i=0..BUFFER.n.APP3_res_count-1)
  3216.                 BUFFER.n.i.ARL_alias
  3217.                 BUFFER.n.i.ARL_device
  3218.  
  3219.  
  3220.                                             NetAppGetInfo (ONLY WITH 3.0)
  3221. -------------------------------------------------------------------------
  3222.  
  3223.     Syntax    : ret = NetAppGetInfo( server, user, appname, level,
  3224.                                      buffer, dummy, dummy )
  3225.  
  3226.     Purpose   : returns information about a given application
  3227.  
  3228.     Return    : NETAPI return code (0 = successful completion)
  3229.  
  3230.     Parameter : server:            s.o.
  3231.                 user:              s.o.
  3232.                 appname:           name of application to get information
  3233.                 level:             0, 1, 2, 3
  3234.                 rexx-buffer:       name of rexx variable containing
  3235.                                    app data
  3236.  
  3237.     Variables : level = 0
  3238.                 BUFFER.app0_name
  3239.  
  3240.                 level = 1
  3241.                 BUFFER.app1_name
  3242.                 BUFFER.app1_remark
  3243.  
  3244.                 level = 2
  3245.                 BUFFER.APP2_name
  3246.                 BUFFER.APP2_remark
  3247.                 BUFFER.APP2_command
  3248.                 BUFFER.APP2_command_parms
  3249.                 BUFFER.APP2_app_alias_or_drv
  3250.                 BUFFER.APP2_app_drive
  3251.                 BUFFER.APP2_app_path_to_dir
  3252.                 BUFFER.APP2_wrkdir_alias_or_drv
  3253.                 BUFFER.APP2_wrkdir_drive
  3254.                 BUFFER.APP2_wrkdir_path_to_dir
  3255.                 BUFFER.APP2_prompt
  3256.                 BUFFER.APP2_interface
  3257.                 BUFFER.APP2_apptype
  3258.  
  3259.                 level = 3
  3260.                 BUFFER.APP3_name
  3261.                 BUFFER.APP3_remark
  3262.                 BUFFER.APP3_command
  3263.                 BUFFER.APP3_command_parms
  3264.                 BUFFER.APP3_app_alias_or_drv
  3265.                 BUFFER.APP3_app_drive
  3266.                 BUFFER.APP3_app_path_to_dir
  3267.                 BUFFER.APP3_wrkdir_alias_or_drv
  3268.                 BUFFER.APP3_wrkdir_drive
  3269.                 BUFFER.APP3_wrkdir_path_to_dir
  3270.                 BUFFER.APP3_prompt
  3271.                 BUFFER.APP3_interface
  3272.                 BUFFER.APP3_apptype
  3273.                 BUFFER.APP3_res_count
  3274.  
  3275.                 followed by BUFFER.APP3_res_count app_res_list arrays.
  3276.                                           (i=0..BUFFER.APP3_res_count-1)
  3277.                 BUFFER.i.ARL_alias
  3278.                 BUFFER.i.ARL_device
  3279.  
  3280.  
  3281.  
  3282.                                             NetAppSetInfo (ONLY WITH 3.0)
  3283. -------------------------------------------------------------------------
  3284.  
  3285.     Syntax    : ret = NetAppSetInfo( server, user, appname, level,
  3286.                                      buffer, dummy, dummy )
  3287.  
  3288.     Purpose   : returns information about a given application
  3289.  
  3290.     Return    : NETAPI return code (0 = successful completion)
  3291.  
  3292.     Parameter : server:            s.o.
  3293.                 user:              s.o.
  3294.                 appname:           name of application to get information
  3295.                 level:             0, 1, 2, 3
  3296.                 rexx-buffer:       name of rexx variable containing
  3297.                                    app data
  3298.                 parmnum:           determines whether buf contains a
  3299.                                    complete app_info data structure or a
  3300.                                    single component. If parmnum is 0,
  3301.                                    level can be 1, 2, or 3, and buf must
  3302.                                    contain a complete alias_info data
  3303.                                    structure.  Otherwise, parmnum must
  3304.                                    specify the ordinal position value for
  3305.                                    one of the data structure components:
  3306.                                    Value   Component
  3307.                                    ______________________________
  3308.                                      3     appx_remark
  3309.                                      4     appx_command
  3310.                                      5     appx_command_parms
  3311.  
  3312.     Variables : For further information about the used variables, refer to
  3313.                 NetAppGetInfo.
  3314.  
  3315.  
  3316.  
  3317.