home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dsstlkt5.zip / dssos2tk / dss / ACCESS.H next >
C/C++ Source or Header  |  1998-05-08  |  48KB  |  1,151 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Directory and Security Services (DSS)        */
  4. /*                            Version 5.0                                 */
  5. /*                   (C) Copyright IBM Corp. 1995                         */
  6. /*                  Licensed Materials - Property of IBM                  */
  7. /*                                                                        */
  8. /**************************************************************************/
  9. /********************************************************************/
  10.  
  11.  
  12. /********************************************************************
  13.  *                                                                  *
  14.  *  About this file ...  ACCESS.H                                   *
  15.  *                                                                  *
  16.  *  This file contains information about the NetUser, NetGroup, and *
  17.  *  NetAccess APIs.  There is a section for each set of APIs.  Each *
  18.  *  section contains:                                               *
  19.  *                                                                  *
  20.  *      Function prototypes.                                        *
  21.  *                                                                  *
  22.  *      Data structure templates.                                   *
  23.  *                                                                  *
  24.  *      Definition of special values.                               *
  25.  *                                                                  *
  26.  *                                                                  *
  27.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  28.  *         file depends on values defined in NETCONS.H.             *
  29.  *                                                                  *
  30.  *         This file is always included by LAN.H                    *
  31.  *                                                                  *
  32.  ********************************************************************/
  33.  
  34.  
  35. #ifdef  ANY_32_BIT
  36. #pragma pack(1)
  37. #endif
  38.  
  39.  
  40.  
  41. #if (defined( INCL_NETUSER ) || !defined( LAN_INCLUDED )) \
  42.     && !defined( NETUSER_INCLUDED )
  43.  
  44. #define NETUSER_INCLUDED
  45.  
  46.  
  47.  
  48. /****************************************************************
  49.  *                                                              *
  50.  *              User Class                                      *
  51.  *                                                              *
  52.  ****************************************************************/
  53.  
  54.  
  55. /****************************************************************
  56.  *                                                              *
  57.  *              Function prototypes - USER                      *
  58.  *                                                              *
  59.  ****************************************************************/
  60.  
  61. extern API_FUNCTION
  62.   NetUserAdd ( const unsigned char LSFAR * pszServer,
  63.                short                       sLevel,
  64.                unsigned char LSFAR *       pbBuffer,
  65.                unsigned short              cbBuffer );
  66.  
  67. extern API_FUNCTION
  68.   NetUserDel ( const unsigned char LSFAR * pszServer,
  69.                unsigned char LSFAR *       pszUserName );
  70.  
  71.  
  72. extern API_FUNCTION
  73.   NetUserEnum ( const unsigned char LSFAR *     pszServer,
  74.                 short                           sLevel,
  75.                 unsigned char LSFAR *           pbBuffer,
  76.                 unsigned short                  cbBuffer,
  77.                 unsigned short LSFAR *          pcEntriesRead,
  78.                 unsigned short LSFAR *          pcTotalAvail );
  79.  
  80. extern API_FUNCTION
  81.   NetUserGetInfo ( const unsigned char LSFAR *     pszServer,
  82.                    unsigned char LSFAR *           pszUserName,
  83.                    short                           sLevel,
  84.                    unsigned char LSFAR *           pbBuffer,
  85.                    unsigned short                  cbBuffer,
  86.                    unsigned short LSFAR *          pcbTotalAvail );
  87.  
  88. extern API_FUNCTION
  89.   NetUserSetInfo ( const unsigned char LSFAR * pszServer,
  90.                    unsigned char LSFAR *       pszUserName,
  91.                    short                       sLevel,
  92.                    unsigned char LSFAR *       pbBuffer,
  93.                    unsigned short              cbBuffer,
  94.                    short                       sParmNum );
  95.  
  96. extern API_FUNCTION
  97.   NetUserPasswordSet ( const unsigned char LSFAR * pszServer,
  98.                        unsigned char LSFAR *       pszUserName,
  99.                        unsigned char LSFAR *       pszOldPassword,
  100.                        unsigned char LSFAR *       pszNewPassword );
  101.  
  102. extern API_FUNCTION
  103.   NetUserGetGroups ( const unsigned char LSFAR *     pszServer,
  104.                      const unsigned char LSFAR *     pszUserName,
  105.                      short                           sLevel,
  106.                      unsigned char LSFAR *           pbBuffer,
  107.                      unsigned short                  cbBuffer,
  108.                      unsigned short LSFAR *          pcEntriesRead,
  109.                      unsigned short LSFAR *          pcTotalAvail );
  110.  
  111. extern API_FUNCTION
  112.   NetUserSetGroups ( const unsigned char LSFAR * pszServer,
  113.                      const unsigned char LSFAR * pszUserName,
  114.                      short                       sLevel,
  115.                      unsigned char LSFAR *       pbBuffer,
  116.                      unsigned short              cbBuffer,
  117.                      unsigned short              cEntries );
  118.  
  119. extern API_FUNCTION
  120.   NetUserModalsGet ( const unsigned char LSFAR *     pszServer,
  121.                      short                           sLevel,
  122.                      unsigned char LSFAR *           pbBuffer,
  123.                      unsigned short                  cbBuffer,
  124.                      unsigned short LSFAR *          pcbTotalAvail );
  125.  
  126. extern API_FUNCTION
  127.   NetUserModalsSet ( const unsigned char LSFAR * pszServer,
  128.                      short                       sLevel,
  129.                      unsigned char LSFAR *       pbBuffer,
  130.                      unsigned short              cbBuffer,
  131.                      short                       sParmNum );
  132.  
  133. extern API_FUNCTION
  134.   NetUserValidate ( unsigned char LSFAR *  pszReserved,
  135.                     unsigned char LSFAR *  pszUserName,
  136.                     unsigned char LSFAR *  pszPassword,
  137.                     unsigned short LSFAR * pusPrivilege );
  138.  
  139. extern API_FUNCTION
  140.   NetUserValidate2 ( unsigned char LSFAR *  pszServer,
  141.                      short                  sLevel,
  142.                      unsigned char LSFAR *  pbBuffer,
  143.                      unsigned short         cbBuffer,
  144.                      unsigned short         usReserved2,
  145.                      unsigned short LSFAR * pcbTotalAvail );
  146.  
  147.  
  148.  
  149. /****************************************************************
  150.  *                                                              *
  151.  *              Data structure templates - USER                 *
  152.  *                                                              *
  153.  ****************************************************************/
  154.  
  155. struct user_info_0 {
  156.         unsigned char      usri0_name[UNLEN+1];
  157. };      /* user_info_0 */
  158.  
  159. struct user_info_1 {
  160.         unsigned char      usri1_name[UNLEN+1];
  161.         unsigned char      usri1_pad_1;
  162.         unsigned char               usri1_password[ENCRYPTED_PWLEN];/* See note below */
  163.         long                        usri1_password_age;
  164.         unsigned short              usri1_priv;                     /* See values below */
  165.         unsigned char LSFAR * LSPTR usri1_home_dir;
  166.         unsigned char LSFAR * LSPTR usri1_comment;
  167.         unsigned short              usri1_flags;                    /* See values below */
  168.         unsigned char LSFAR * LSPTR usri1_script_path;
  169. };      /* user_info_1 */
  170.  
  171. /*
  172.  *      NOTE:  The maximum length of a user password is PWLEN.  The
  173.  *      field usri1_password contains extra room for transporting
  174.  *      the encrypted form of the password over the network.  When
  175.  *      setting the user's password, check length vs. PWLEN, not
  176.  *      the size of this field.  PWLEN is defined in NETCONS.H.
  177.  */
  178.  
  179.  
  180.  
  181. struct user_info_2 {
  182.         unsigned char               usri2_name[UNLEN+1];
  183.         unsigned char               usri2_pad_1;
  184.         unsigned char               usri2_password[ENCRYPTED_PWLEN];
  185.         long                        usri2_password_age;
  186.         unsigned short              usri2_priv;
  187.         unsigned char LSFAR * LSPTR usri2_home_dir;
  188.         unsigned char LSFAR * LSPTR usri2_comment;
  189.         unsigned short              usri2_flags;
  190.         unsigned char LSFAR * LSPTR usri2_script_path;
  191.         unsigned long               usri2_auth_flags;
  192.         unsigned char LSFAR * LSPTR usri2_full_name;
  193.         unsigned char LSFAR * LSPTR usri2_usr_comment;
  194.         unsigned char LSFAR * LSPTR usri2_parms;
  195.         unsigned char LSFAR * LSPTR usri2_workstations;
  196.         long                        usri2_last_logon;
  197.         long                        usri2_last_logoff;
  198.         long                        usri2_acct_expires;
  199.         unsigned long               usri2_max_storage;
  200.         unsigned short              usri2_units_per_week;
  201.         unsigned char LSFAR * LSPTR usri2_logon_hours;
  202.         unsigned short              usri2_bad_pw_count;
  203.         unsigned short              usri2_num_logons;
  204.         unsigned char LSFAR * LSPTR usri2_logon_server;
  205.         unsigned short              usri2_country_code;
  206.         unsigned short              usri2_code_page;
  207. };      /* user_info_2 */
  208.  
  209. struct user_info_10 {
  210.         unsigned char               usri10_name[UNLEN+1];
  211.         unsigned char               usri10_pad_1;
  212.         unsigned char LSFAR * LSPTR usri10_comment;
  213.         unsigned char LSFAR * LSPTR usri10_usr_comment;
  214.         unsigned char LSFAR * LSPTR usri10_full_name;
  215. };      /* user_info_10 */
  216.  
  217. struct user_info_11 {
  218.         unsigned char               usri11_name[UNLEN+1];
  219.         unsigned char               usri11_pad_1;
  220.         unsigned char LSFAR * LSPTR usri11_comment;
  221.         unsigned char LSFAR * LSPTR usri11_usr_comment;
  222.         unsigned char LSFAR * LSPTR usri11_full_name;
  223.         unsigned short              usri11_priv;
  224.         unsigned long               usri11_auth_flags;
  225.         long                        usri11_password_age;
  226.         unsigned char LSFAR * LSPTR usri11_home_dir;
  227.         unsigned char LSFAR * LSPTR usri11_parms;
  228.         long                        usri11_last_logon;
  229.         long                        usri11_last_logoff;
  230.         unsigned short              usri11_bad_pw_count;
  231.         unsigned short              usri11_num_logons;
  232.         unsigned char LSFAR * LSPTR usri11_logon_server;
  233.         unsigned short              usri11_country_code;
  234.         unsigned char LSFAR * LSPTR usri11_workstations;
  235.         unsigned long               usri11_max_storage;
  236.         unsigned short              usri11_units_per_week;
  237.         unsigned char LSFAR * LSPTR usri11_logon_hours;
  238.         unsigned short              usri11_code_page;
  239. };      /* user_info_11 */
  240.  
  241.  
  242.  
  243. #ifdef PURE_32
  244.  
  245. /*****************************************************
  246. **
  247. ** user32_info_201  (for Net32... APIs only)
  248. **
  249. ******************************************************
  250. */
  251. typedef struct user32_info_201 {
  252.    unsigned char   usri201_name[UNLEN+1];
  253.    unsigned char   usri201_pad_1[3];
  254.    unsigned char * usri201_full_name;
  255.    unsigned char * usri201_comment;
  256.    unsigned char * usri201_usr_comment;
  257.    unsigned char   usri201_password[ENCRYPTED_PWLEN];
  258.    long            usri201_password_age;
  259.    unsigned long   usri201_priv;
  260.    unsigned char * usri201_home_dir;
  261.    unsigned long   usri201_flags;
  262.    unsigned char * usri201_script_path;
  263.    unsigned long   usri201_auth_flags;
  264.    unsigned char * usri201_parms;
  265.    unsigned char * usri201_workstations;
  266.    long            usri201_acct_expires;
  267.    unsigned long   usri201_max_storage;
  268.    unsigned char * usri201_logon_hours;
  269.    unsigned char * usri201_logon_server;
  270.    unsigned long   usri201_country_code;
  271.    unsigned long   usri201_code_page;
  272.    unsigned char * usri201_default_realm;
  273.    unsigned char * usri201_dce_primary_group;
  274.    unsigned char * usri201_dce_policy_group;
  275.    unsigned char * usri201_pwstrength_server;
  276. } user32_info_201_t;
  277.  
  278.  
  279. #endif /* PURE_32 */
  280.  
  281.  
  282. /*
  283.  *      For User Modals
  284. */
  285.  
  286. struct  user_modals_info_0 {
  287.         unsigned short  usrmod0_min_passwd_len;
  288.         unsigned long   usrmod0_max_passwd_age;
  289.         unsigned long   usrmod0_min_passwd_age;
  290.         unsigned long   usrmod0_force_logoff;
  291.         unsigned short  usrmod0_password_hist_len;
  292.         unsigned short  usrmod0_maxbadpw;
  293. };      /* user_modals_info_0 */
  294.  
  295.  
  296. struct  user_modals_info_1 {
  297.         unsigned short              usrmod1_role;
  298.         unsigned char LSFAR * LSPTR usrmod1_primary;
  299. };      /* user_modals_info_1 */
  300.  
  301.  
  302. #ifdef PURE_32
  303. /****************************************************************
  304.  *                                                              *
  305.  *                  Function prototypes - USER                  *
  306.  *                   for "pure" 32-bit only                     *
  307.  *                                                              *
  308.  ****************************************************************/
  309.  
  310. extern API32_FUNCTION
  311.   Net32UserAdd ( const unsigned char * pszServer,
  312.                  unsigned long         ulLevel,
  313.                  unsigned char       * pbBuffer,
  314.                  unsigned long         ulBuffer,         /*was USHORT */
  315.                  unsigned char       * pStatusBuf);
  316.  
  317. extern API32_FUNCTION
  318.   Net32UserDel ( const unsigned char   *pszServer,
  319.                  unsigned char         *pszUserName,
  320.                  unsigned char         *pStatusBuf);
  321.  
  322. extern API32_FUNCTION
  323.   Net32UserEnum ( const unsigned char * pszServer,
  324.                   unsigned long         ulLevel,         /*was signed short */
  325.                   unsigned char       * pbBuffer,
  326.                   unsigned long         ulBuffer,        /*was USHORT */
  327.                   unsigned long       * pulEntriesRead,  /*was USHORT */
  328.                   unsigned long       * pulTotalAvail,   /*was USHORT */
  329.                   unsigned char       * pStatusBuf);
  330.  
  331. extern API32_FUNCTION
  332.   Net32UserGetInfo ( const unsigned char * pszServer,
  333.                      unsigned char       * pszUserName,
  334.                      unsigned long         ulLevel,
  335.                      unsigned char       * pbBuffer,
  336.                      unsigned long         ulBuffer,         /*was USHORT */
  337.                      unsigned long       * pulTotalAvail,    /*was USHORT */
  338.                      unsigned char       * pStatusBuf);
  339.  
  340. extern API32_FUNCTION
  341.   Net32UserSetInfo ( const unsigned char * pszServer,
  342.                      unsigned char       * pszUserName,
  343.                      unsigned long         ulLevel,
  344.                      unsigned char       * pbBuffer,
  345.                      unsigned long         ulBuffer,      /*was USHORT */
  346.                      unsigned long         ulParmNum,     /*was signed short */
  347.                      unsigned char       * pStatusBuf);
  348.  
  349. extern API32_FUNCTION
  350.   Net32UserPasswordSet ( const unsigned char * pszServer,
  351.                          unsigned char       * pszUserName,
  352.                          unsigned char       * pszOldPassword,
  353.                          unsigned char       * pszNewPassword,
  354.                          unsigned char       * pszReserved);
  355.  
  356. extern API32_FUNCTION
  357.   Net32UserGetGroups ( const unsigned char * pszServer,
  358.                        const unsigned char * pszUserName,
  359.                        unsigned long         ulLevel,      /*was signed short*/
  360.                        unsigned char       * pbBuffer,
  361.                        unsigned long         ulBuffer,        /*was USHORT*/
  362.                        unsigned long       * pulEntriesRead,  /*was USHORT*/
  363.                        unsigned long       * pulTotalAvail,   /*was USHORT*/
  364.                        unsigned char       * pStatusBuf);
  365.  
  366. extern API32_FUNCTION
  367.   Net32UserSetGroups ( const unsigned char * pszServer,
  368.                        const unsigned char * pszUserName,
  369.                        unsigned long         ulLevel,    /*was signed short*/
  370.                        unsigned char       * pbBuffer,
  371.                        unsigned long         ulBuffer,       /*was USHORT*/
  372.                        unsigned long         ulEntries,  /*was USHORT*/
  373.                        unsigned char       * pszReserved);
  374.  
  375. extern API32_FUNCTION
  376.   Net32UserModalsGet ( const unsigned char * pszServer,
  377.                        unsigned long         ulLevel,
  378.                        unsigned char       * pbBuffer,
  379.                        unsigned long         ulBuffer,        /*was USHORT */
  380.                        unsigned long       * pulTotalAvail,   /*was USHORT */
  381.                        unsigned char       * pszReserved);
  382.  
  383. extern API32_FUNCTION
  384.   Net32UserModalsSet ( const unsigned char * pszServer,
  385.                        unsigned long         ulLevel,      /*was signed short */
  386.                        unsigned char       * pbBuffer,
  387.                        unsigned long         ulBuffer,     /*was USHORT */
  388.                        unsigned long         ulParmNum,    /*was USHORT */
  389.                        unsigned char       * pszReserved);
  390.  
  391. extern API32_FUNCTION
  392.   Net32UserValidate2 ( unsigned char   * pszServer,
  393.                        unsigned long     ulLevel,        /*was signed short */
  394.                        unsigned char   * pbBuffer,
  395.                        unsigned long     ulBuffer,       /*was SHORT */
  396.                        unsigned long     ulReserved2,    /*was SHORT */
  397.                        unsigned long   * pulTotalAvail,  /*was SHORT */
  398.                        unsigned char   * pszReserved);
  399.  
  400. extern API32_FUNCTION
  401. Net32UserContextRenewal(unsigned char  * pszServer,         /* @f09 */
  402.                         unsigned char  * piToken,
  403.                         unsigned short   cbiToken,
  404.                         unsigned char  * poToken,
  405.                         unsigned short   cboToken,
  406.                         unsigned short * pcboToken  );
  407.  
  408. #endif /* PURE_32 */
  409.  
  410.  
  411.  
  412.  
  413. /*
  414.  *      For User Logon Validation
  415. */
  416.  
  417. struct user_logon_req_1 {
  418.         unsigned char               usrreq1_name[UNLEN+1];
  419.         unsigned char               usrreq1_pad_1;
  420.         unsigned char               usrreq1_password[SESSION_PWLEN];
  421.         unsigned char LSFAR * LSPTR usrreq1_workstation;
  422. };      /* user_logon_req_1 */
  423.  
  424.  
  425. struct user_logon_info_0 {
  426.         unsigned char   usrlog0_eff_name[UNLEN+1];
  427.         unsigned char   usrlog0_pad_1;
  428. };      /* user_logon_info_0 */
  429.  
  430. struct user_logon_info_1 {
  431.         unsigned short              usrlog1_code;
  432.         unsigned char               usrlog1_eff_name[UNLEN+1];
  433.         unsigned char               usrlog1_pad_1;
  434.         unsigned short              usrlog1_priv;
  435.         unsigned long               usrlog1_auth_flags;
  436.         unsigned short              usrlog1_num_logons;
  437.         unsigned short              usrlog1_bad_pw_count;
  438.         unsigned long               usrlog1_last_logon;
  439.         unsigned long               usrlog1_last_logoff;
  440.         unsigned long               usrlog1_logoff_time;
  441.         unsigned long               usrlog1_kickoff_time;
  442.         long                        usrlog1_password_age;
  443.         unsigned long               usrlog1_pw_can_change;
  444.         unsigned long               usrlog1_pw_must_change;
  445.         unsigned char LSFAR * LSPTR usrlog1_computer;
  446.         unsigned char LSFAR * LSPTR usrlog1_domain;
  447.         unsigned char LSFAR * LSPTR usrlog1_script_path;
  448.         unsigned long               usrlog1_reserved1;
  449. };      /* user_logon_info_1 */
  450.  
  451.  
  452. struct user_logon_info_2 {
  453.         unsigned char               usrlog2_eff_name[UNLEN+1];
  454.         unsigned char               usrlog2_pad_1;
  455.         unsigned char LSFAR * LSPTR usrlog2_computer;
  456.         unsigned char LSFAR * LSPTR usrlog2_full_name;
  457.         unsigned char LSFAR * LSPTR usrlog2_usrcomment;
  458.         unsigned long               usrlog2_logon_time;
  459. };      /* user_logon_info_2 */
  460.  
  461.  
  462.  
  463.  
  464. struct user_logoff_req_1 {
  465.         unsigned char   usrlfreq1_name[UNLEN+1];
  466.         unsigned char   usrlfreq1_pad_1;
  467.         unsigned char   usrlfreq1_workstation[CNLEN+1];
  468. };      /* user_logoff_req_1 */
  469.  
  470. struct user_logoff_info_1 {
  471.         unsigned short  usrlogf1_code;
  472.         unsigned long   usrlogf1_duration;
  473.         unsigned short  usrlogf1_num_logons;
  474. };      /* user_logoff_info_1 */
  475.  
  476. /****************************************************************
  477.  *                                                              *
  478.  *              Special values and constants - USER             *
  479.  *                                                              *
  480.  ****************************************************************/
  481.  
  482.  
  483. /*
  484.  *      Bit masks for field usriX_flags of user_info_X (X = 0/1).
  485.  */
  486.  
  487. #define         UF_SCRIPT               0x1
  488. #define         UF_ACCOUNTDISABLE       0x2
  489. #define         UF_DELETE_PROHIBITED    0x4
  490. #define         UF_HOMEDIR_REQUIRED     0x8
  491. #define         UF_PASSWD_NOTREQD       0x20
  492. #define         UF_PASSWD_CANT_CHANGE   0x40
  493.  
  494. /*
  495.  *      Bit masks for field usri2_auth_flags of user_info_2.
  496. */
  497.  
  498. #define         AF_OP_PRINT             0x1
  499. #define         AF_OP_COMM              0x2
  500. #define         AF_OP_SERVER            0x4
  501. #define         AF_OP_ACCOUNTS          0x8
  502.  
  503.  
  504. /*
  505.  *      UAS role manifests under NETLOGON
  506.  */
  507. #define         UAS_ROLE_STANDALONE     0
  508. #define         UAS_ROLE_MEMBER         1
  509. #define         UAS_ROLE_BACKUP         2
  510. #define         UAS_ROLE_PRIMARY        3
  511.  
  512. /*
  513.  *      Values for parmnum for NetUserSetInfo.
  514.  */
  515.  
  516. /* LM1.0 style */
  517. #define         U1_ALL                  0
  518. #define         U1_NAME                 1
  519. #define         U1_PAD                  2
  520. #define         U1_PASSWD               3
  521. #define         U1_PASSWDAGE            4
  522. #define         U1_PRIV                 5
  523. #define         U1_DIR                  6
  524. #define         U1_COMMENT              7
  525. #define         U1_USER_FLAGS           8
  526. #define         U1_SCRIPT_PATH          9
  527.  
  528.  
  529. /* LM2.0 style */
  530. #ifndef  PARMNUM_ALL
  531. #define         PARMNUM_ALL             0
  532. #endif
  533.  
  534. #define         PARMNUM_NAME            1
  535. #define         PARMNUM_PAD             2
  536. #define         PARMNUM_PASSWD          3
  537. #define         PARMNUM_PASSWDAGE       4
  538. #define         PARMNUM_PRIV            5
  539. #define         PARMNUM_DIR             6
  540. #define         PARMNUM_COMMENT         7
  541. #define         PARMNUM_USER_FLAGS      8
  542. #define         PARMNUM_SCRIPT_PATH     9
  543. #define         PARMNUM_AUTH_FLAGS      10
  544. #define         PARMNUM_FULL_NAME       11
  545. #define         PARMNUM_USR_COMMENT     12
  546. #define         PARMNUM_PARMS           13
  547. #define         PARMNUM_WORKSTATIONS    14
  548. #define         PARMNUM_ACCT_EXPIRES    17
  549. #define         PARMNUM_MAX_STORAGE     18
  550. #define         PARMNUM_UNITS_PER_WEEK  19
  551. #define         PARMNUM_LOGON_HOURS     20
  552. #define         PARMNUM_LOGON_SERVER    23
  553. #define         PARMNUM_COUNTRY_CODE    24
  554. #define         PARMNUM_CODE_PAGE       25
  555. #define         PARMNUM_PASSWD_EXPIRED 100
  556. #define         PARMNUM_DEFAULT_REALM     200
  557. #define         PARMNUM_PRIMARY_GROUP     201
  558. #define         PARMNUM_POLICY_GROUP      202
  559. #define         PARMNUM_PWSYNC_SEC_LEVEL  203
  560. #define         PARMNUM_PWSTRENGTH_SERVER 204
  561.  
  562.  
  563. /* PWSYNC protect level info */
  564. /* NOTE: These must be kept in sync with the protect levels specified     */
  565. /*       in <dce/rpcbase.h>.                                              */
  566. #define  PWSYNC_SEC_DEFAULT         0  /* rpc_c_protect_level_default     */
  567. #define  PWSYNC_SEC_PKTINTEG        5  /* rpc_c_protect_level_pkt_integ   */
  568. #define  PWSYNC_SEC_PKTPRIVACY      6  /* rpc_c_protect_level_pkt_privacy */
  569. #define  PWSYNC_SEC_CDMF            7  /* rpc_c_protect_level_cdmf_priv   */
  570.  
  571.  
  572.  
  573. /*
  574.  *      For SetInfo call (parmnum 0) when password change not required
  575.  */
  576. #define         NULL_USERSETINFO_PASSWD         "              "
  577.  
  578.  
  579.  
  580. #define         TIMEQ_FOREVER                   ((unsigned long) -1L)
  581. #define         USER_MAXSTORAGE_UNLIMITED       ((unsigned long) -1L)
  582. #define         USER_NO_LOGOFF                  ((unsigned long) -1L)
  583. #define         UNITS_PER_DAY                   24
  584. #define         UNITS_PER_WEEK                  UNITS_PER_DAY * 7
  585.  
  586.  
  587. /*
  588.  *      Privilege levels (user_info_X field usriX_priv (X = 0/1)).
  589.  */
  590. #define         USER_PRIV_MASK          0x3
  591. #define         USER_PRIV_GUEST         0
  592. #define         USER_PRIV_USER          1
  593. #define         USER_PRIV_ADMIN         2
  594.  
  595. /*
  596.  *      user modals related defaults
  597.  */
  598. #define         MAX_PASSWD_LEN          PWLEN
  599. #define         DEF_MIN_PWLEN           6
  600. #define         DEF_PWUNIQUENESS        5
  601. #define         DEF_MAX_PWHIST          8
  602. #define         DEF_MAX_PWAGE           (unsigned long) 90*24*3600 /* 90 days */
  603. #define         DEF_MIN_PWAGE           (unsigned long) 0L         /* 0 days */
  604. #define         DEF_FORCE_LOGOFF        (unsigned long) 0xffffffff /* never */
  605. #define         DEF_MAX_BADPW           0                          /* no limit*/
  606. #define         ONE_DAY                 (unsigned long) 01*24*3600 /* 01 day  */
  607. /*
  608.  *      User Logon Validation (codes returned)
  609. */
  610. #define         VALIDATED_LOGON         0
  611. #define         PASSWORD_EXPIRED        2
  612. #define         NON_VALIDATED_LOGON     3
  613.  
  614. #define         VALID_LOGOFF            1
  615.  
  616.  
  617. /*
  618.  *      parmnum manifests for user modals
  619. */
  620.  
  621. #define         MODAL0_PARMNUM_ALL              0
  622. #define         MODAL0_PARMNUM_MIN_LEN          1
  623. #define         MODAL0_PARMNUM_MAX_AGE          2
  624. #define         MODAL0_PARMNUM_MIN_AGE          3
  625. #define         MODAL0_PARMNUM_FORCEOFF         4
  626. #define         MODAL0_PARMNUM_HISTLEN          5
  627. #define         MODAL0_PARMNUM_RESERVED1        6
  628.  
  629. #define         MODAL1_PARMNUM_ALL              0
  630. #define         MODAL1_PARMNUM_ROLE             1
  631. #define         MODAL1_PARMNUM_PRIMARY          2
  632.  
  633.  
  634. #endif /* NETUSER_INCLUDED */
  635.  
  636.  
  637. /****************************************************************
  638.  *                                                              *
  639.  *              Group Class                                     *
  640.  *                                                              *
  641.  ****************************************************************/
  642.  
  643. #if (defined( INCL_NETGROUP ) || !defined( LAN_INCLUDED )) \
  644.     && !defined( NETGROUP_INCLUDED )
  645.  
  646. #define NETGROUP_INCLUDED
  647.  
  648.  
  649. /****************************************************************
  650.  *                                                              *
  651.  *              Function prototypes - GROUP                     *
  652.  *                                                              *
  653.  ****************************************************************/
  654.  
  655. extern API_FUNCTION
  656.   NetGroupAdd ( const unsigned char LSFAR * pszServer,
  657.                 short                       sLevel,
  658.                 unsigned char LSFAR *       pbBuffer,
  659.                 unsigned short              usBuffer );
  660.  
  661. extern API_FUNCTION
  662.   NetGroupDel ( const unsigned char LSFAR * pszServer,
  663.                 unsigned char LSFAR *       pszGroupName );
  664.  
  665.  
  666. extern API_FUNCTION
  667.   NetGroupEnum ( const unsigned char LSFAR *     pszServer,
  668.                  short                           sLevel,
  669.                  unsigned char LSFAR *           pbBuffer,
  670.                  unsigned short                  usBuffer,
  671.                  unsigned short LSFAR *          pusEntriesRead,
  672.                  unsigned short LSFAR *          pusTotalAvail );
  673.  
  674. extern API_FUNCTION
  675.   NetGroupAddUser ( const unsigned char LSFAR * pszServer,
  676.                     unsigned char LSFAR *       pszGroupName,
  677.                     unsigned char LSFAR *       pszUserName );
  678.  
  679.  
  680. extern API_FUNCTION
  681.   NetGroupDelUser ( const unsigned char LSFAR * pszServer,
  682.                     unsigned char LSFAR *       pszGroupName,
  683.                     unsigned char LSFAR *       pszUserName );
  684.  
  685.  
  686. extern API_FUNCTION
  687.   NetGroupGetUsers ( const unsigned char LSFAR *     pszServer,
  688.                      const unsigned char LSFAR *     pszGroupName,
  689.                      short                           sLevel,
  690.                      unsigned char LSFAR *           pbBuffer,
  691.                      unsigned short                  usBuffer,
  692.                      unsigned short LSFAR *          pusEntriesRead,
  693.                      unsigned short LSFAR *          pusTotalAvail );
  694.  
  695. extern API_FUNCTION
  696.   NetGroupSetUsers ( const unsigned char LSFAR * pszServer,
  697.                      const unsigned char LSFAR * pszGroupName,
  698.                      short                       sLevel,
  699.                      unsigned char LSFAR *       pbBuffer,
  700.                      unsigned short              usBuffer,
  701.                      unsigned short              usEntries );
  702.  
  703. extern API_FUNCTION
  704.   NetGroupGetInfo ( const unsigned char LSFAR *     pszServer,
  705.                     unsigned char LSFAR *           pszGroupName,
  706.                     short                           sLevel,
  707.                     unsigned char LSFAR *           pbBuffer,
  708.                     unsigned short                  usBuffer,
  709.                     unsigned short LSFAR *          pusTotalAvail );
  710.  
  711. extern API_FUNCTION
  712.   NetGroupSetInfo ( const unsigned char LSFAR * pszServer,
  713.                     unsigned char LSFAR *       pszGroupName,
  714.                     short                       sLevel,
  715.                     unsigned char LSFAR *       pbBuffer,
  716.                     unsigned short              usBuffer,
  717.                     short                       sParmNum );
  718.  
  719.  
  720. /****************************************************************
  721.  *                                                              *
  722.  *             Data structure templates - GROUP                 *
  723.  *                                                              *
  724.  ****************************************************************/
  725.  
  726.  
  727. struct group_info_0 {
  728.         unsigned char               grpi0_name[GNLEN+1];
  729. };      /* group_info_0 */
  730.  
  731. struct group_info_1 {
  732.         unsigned char               grpi1_name[GNLEN+1];
  733.         unsigned char               grpi1_pad;
  734.         unsigned char LSFAR * LSPTR grpi1_comment;
  735. };      /* group_info_1 */
  736.  
  737. struct group_users_info_0 {
  738.         unsigned char               grui0_name[UNLEN+1];
  739. };      /* group_users_info_0 */
  740.  
  741.  
  742.  
  743. /****************************************************************
  744.  *                                                              *
  745.  *              Function prototypes - GROUP                     *
  746.  *              for "pure" 32-bit code                          *
  747.  *                                                              *
  748.  ****************************************************************/
  749. #ifdef PURE_32
  750. extern API32_FUNCTION
  751.   Net32GroupAdd ( const unsigned char   * pszServer,
  752.                   unsigned long           ulLevel,
  753.                   unsigned char         * pbBuffer,
  754.                   unsigned long           ulBuffer,
  755.                   unsigned char         * pStatusBuf);
  756.  
  757. extern API32_FUNCTION
  758.   Net32GroupDel ( const unsigned char* pszServer,
  759.                   unsigned char      * pszGroupName,
  760.                   unsigned char      * pszReserved);
  761.  
  762. extern API32_FUNCTION
  763.   Net32GroupEnum ( const unsigned char    * pszServer,
  764.                    unsigned long            ulLevel,
  765.                    unsigned char          * pbBuffer,
  766.                    unsigned long            ulBuffer,
  767.                    unsigned long          * pulEntriesRead,
  768.                    unsigned long          * pulTotalAvail,
  769.                    unsigned char          * pStatusBuf);
  770.  
  771. extern API32_FUNCTION
  772.   Net32GroupAddUser ( const unsigned char* pszServer,
  773.                       unsigned char      * pszGroupName,
  774.                       unsigned char      * pszUserName,
  775.                       unsigned char      * pStatusBuf);
  776.  
  777. extern API32_FUNCTION
  778.   Net32GroupDelUser ( const unsigned char* pszServer,
  779.                       unsigned char      * pszGroupName,
  780.                       unsigned char      * pszUserName,
  781.                       unsigned char      * pszReserved);
  782.  
  783. extern API32_FUNCTION
  784.   Net32GroupGetUsers ( const unsigned char    * pszServer,
  785.                        const unsigned char    * pszGroupName,
  786.                        unsigned long            ulLevel,
  787.                        unsigned char          * pbBuffer,
  788.                        unsigned long            ulBuffer,
  789.                        unsigned long          * pulEntriesRead,
  790.                        unsigned long          * pulTotalAvail,
  791.                        unsigned char          * pszReserved);
  792.  
  793. extern API32_FUNCTION
  794.   Net32GroupSetUsers ( const unsigned char    * pszServer,
  795.                        const unsigned char    * pszGroupName,
  796.                        unsigned long            ulLevel,
  797.                        unsigned char          * pbBuffer,
  798.                        unsigned long            ulBuffer,
  799.                        unsigned long            ulEntries,
  800.                        unsigned char          * pszReserved);
  801.  
  802. extern API32_FUNCTION
  803.   Net32GroupGetInfo ( const unsigned char * pszServer,
  804.                       unsigned char       * pszGroupName,
  805.                       unsigned long         ulLevel,
  806.                       unsigned char       * pbBuffer,
  807.                       unsigned long         ulBuffer,
  808.                       unsigned long       * pulTotalAvail,
  809.                       unsigned char       * pszReserved);
  810.  
  811. extern API32_FUNCTION
  812.   Net32GroupSetInfo ( const unsigned char * pszServer,
  813.                       unsigned char       * pszGroupName,
  814.                       unsigned long         ulLevel,
  815.                       unsigned char       * pbBuffer,
  816.                       unsigned long         ulBuffer,
  817.                       unsigned long         ulParmNum,
  818.                       unsigned char       * pszReserved);
  819. #endif /* PURE_32*/
  820.  
  821.  
  822. /****************************************************************
  823.  *                                                              *
  824.  *              Special values and constants - GROUP            *
  825.  *                                                              *
  826.  ****************************************************************/
  827.  
  828. #define         GROUPIDMASK     0x8000  /* MSB set if uid refers to a group */
  829.  
  830. /*
  831.  *      Predefined group for all normal users, administrators and guests
  832.  *      LOCAL is a special group for pinball local security.
  833. */
  834.  
  835. #define         GROUP_SPECIALGRP_USERS          "USERS"
  836. #define         GROUP_SPECIALGRP_ADMINS         "ADMINS"
  837. #define         GROUP_SPECIALGRP_GUESTS         "GUESTS"
  838. #define         GROUP_SPECIALGRP_LOCAL          "LOCAL"
  839.  
  840.  
  841. /*
  842.  *      parmnum manifests for SetInfo calls (only comment is settable)
  843. */
  844.  
  845. #define         GRP1_PARMNUM_ALL        0
  846. #define         GRP1_PARMNUM_NAME       1
  847. #define         GRP1_PARMNUM_COMMENT    2
  848.  
  849. #endif /* NETGROUP_INCLUDED */
  850.  
  851. /****************************************************************
  852.  *                                                              *
  853.  *                 Access Class                                 *
  854.  *                                                              *
  855.  ****************************************************************/
  856.  
  857. #if (defined( INCL_NETACCESS ) || !defined( LAN_INCLUDED )) \
  858.     && !defined( NETACCESS_INCLUDED )
  859.  
  860. #define NETACCESS_INCLUDED
  861.  
  862.  
  863. /****************************************************************
  864.  *                                                              *
  865.  *                  Function prototypes - ACCESS                *
  866.  *                                                              *
  867.  ****************************************************************/
  868.  
  869. extern API_FUNCTION
  870.   NetAccessAdd ( const unsigned char LSFAR * pszServer,
  871.                  short                       sLevel,
  872.                  unsigned char LSFAR *       pbBuffer,
  873.                  unsigned short              cbBuffer );
  874.  
  875. extern API_FUNCTION
  876.   NetAccessCheck ( unsigned char LSFAR *  pszReserved,
  877.                    unsigned char LSFAR *  pszUserName,
  878.                    unsigned char LSFAR *  pszResource,
  879.                    unsigned short         usOperation,
  880.                    unsigned short LSFAR * pusResult );
  881.  
  882. extern API_FUNCTION
  883.   NetAccessDel ( const unsigned char LSFAR * pszServer,
  884.                  unsigned char LSFAR *       pszResource );
  885.  
  886. extern API_FUNCTION
  887.   NetAccessEnum ( const unsigned char LSFAR * pszServer,
  888.                   unsigned char LSFAR *       pszBasePath,
  889.                   short                       fsRecursive,
  890.                   short                       sLevel,
  891.                   unsigned char LSFAR *       pbBuffer,
  892.                   unsigned short              cbBuffer,
  893.                   unsigned short LSFAR *      pcEntriesRead,
  894.                   unsigned short LSFAR *      pcTotalAvail );
  895.  
  896. extern API_FUNCTION
  897.   NetAccessGetInfo ( const unsigned char LSFAR * pszServer,
  898.                      unsigned char LSFAR *       pszResource,
  899.                      short                       sLevel,
  900.                      unsigned char LSFAR *       pbBuffer,
  901.                      unsigned short              cbBuffer,
  902.                      unsigned short LSFAR *      pcbTotalAvail );
  903.  
  904. extern API_FUNCTION
  905.   NetAccessSetInfo ( const unsigned char LSFAR * pszServer,
  906.                      unsigned char LSFAR *       pszResource,
  907.                      short                       sLevel,
  908.                      unsigned char LSFAR *       pbBuffer,
  909.                      unsigned short              cbBuffer,
  910.                      short                       sParmNum );
  911.  
  912. extern API_FUNCTION
  913.   NetAccessGetUserPerms ( unsigned char LSFAR *  pszServer,
  914.                           unsigned char LSFAR *  pszUgName,
  915.                           unsigned char LSFAR *  pszResource,
  916.                           unsigned short LSFAR * pusPerms );
  917.  
  918. extern API_FUNCTION
  919.   NetAccessApply( const unsigned char LSFAR * pszServer,
  920.                   unsigned char LSFAR *       pszApplydir,
  921.                   unsigned char LSFAR *       pbBuffer,
  922.                   unsigned short              cbBuffer,
  923.                   unsigned char LSFAR *       pszreserved1,
  924.                   unsigned long               ulreserved2,
  925.                   unsigned long               uloptions);
  926.  
  927. /****************************************************************
  928.  *                                                              *
  929.  *              Data structure templates - ACCESS               *
  930.  *                                                              *
  931.  ****************************************************************/
  932.  
  933. struct access_list {
  934.         unsigned char   acl_ugname[UNLEN+1];
  935.         unsigned char   acl_ugname_pad_1;
  936.         short           acl_access;
  937. };      /* access_list */
  938.  
  939. struct access_info_0 {
  940.         unsigned char LSFAR * LSPTR acc0_resource_name;
  941. };      /* access_info_0 */
  942.  
  943. struct access_info_1 {
  944.         unsigned char LSFAR * LSPTR acc1_resource_name;
  945.         short                       acc1_attr;  /* See values below */
  946.         short                       acc1_count;
  947. };      /* access_info_1 */
  948.  
  949. struct applyerr_info_1 {
  950.         unsigned char LSFAR * LSPTR error_buf;
  951.         unsigned short error_code;
  952. };      /* applyerr_info_1 */
  953.  
  954. /* Supported values for "uloptions" parameter of NetAccessApply */
  955. #define APPLY_ABSOLUTE      0x01
  956.  
  957.  
  958.  
  959. #ifdef PURE_32
  960. /****************************************************************
  961.  *                                                              *
  962.  *           32-Bit Function prototypes - ACCESS                *
  963.  *                                                              *
  964.  ****************************************************************/
  965. extern API32_FUNCTION
  966.   Net32AccessAdd ( const unsigned char   * pszServer,
  967.                    unsigned long           ulLevel,      /*was signed short*/
  968.                    unsigned char         * pbBuffer,
  969.                    unsigned long           ulBuffer );   /*was USHORT*/
  970.  
  971. extern API32_FUNCTION
  972.   Net32AccessApply( const unsigned char * pszServer,
  973.                     unsigned char       * pszApplydir,
  974.                     unsigned char       * pbBuffer,
  975.                     unsigned long         ulBuffer,    /*was USHORT*/
  976.                     unsigned char       * pszreserved1,
  977.                     unsigned long         ulreserved2,
  978.                     unsigned long         uloptions);
  979.  
  980. extern API32_FUNCTION
  981.   Net32AccessCheck ( unsigned char * pszReserved,
  982.                      unsigned char * pszUserName,
  983.                      unsigned char * pszResource,
  984.                      unsigned long   ulOperation,  /*was short*/
  985.                      unsigned long * pulResult );  /*was short*/
  986.  
  987. extern API32_FUNCTION
  988.   Net32AccessDel ( const unsigned char* pszServer,
  989.                    unsigned char      * pszResource );
  990.  
  991. extern API32_FUNCTION
  992.   Net32AccessEnum ( const unsigned char   * pszServer,
  993.                     unsigned char         * pszBasePath,
  994.                     short                   fsRecursive,
  995.                     unsigned long           ulLevel,        /*was signed short*/
  996.                     unsigned char         * pbBuffer,
  997.                     unsigned long           cbBuffer,       /*was USHORT*/
  998.                     unsigned long         * pcEntriesRead,  /*was USHORT*/
  999.                     unsigned long         * pcTotalAvail ); /*was USHORT*/
  1000.  
  1001. extern API32_FUNCTION
  1002.   Net32AccessGetInfo ( const unsigned char * pszServer,
  1003.                        unsigned char       * pszResource,
  1004.                        unsigned long         ulLevel,
  1005.                        unsigned char       * pbBuffer,
  1006.                        unsigned long         cbBuffer,        /*was short*/
  1007.                        unsigned long       * pcbTotalAvail ); /*was short*/
  1008.  
  1009. extern API32_FUNCTION
  1010.   Net32AccessSetInfo ( const unsigned char * pszServer,
  1011.                        unsigned char       * pszResource,
  1012.                        unsigned long         ulLevel,     /*was signed short*/
  1013.                        unsigned char       * pbBuffer,
  1014.                        unsigned long         ulBuffer,    /*was short*/
  1015.                        unsigned long         ulParmNum ); /*was signed short*/
  1016.  
  1017. extern API32_FUNCTION
  1018.   Net32AccessGetUserPerms ( unsigned char * pszServer,
  1019.                             unsigned char * pszUgName,
  1020.                             unsigned char * pszResource,
  1021.                             unsigned long * pulPerms );  /*was short*/
  1022. #endif /* PURE_32 */
  1023.  
  1024.  
  1025. /****************************************************************
  1026.  *                                                              *
  1027.  *              Special values and constants - ACCESS           *
  1028.  *                                                              *
  1029.  ****************************************************************/
  1030.  
  1031. /*
  1032.  *      Maximum number of permission entries for each resource.
  1033.  */
  1034.  
  1035. #define MAXPERMENTRIES  64
  1036.  
  1037.  
  1038. /*
  1039.  *      Bit values for the access permissions.  ACCESS_ALL is a handy
  1040.  *      way to specify maximum permissions.  These are used in
  1041.  *      acl_access field of access_list structures.
  1042.  */
  1043. #define         ACCESS_NONE     0
  1044. #define         ACCESS_ALL     (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM)
  1045. #define         ACCESS_READ     0x1
  1046. #define         ACCESS_WRITE    0x2
  1047. #define         ACCESS_CREATE   0x4
  1048. #define         ACCESS_EXEC     0x8
  1049. #define         ACCESS_DELETE   0x10
  1050. #define         ACCESS_ATRIB    0x20
  1051. #define         ACCESS_PERM     0x40
  1052.  
  1053. #define         ACCESS_GROUP    0x8000
  1054.  
  1055. /*
  1056.  *      Bit values for the acc1_attr field of the access_info_1 structure.
  1057.  *      Only one bit is currently defined.
  1058.  */
  1059.  
  1060. #define         ACCESS_AUDIT            0x1
  1061.  
  1062. /*
  1063.  *      Parmnum value for NetAccessSetInfo.
  1064.  */
  1065.  
  1066. #define         ACCESS_ATTR_PARMNUM     2
  1067.  
  1068.  
  1069. /*
  1070.  *      ACCESS_LETTERS defines a letter for each bit position in
  1071.  *      the acl_access field of struct access_list.  Note that some
  1072.  *      bits have a corresponding letter of ' ' (space).
  1073.  */
  1074.  
  1075. #define         ACCESS_LETTERS          "RWCXDAP         "
  1076.  
  1077.  
  1078. #endif /* NETACCESS_INCLUDED */
  1079.  
  1080. /****************************************************************
  1081.  *                                                              *
  1082.  *              Domain Class                                    *
  1083.  *                                                              *
  1084.  ****************************************************************/
  1085.  
  1086. #if (defined( INCL_NETDOMAIN ) || !defined( LAN_INCLUDED )) \
  1087.     && !defined( NETDOMAIN_INCLUDED )
  1088.  
  1089. #define NETDOMAIN_INCLUDED
  1090.  
  1091.  
  1092. /****************************************************************
  1093.  *                                                              *
  1094.  *                  Function prototypes - DOMAIN                *
  1095.  *                                                              *
  1096.  ****************************************************************/
  1097.  
  1098. extern API_FUNCTION
  1099.   NetGetDCName ( const unsigned char LSFAR * pszServer,
  1100.                  const unsigned char LSFAR * pszDomain,
  1101.                  unsigned char LSFAR *       pbBuffer,
  1102.                  unsigned short              cbBuffer );
  1103.  
  1104. extern API_FUNCTION
  1105.   NetLogonEnum ( const unsigned char LSFAR * pszServer,
  1106.                  short                       sLevel,
  1107.                  unsigned char LSFAR *       pbBuffer,
  1108.                  unsigned short              cbBuffer,
  1109.                  unsigned short LSFAR *      pusEntriesRead,
  1110.                  unsigned short LSFAR *      pusTotalAvail );
  1111.  
  1112.  
  1113. #ifdef PURE_32
  1114. /********************************************************************
  1115.  *                                                                  *
  1116.  * Function prototypes - DOMAIN - for 32-bit code, mixed and "pure" *
  1117.  *                                                                  *
  1118.  ********************************************************************/
  1119.  
  1120. extern API32_FUNCTION
  1121.   Net32GetDCName ( const unsigned char * pszServer,
  1122.                    const unsigned char * pszDomain,
  1123.                    unsigned char       * pbBuffer,
  1124.                    unsigned long         ulBuffer );
  1125.  
  1126. extern API32_FUNCTION
  1127.   Net32LogonEnum ( const unsigned char * pszServer,
  1128.                    unsigned long         ulLevel,
  1129.                    unsigned char       * pbBuffer,
  1130.                    unsigned long         ulBuffer,
  1131.                    unsigned long       * pulEntriesRead,
  1132.                    unsigned long       * pulTotalAvail );
  1133.  
  1134. #endif /* PURE_32 */
  1135.  
  1136.  
  1137. /****************************************************************
  1138.  *                                                              *
  1139.  *              Special values and constants - DOMAIN           *
  1140.  *                                                              *
  1141.  ****************************************************************/
  1142.  
  1143. #define         LOGON_INFO_UNKNOWN      -1
  1144.  
  1145.  
  1146. #endif /* NETDOMAIN_INCLUDED */
  1147.  
  1148. #ifdef ANY_32_BIT
  1149. #pragma pack()
  1150. #endif
  1151.