Version 1.31     January 31, 97
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

 NNNN   NNN  444  444   PPPPPPPPP    AAAAAAAA   SSSSSSSSSS  SSSSSSSSSS
 NNNNN  NNN  444  444   PPP    PPP  AAA    AAA  SSS         SSS
 NNNNNNNNNN  444444444  PPPPPPPPP   AAAAAAAAAA  SSSSSSSSSS  SSSSSSSSSS
 NNN  NNNNN       444   PPP         AAA    AAA         SSS         SSS
 NNN   NNNN       444   PPP         AAA    AAA  SSSSSSSSSS  SSSSSSSSSS


Please send bug reports (or suggestions) to:
   Compuserve:    75600, 2274    
   Internet:      DCOLLINS@FASTLANE.NET

You can find the latest versions at:
   Compuserve:    forum NOVUSER     FileName:  N4PAxx.*
   Internet:      web page   http://www.fastlane.net/homepages/dcollins


Please see NDS-LIST.TXT for information on more utilities.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Basic rules are:

  You need to run DS.NLM version 4.89a  Aug 30,1995 or later.

  Verify that you set the TZ environment variable on your workstation.
      Example:  SET TZ=CST6CDT   for Central Standard Time.

  Verify that you have  SET NWLANGUAGE=ENGLISH

  You should have your NLS and Unicode files properly installed.  Normally,
  you can find these files under the NLS subdirectory on your C: drive,
  and also the SYS:\PUBLIC\NLS subdirectories.

  The utilities have been tested on:
    Server:
      Netware 4.10 (DS.NLM v4.89a or later)
      Netware 4.11.
    Workstation:
      DOS 5.0 - DOS 6.22 with Netware VLM 1.2 drivers,
      Windows 95 with Novell Client32.
      Windows 3.1x with VLM 1.2 drivers.


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =


Application:
============

   This utility is designed for the Helpdesk staff to view network user
   information relating to security and the capability to 'reset' the user
   password.  It is specifically designed for a Netware 4.10 network.

   It is composed of two parts:
   Server   - N4PASS.NLM that will run on the server which will do the
              real work for searching for users, reading attribute names
              and values, and changing the user's password.
   Client   - N4PASS.EXE that will run on the Helpdesk's workstation.
              It is Windows based, and is the 'frontend' for the tasks
              that the helpdesk wants done.

   Communication method:

   A common subdirectory that is used for transferring information
   between the server and the client.  This method makes its 'protocal
   less' and 'platform less' since the Client piece can be running on
   a Macintosh, Unix, or via a smart email agent... running the standard
   IPX/SPX, TCP/IP or other protocals.


Registration:
=============

   This software is freeware.  It is created to help network administrators
   'empower' the helpdesk staff.  Please be patient with any problems
   that you encounter with this utility.
   Here is a thought... if this utility has saved you alot of time, perhaps
   you can send me a company T-shirt, postcard or something.

   If you are interested in the source code, then please send $50 (US Dollars)
   to:   N4PASS source code; 1216 Hilburn Ct; Irving, TX; 75060; USA

   N4PASS.EXE  - written in MS Visual Basic 4.0 (16bit)
   N4PASS.NLM - written in Watcom C 9.0x with Novell SDK vol 4.


Disclaimer:
===========

   Please apply all standard disclaimers here.
   Seriously, this utility is meant to help you... not destroy your
   environment or waste your user's time.

   This utility uses only standard API calls from official Novell SDK
   releases and is compiled using Microsoft Visual C/C++ version 1.5.
   Large Memory model.

   If you find bugs, then let me know.  Otherwise, I can't fix them.

   If you wish to include any of these utilities found in this ZIP file
   in a publication, you must obtain written permission first.  Thank You


How to Install:
===============

The below instructions assume:
   . Drive letter F: is pointing to the SYS:\ subdirectory on the same
     server that your helpdesk staff are located on.  This same server
     will be running the N4PASS.NLM utility.
   . It is suggested that you do use the subdirectory name of SYS:\N4PASS
     unless your security policy or storage requirements require a different
     location.  If using a different location, make the necessary path
     changes to all references below and in the N4PASS.CFG file.
   . Utilities are unpacked onto a diskette in Drive A:.
   . It is very highly suggested that the user account that N4Pass.NLM
     will use to login to the network is an admin-equivalent.  If the
     account is not, then the account must have sufficient ACL to change
     user passwords and File System rights starting at the server's
     SYS:\N4PASS subdirectory.
     I believe, if the NLM account is not an Admin equal, then they
     will need:
         All objects rights except Supervisor.
         All property rights including Supervisor.
         Object trustees (ACL) grant only Read and Compare.
     Its simply alot better to have the NLM use an admin-equal account.
     For security... in summary:
         The account that the .NLM will use should be an admin-equal.
         The accounts that the Helpdesk staff use are 'normal' accounts.
            (no special ACL rights are needed)
     

Make the appropiate changes in the commands below if your environment is
different.

   1. Copy the N4PASS utility to the network server.

      F:
      MD F:\N4PASS
      MD F:\N4PASS\PASSWORD
      COPY A:\N4PASS.NLM F:\N4PASS
      COPY A:\N4PASS.CFG F:\N4PASS
      COPY A:\N4PASS.EXE F:\N4PASS\PASSWORD
      COPY A:\N4PASS.EXE F:\N4PASS\PASSWORD\N4PASSVB.EXE
       
   2. Setup security (trustee access rights) for the helpdesk staff.

      SYS:\N4PASS
         - No helpdesk staff should be able to 'read' from this
           subdirectory so it is suggested that you do not provide any
           trustee rights to this directory.  Further, since a password
           is kept in the N4PASS.CFG in this directory, it is very
           strongly suggested that you verify that no one has read access.
         - A file named N4PASS.LOG will be created in this subdirectory
           by the N4PASS.NLM app.

      SYS:\N4PASS\PASSWORD
         - HelpDesk staff will be using this directory to 'execute' the
           N4PASS.EXE utility and it will also be used as a 
           'ScanDirectory' for communication between N4PASS.EXE
           running on the workstation and the N4PASS.NLM running on the
           server.

           Rights needed by helpdesk staff to this subdirectory are:
           Create   - create inquire / password change requests.
           Read     - execute n4pass.exe, and read results from N4PASS.NLM.
           Erase    - erase the results when read.
           FileScan - your Windows app may need this.
           The command to setup trustee rights for a user is:
             RIGHTS SYS:\N4PASS\PASSWORD C R E F /NAME=HelpDeskUserObjectName
         - It is suggested that this subdirectory by 'FLAG'ged as 'Purge'
           immediate, so that the request/result file will be purged as
           soon as they are erased.
           The command to set this is:   FLAG SYS:\N4PASS\PASSWORD P /DO

   3. Configure the N4PASS.CFG file.

      In the SYS:\N4PASS subdirectory, there is a N4PASS.CFG file, that 
      you will need to configure.
      Specifically, you will need to ensure that the settings for the
      Admin-equal and password are correct.
      Also, verify that you set the value for the 'Seed' between 0 and
      10000.   This same value will be used later when configuring the
      (client) Windows workstation running N4PASS.EXE.

      For additional security:  (if you don't like setting the admin-equal
      object name and its password in the text file N4PASS.CFG.)
         - Set the 'network address restrictions' so that this account can
           be used only be the server network address only.   The easiest
           method to do this is:
           Load N4pass.Nlm, wait for it to login, Load Monitor, select
           Connection Information, move the cursor to the account name
           that you are using, and press Enter.  The network address
           should then be displayed.

   4. At the : console prompt on the Netware 4.10 server.

      Type at this : console prompt:

      LOAD SYS:\N4PASS\N4PASS

      When loaded it should create a new 'process' screen called N4PASS.
      (BTW: Use CTRL-ESC to rotate thru the different Netware screens.)

      If are not using the SYS:\N4PASS subdirectory for the 'base' of the
      .NLM, then you will need to specify the subdirectory as the 1st 
      parameter in the 'load' line.  For example, if you want the
      N4PASS.NLM to load from the subdirectory VOL1:\NLM-UTIL, then you
      would use:      LOAD VOL1:\NLM-UTIL\N4PASS VOL1:\NLM-UTIL

   5. Setting up N4PASS.EXE on the Window's based workstation.

      Execute Windows 3.10 or later.  You will need a NDS connection to
      the server.  (Use VLMs or the Novell Client32 if using Windows95)

      Create a new program group in your preferred 'program group':

      Description:         HelpDesk user Inquiry
      Command Line:        F:\N4PASS\PASSWORD\N4PASS.EXE /S=SeedValue
        (SeedValue must the same value that you used in N4PASS.CFG)
      Working Directory:   F:\N4PASS\PASSWORD

      Save the 'Program Items'.

      Command parameters:
         /D=     specify scan directory.  Normally, sys:\n4pass\password
                (you may have to use this parameter if client is Windows95)
         /TI=    sets of 15seconds for 'time out' message.  The default is 2,
             which equals 30 seconds.  If your tree is large, or you receive
             alot of 'no response from search request' messages, then, you
             will need to increase this value.
             Valid range is from 1 to 5000.
         /S=    Seed value.  The value must match the seed setting in the
             n4pass.cfg file.   If the value does not match the setting
             in the .cfg file, then, the new password for the 'resetted'
             user will not match what the N4Pass screen says.  This will
             basically, yield in a 'Access Denied' on the user trying to
             login.  You (Admin) will then need to look in the N4Pass.Log
             file, to see what the user's password was actually changed to.
             (So, verify that the Seed value is the same.)
         /Specify   - allow the helpdesk to specify the new password.
             You must change the default setting for this in the n4pass.cfg
             file.  (see AllowSpecifyNewPassword setting)

   6. Miscellaneous items to check.

      Verify that you have 'Intruder Detection' turned on for the containers
      that your user accounts are in.  If you do not, then it makes your
      system more open to 'brute force' password attack.

   7. Installation is done.

      You will not need to UNLOAD/LOAD N4PASS.NLM unless you make changes
      to the N4PASS.CFG file.  If you wish, you may want to add the LOAD
      line to your SYS:\SYSTEM\AUTOEXEC.NCF file.

      The helpdesk staff can now execute the N4PASS.EXE utility to view
      user information and issue password changes.



N4PASS.EXE Notes:  (Also, usefull info for the Helpdesk person)
===============================================================

   For the 'search' prompt, you can type in the 'short' name
   of the network user to search for.  In other words, you do not need to
   type in the full network name of the user.  

   Wildcard (*) is supported.
   For example,  DCOL*,  will return a list of all users with the
   network name starting with the letters DCOL.
   If you know the users last name, you can always use a search text
   such as  *SMITH*  to return a list of all users with the word 'Smith'
   in their (common) network name.

   The Helpdesk must type in their personal network password at the
   HelpDesk verify prompt when wanting to change the endusers password.

   When the Helpdesk staff, resets a enduser's password, it is meant as a
   temporary password.  This is just like when you (as Admin) set a
   enduser's password, their password will expire, so that they will be
   prompted for a new password when they login.
   (One way to test this, is to do an inquire on the person after resetting
   their password, and you can see that their password expire date is set
   to an already past date.)



How is the password calculated:
===============================

   The password display from a 'password change' request is not sent over
   the network wire between the server and the client.  Instead, the client
   (N4PASS.EXE) and server (N4PASS.NLM) use a common calculation with
   multiple variables to create the password.

   The variables that go into a password are:
       1. Month
       2. Day
       3. FileName of 'request' file.
       4. Requester (helpdesk) object name.
       5. User object name.
       6. Seed Number.
   Variable #3 can be only found by a network snifer device on the network
   wire or another helpdesk workstation.
   Variable #6 is set by you when configuring N4PASS.EXE on the
   workstation and in the N4PASS.CFG (which noone should have read
   access too) it is 'relatively' safe.
   Also, since, the HelpDesk person should already have the user on the
   phone, and the user should be then logging in under the 'temporary'
   generated password and then changing to a permanent password, then
   the 'time of exposure' should be short.

   The password characters are composed of  0 thru 9  and  A thru F.


Futures: (planned)
==================

   Whats new in version 1.0:

   .  When n4pass.nlm changes the user's password, it will also reset
      the Intruder Lockout.

   Whats new in version 1.1:  Nov 31, 1995

   .  Add a 'prefix' password for sites that need a greater than 5
      character password.

   Whats new in version 1.2:  Dec 31, 1995

   .  Added the capability of N4Pass to use a password file.  With this
      additional values are possible when setting passwords.
   .  Added 'Add 1 Grace Login' button.
   .  It was found, that DSAPI.NLM needs to be loaded before loading
      N4PASS.NLM.  The newer .NLM will autoload DSAPI.NLM and CLIB.NLM
      if not already loaded.
   .  Increased the file-communication timeout to 15 seconds.  Basically,
      the n4pass.exe will now wait for 15 seconds before it will display
      a dialog saying that it can not communicate with the n4pass.nlm.

   Whats new in version 1.25:  March 31, 1996

   .  Changed file handling done by N4PASS.NLM.
   .  Added code to to force unload of N4PASS.NLM if timeout occurs during
      normal unload of N4PASS.NLM.
   .  Added date/time stamp so that the admin can see exactly the time length
      consumed for different activities.  DebugMode must be set to Yes.
   .  Created Visual Basic N4PASSVB.EXE.  This or the default N4PASS.EXE can
      be used by the admin.   Download N4PA-VB.EXE from website.
      http://www.fastlane.net/homepages/dcollins
    
   Whats new in version 1.26:  April 31, 1996

   .  The TimeOut variable is now settable in the command line parameter
      when running the N4PASSVB.EXE client.
      (This setting is for 10k user and larger sites)
   .  The admin can now specify in the N4PASS.CFG file by using the
      configuration noun ContainerSearchList, which containers can be
      searched (and all below) for users.
      (This setting is for 10k user and larger sites)

    
   Whats new in version 1.3:  December 31, 1996

   .  Removed N4PASS.EXE.  Renamed N4PASSVB.EXE to N4PASS.EXE.
   .  Add capability for the Helpdesk user to specify the new password,
      when doing a 'reset password' procedure.
   .  Alias objects are now supported.  Previous versions could not
      'wildcard' search for alias objects.
   .  Have added 'base object' checking.  This means that the helpdesk
      can only specify objects that are a 'user' or an alias object
      to a 'user' object.

   Whats new in version 1.3:  February 1, 1997

   .  Fixed bug in reporting if the user was 'Intruder Lockout' or not.
      N4Pass.EXE (new) never reported that it was locked out.
   .  Received a message that N4Pass.Exe does not work with MS NDS on
      Windows95.   Hmm.  I need to find out why.  But, from what I heard
      the MS NDS does not support NDS very well, so, may have stumbled
      across something that MS NDS doesn't like.

   Whats new 

   .  ?


Workstation Requirements:
=========================

   . DOS 5.0 or later.
   . Novell VLM (network requestor) logged into a Netware 4.1 server.
     It must be a NDS (Netware Directory Services) connection.
   . Client (workstation) must run VLM 1.2 or later.
     N4Pass.EXE does appear to work on a Windows95 station with the
     Novell Client32 for Windows95 drivers installed.
   . Helpdesk staff must have a valid password for their account.
     (must not be blank)
   . The Windows 3.1, 3.11 or Windows95 workstation must be running the
     Netware drivers and be probably configured.
   . By default N4PASS.EXE will expect the proper unicode table files
     are located in the subdirectory named NLS under the current Windows
     subdirectory.
   . Basically, if you can run Novell's NWADMIN.EXE then you should be able
     run N4PASS.EXE.
     Note... however, that you will need to have the .DLL required for
     Visual Basic applications.


Server Requirements:
====================

   . Run DS.NLM version 4.89a or later.  (This is in DSENH.EXE)
   . This same server should have a 'replica' of the NDS tree on it.
     It is not a requirement but it will help speed up searches.
   . Server patches suggested.
     Note:  As of 10/15/95, you should have at least applied  DSENH.EXE,
     410PT2.EXE, LOG412.EXE, RTRUP?.EXE.  All of these files can be found
     in the Compuserve forum NWOSFILES's File library, and are new since the
     release of Netware 4.10.  You may find that these files provide better
     performance in the NDS usage and may fix some problems with NWAdmin.
   . N4Pass.NLM must run on a Netware 4.10 or 4.11 server.
     Normally, you will run the .NLM on one server only in a NDS tree.
     If you have helpdesk staff located on a more than one server, then
     you may load additional copies on the other server so the helpdesk
     staff can run it on their 'home' server.
   . N4PASS.NLM consumes approximately 60K of server memory.
   . N4PASS.NLM will consume about .05% of CPU resource approximately
     every 2 seconds peaks.
   . Dec 96:  I have found no problems with using N4PASS.NLM on a server
     running Novell InternetWare 4.11 or plain Netware 4.11.


Limitations:
============

   Since it uses a file based method of communication and the contents
   are not encrypted, then it is possible for someone to intercept some
   keys and figure out the password.
   But, for this to happen, they must know the 'seed#' value on the
   Helpdesk workstation and a few other items.
   On this note, if you are using a password file, then only those that
   know what is in the password file will figure out the password.

   N4Pass.Exe and N4Pass.Nlm do not pass any actual passwords over the
   network wire.  Also, since, only N4Pass.Nlm reads the N4Pass.Lst
   then the file contents are not transmitted over the network wire.

   The exception to the above paragraph, is that if you use the '/Specify'
   parameter on the N4pass.exe, and thus allow the helpdesk to specify
   the new password, then, a scrambled password is sent over the wire.
   This situation will pose a security problem if there is a sniffer on
   segment that the helpdesk is on, and the person's account being reset
   will not login soon after, so that they can assign themselves a real
   password.   (The helpdesk's verify password is never sent over the
   wire)



Thanks:
=======

   Peter Kuo, who sent feedback about the beta release.
   Randy Cook, Novell developer support on Compuserve forum NDEVSUP.
   This utility is compiled using the Novell SDK volume 4. 


Required Modules for N4PASS.NLM:
================================

   CLIB.NLM must be loaded.  If it is not loaded when you load n4pass.nlm,
   it should autoload the CLIB.NLM app.
   DSAPI.NLM must be loaded.  If it is not loaded when you load n4pass.nlm,
   it should autoload the DSAPI.NLM app.


Required Modules for N4PASS.EXE:
================================

   Windows DLLs (located in c:\windows\system) accessed by N4PASS.EXE.

        VB40016.DLL
        OC25.DLL
        OLE2.DLL
        TYPELIB.DLL
        OLE2DISP.DLL
        OLE2PROX.DLL
        OLE2CONV.DLL
        STORAGE.DLL
        COMPOBJ.DLL
        OLE2.REG
        OLE2NLS.DLL
        STDOLE.TLB
        SCP.DLL
        VAEN21.OLB
        CTL3DV2.DLL

   I have included these files in the N4PA-VB.ZIP file located at:
   http://www.fastlane.net/homepages/dcollins

        VB40016.DLL
        OC25.DLL
        VAEN21.OLB
        CTL3DV2.DLL

   In addition, the n4passvb.exe will need the following novell DLL
   files on your system.   (If you have installed the Novell client, then
   you should already have the files in your c:\windows\system directory.)

        nwnet.dll
        nwlocale.dll
        nwcalls.dll



WhoAmI:
=======

   Darwin Collins, works at Dallas Area Rapid Transit in Dallas, Texas USA. 
   Voice: 214-749-3022. 
   Environment:  1k user base connected to Netware 4.10 servers.  

   My job pays me to be a Network Administrator.
   I have been writing programs since 1980.  My first published utility
   was called 'Graphic Writer' published in SoftSide in August 1982.
   You could find a variety of my earlier utilities published in books 
   such as 'LAN Desktop Guide To Troubleshooting' by Rick Segal, and 
   'NetWare Unleashed Vol 1 and 2' from SAMS Publishing.   
   My only commerical attempt, is a product called 'Office Logic Clerk',
   which is a MHS-compatible (SMF-70,SMF-71) super utility (Alphapaging, 
   dlists, file librarian/requestor, ...) marketed by LAN-ACES Inc. in 
   Houston, TX.  800-LAN-ACES.  They have a email groupware product
   called Office Logic Email which is pretty neat!


My standard NET.CFG file for VLM 1.20 drivers is:
=================================================

   preferred server=HOME
   show dots = ON
   file handles = 60
   print header = 255
   print tail = 64

   Link Driver NE2000
      Protocol IPX 8137 ETHERNET_II
      Frame ETHERNET_II
      INT 15
      PORT 340

   NETWARE DOS REQUESTER
      SET STATION TIME = ON
      LOAD CONN TABLE LOW = ON
      CONNECTIONS = 8
      LARGE INTERNET PACKETS = ON
      SIGNATURE LEVEL = 1
      CACHE BUFFERS = 5
      CACHE BUFFER SIZE = 1436
      CACHE WRITES = ON
      TRUE COMMIT = OFF
      PB BUFFERS = 3
      PBURST READ WINDOW SIZE = 16
      FIRST NETWORK DRIVE = H
      SHOW DOTS = ON
      NAME CONTEXT = "O=HOME"
      FORCE FIRST NETWORK DRIVE = ON
      LOAD LOW REDIR = ON
      READ ONLY COMPATIBILITY = ON
      USE DEFAULTS = OFF
         VLM = CONN.VLM
         VLM = IPXNCP.VLM
         VLM = TRAN.VLM
         VLM = SECURITY.VLM
         VLM = NDS.VLM
         VLM = BIND.VLM
         VLM = NWP.VLM
         VLM = FIO.VLM
         VLM = GENERAL.VLM
         VLM = REDIR.VLM
         VLM = PRINT.VLM
         VLM = NETX.VLM

[end]

Below is a list of error codes from Novell SDK volume 4.


SHELL_ERROR                0x8800
VLM_ERROR                  0x8800
ALREADY_ATTACHED           0x8800   0  
   - Attach attempted to server with valid, existing connection 
INVALID_CONNECTION         0x8801   1  
   - Request attempted with invalid or non-attached connection handle 
DRIVE_IN_USE               0x8802   2  
   - OS/2 only (NOT USED) 
CANT_ADD_CDS               0x8803   3  
   - Map drive attempted but unable to add new current directory structure 
BAD_DRIVE_BASE             0x8804   4  
   - Map drive attempted with invalid path specification 
NET_READ_ERROR             0x8805   5  
   - Attempt to receive from the selected transport failed 
NET_RECV_ERROR             0x8805   5  
UNKNOWN_NET_ERROR          0x8806   6  
   - Network send attempted with an un-specific network error 
SERVER_INVALID_SLOT        0x8807   7  
   - Server request attempted with invalid server connection slot 
BAD_SERVER_SLOT            0x8807   7  
NO_SERVER_SLOTS            0x8808   8  
   - Attach attempted to server with no connection slots available 
NET_WRITE_ERROR            0x8809   9  
   - Attempt to send on the selected transport failed 
NET_SEND_ERROR             0x8809   9  
SERVER_NO_ROUTE            0x880A   10 
   - Attempted to find route to server where no route exists 
BAD_LOCAL_TARGET           0x880B   11 - OS/2 only 
TOO_MANY_REQ_FRAGS         0x880C   12 
   - Attempted request with too many request fragments specified 
CONNECT_LIST_OVERFLOW      0x880D   13 
BUFFER_OVERFLOW            0x880E   14 
   - Attempt to receive more data than the reply buffer had room for 
NO_CONN_TO_SERVER          0x880F   15 
NO_CONNECTION_TO_SERVER    0x880F   15 
   - Attempt to get connection for a server not connected 
NO_ROUTER_FOUND            0x8810   16 - OS/2 only 
BAD_FUNC_ERROR             0x8811   17 
INVALID_SHELL_CALL         0x8811   17 
   - Attempted function call to non- existent or illegal function 
NOT_SAME_CONNECTION        0x8830   48 
   - Internal server request attempted accross different server connections 
PRIMARY_CONNECTION_NOT_SET 0x8831   49 
   - Attempt to retrieve default connection with no primary connection set 
NO_PRIMARY_SET             0x8831   49 
NO_CAPTURE_SET             0x8832   50 
NO_CAPTURE_IN_PROGRESS     0x8832   50 
   - Capture information requested on port with no capture in progress 
BAD_BUFFER_LENGTH          0x8833   51 
INVALID_BUFFER_LENGTH      0x8833   51 
   - Used to indicate length which caller requested on a GetDNC or SetDNC was too large 
NO_USER_NAME               0x8834   52 
NO_NETWARE_PRINT_SPOOLER   0x8835   53 
   - Capture requested without having the local print spooler installed 
INVALID_PARAMETER          0x8836   54 
   - Attempted function with an invalid function parameter specified 
CONFIG_FILE_OPEN_FAILED    0x8837   55 - OS/2 only 
NO_CONFIG_FILE             0x8838   56 - OS/2 only 
CONFIG_FILE_READ_FAILED    0x8839   57 - OS/2 only 
CONFIG_LINE_TOO_LONG       0x883A   58 - OS/2 only 
CONFIG_LINES_IGNORED       0x883B   59 - OS/2 only 
NOT_MY_RESOURCE            0x883C   60 
   - Attempted request made with a parameter using foriegn resource 
DAEMON_INSTALLED           0x883D   61 - OS/2 only 
SPOOLER_INSTALLED          0x883E   62 
   - Attempted load of print spooler with print spooler already installed 
CONN_TABLE_FULL            0x883F   63 
CONNECTION_TABLE_FULL      0x883F   63 
   - Attempted to allocate a connection handle with no more local connection table entries 
CONFIG_SECTION_NOT_FOUND   0x8840   64 - OS/2 only 
BAD_TRAN_TYPE              0x8841   65 
INVALID_TRANSPORT_TYPE     0x8841   65 
   - Attempted function on a connection with an invalid transport selected 
TDS_TAG_IN_USE             0x8842   66 - OS/2 only 
TDS_OUT_OF_MEMORY          0x8843   67 - OS/2 only 
TDS_INVALID_TAG            0x8844   68 
   - Attempted TDS function with invalid tag 
TDS_WRITE_TRUNCATED        0x8845   69 
   - Attempted TDS write with buffer that exceeded buffer 
NO_DIRECTORY_SERVICE_CONNECTION 0x8846   70 
SERVICE_BUSY               0x8846   70 
   - Attempted request made to partially asynchronous function in busy state 
NO_SERVER_ERROR            0x8847   71 
   - Attempted connect failed to find any servers responding 
BAD_VLM_ERROR              0x8848   72 
   - Attempted function call to non-existant or not-loaded overlay 
NETWORK_DRIVE_IN_USE       0x8849   73 
   - Attempted map to network drive that was already mapped 
LOCAL_DRIVE_IN_USE         0x884A   74 
   - Attempted map to local drive that was in use 
NO_DRIVES_AVAILABLE        0x884B   75 
   - Attempted map to next available drive when none were available 
DEVICE_NOT_REDIRECTED      0x884C   76 
   - The device is not redirected 
NO_MORE_SFT_ENTRIES        0x884D   77 
   - Maximum number of files was reached 
UNLOAD_ERROR               0x884E   78 
   - Attempted unload failed 
IN_USE_ERROR               0x884F   79 
   - Attempted re-use of already in use connection entry 
TOO_MANY_REP_FRAGS         0x8850   80 
   - Attempted request with too many reply fragments specified 
TABLE_FULL                 0x8851   81 
   - Attempted to add a name into the name table after it was full 
SOCKET_NOT_OPEN            0x8852   82 
   - Listen was posted on unopened socket 
MEM_MGR_ERROR              0x8853   83 
   - Attempted enhanced memory operation failed 
SFT3_ERROR                 0x8854   84 
   - An SFT3 switch occured mid-transfer 
PREFERRED_NOT_FOUND        0x8855   85 
   - the preferred directory server was not established but another directory server was returned 
DEVICE_NOT_RECOGNIZED      0x8856   86 
   - used to determine if the device is not used by VISE so pass it on to the next redirector, if any. 
BAD_NET_TYPE               0x8857   87 
   - the network type (Bind/NDS) does not match the server version 
ERROR_OPENING_FILE         0x8858   88 
   - generic open failure error, invalid path, access denied, etc.. 
NO_PREFERRED_SPECIFIED     0x8859   89 
   - no preferred name specified 
ERROR_OPENING_SOCKET       0x885A   90 
   - error opening a socket 
SHELL_FAILURE              0x88FF
VLM_FAILURE                0x88FF


 Server Errors 

ERR_INSUFFICIENT_SPACE          0x8901   001 
ERR_BUFFER_TOO_SMALL            0x8977   119 
ERR_VOLUME_FLAG_NOT_SET         0x8978   120 the service requested, not avail. on the selected vol. 
ERR_NO_ITEMS_FOUND              0x8979   121 
ERR_CONN_ALREADY_TEMP           0x897a   122 
ERR_CONN_ALREADY_LOGGED_IN      0x897b   123 
ERR_CONN_NOT_AUTHENTICATED      0x897c   124 
ERR_CONN_NOT_LOGGED_IN          0x897d   125 
NCP_BOUNDARY_CHECK_FAILED       0x897e   126 
ERR_LOCK_WAITING                0x897f   127 
ERR_LOCK_FAIL                   0x8980   128 
FILE_IN_USE_ERROR               0x8980   128 
NO_MORE_FILE_HANDLES            0x8981   129 
NO_OPEN_PRIVILEGES              0x8982   130 
IO_ERROR_NETWORK_DISK           0x8983   131 
NO_CREATE_PRIVILEGES            0x8984   132 
NO_CREATE_DELETE_PRIVILEGES     0x8985   133 
CREATE_FILE_EXISTS_READ_ONLY    0x8986   134 
WILD_CARDS_IN_CREATE_FILE_NAME  0x8987   135 
INVALID_FILE_HANDLE             0x8988   136 
NO_SEARCH_PRIVILEGES            0x8989   137 
NO_DELETE_PRIVILEGES            0x898A   138 
NO_RENAME_PRIVILEGES            0x898B   139 
NO_MODIFY_PRIVILEGES            0x898C   140 
SOME_FILES_AFFECTED_IN_USE      0x898D   141 
NO_FILES_AFFECTED_IN_USE        0x898E   142 
SOME_FILES_AFFECTED_READ_ONLY   0x898F   143 
NO_FILES_AFFECTED_READ_ONLY     0x8990   144 
SOME_FILES_RENAMED_NAME_EXISTS  0x8991   145 
NO_FILES_RENAMED_NAME_EXISTS    0x8992   146 
NO_READ_PRIVILEGES              0x8993   147 
NO_WRITE_PRIVILEGES_OR_READONLY 0x8994   148 
FILE_DETACHED                   0x8995   149 
SERVER_OUT_OF_MEMORY            0x8996   150 
ERR_TARGET_NOT_A_SUBDIRECTORY   0x8986   150 can be changed later (note written by server people). 
NO_DISK_SPACE_FOR_SPOOL_FILE    0x8997   151 
VOLUME_DOES_NOT_EXIST           0x8998   152 
DIRECTORY_FULL                  0x8999   153 
RENAMING_ACROSS_VOLUMES         0x899A   154 
BAD_DIRECTORY_HANDLE            0x899B   155 
INVALID_PATH                    0x899C   156 
NO_MORE_TRUSTEES                0x899C   156 
NO_MORE_DIRECTORY_HANDLES       0x899D   157 
INVALID_FILENAME                0x899E   158 
DIRECTORY_ACTIVE                0x899F   159 
DIRECTORY_NOT_EMPTY             0x89A0   160 
DIRECTORY_IO_ERROR              0x89A1   161 
READ_FILE_WITH_RECORD_LOCKED    0x89A2   162 
ERR_TRANSACTION_RESTARTED       0x89A3   163 
ERR_RENAME_DIR_INVALID          0x89A4   164 
ERR_INVALID_OPENCREATE_MODE     0x89A5   165 
ERR_ALREADY_IN_USE              0x89A6   166 
ERR_INVALID_RESOURCE_TAG        0x89A7   167 
ERR_ACCESS_DENIED               0x89A8   168 
INVALID_DATA_STREAM             0x89BE   190 
INVALID_NAME_SPACE              0x89BF   191 
NO_ACCOUNTING_PRIVILEGES        0x89C0   192 
LOGIN_DENIED_NO_ACCOUNT_BALANCE 0x89C1   193 
LOGIN_DENIED_NO_CREDIT          0x89C2   194 
ERR_TOO_MANY_HOLDS              0x89C3   195 
ACCOUNTING_DISABLED             0x89C4   196 
INTRUDER_DETECTION_LOCK         0x89C5   197 
NO_CONSOLE_OPERATOR             0x89C6   198 
NO_CONSOLE_PRIVILEGES           0x89C6   198 
ERR_Q_IO_FAILURE                0x89D0   208 
ERR_NO_QUEUE                    0x89D1   209 
ERR_NO_Q_SERVER                 0x89D2   210 
ERR_NO_Q_RIGHTS                 0x89D3   211 
ERR_Q_FULL                      0x89D4   212 
ERR_NO_Q_JOB                    0x89D5   213 
ERR_NO_Q_JOB_RIGHTS             0x89D6   214 
ERR_Q_IN_SERVICE                0x89D7   215 
PASSWORD_NOT_UNIQUE             0x89D7   215 
ERR_Q_NOT_ACTIVE                0x89D8   216 
PASSWORD_TOO_SHORT              0x89D8   216 
ERR_Q_STN_NOT_SERVER            0x89D9   217 
LOGIN_DENIED_NO_CONNECTION      0x89D9   217 
ERR_MAXIMUM_LOGINS_EXCEEDED     0x89D9   217 
ERR_Q_HALTED                    0x89DA   218 
UNAUTHORIZED_LOGIN_TIME         0x89DA   218 
UNAUTHORIZED_LOGIN_STATION      0x89DB   219 
ERR_Q_MAX_SERVERS               0x89DB   219 
ACCOUNT_DISABLED                0x89DC   220 
PASSWORD_HAS_EXPIRED_NO_GRACE   0x89DE   222 
PASSWORD_HAS_EXPIRED            0x89DF   223 
E_NO_MORE_USERS                 0x89E7   231 
NOT_ITEM_PROPERTY               0x89E8   232 
WRITE_PROPERTY_TO_GROUP         0x89E8   232 
MEMBER_ALREADY_EXISTS           0x89E9   233 
NO_SUCH_MEMBER                  0x89EA   234 
NOT_GROUP_PROPERTY              0x89EB   235 
NO_SUCH_SEGMENT                 0x89EC   236 
PROPERTY_ALREADY_EXISTS         0x89ED   237 
OBJECT_ALREADY_EXISTS           0x89EE   238 
INVALID_NAME                    0x89EF   239 
WILD_CARD_NOT_ALLOWED           0x89F0   240 
INVALID_BINDERY_SECURITY        0x89F1   241 
NO_OBJECT_READ_PRIVILEGE        0x89F2   242 
NO_OBJECT_RENAME_PRIVILEGE      0x89F3   243 
NO_OBJECT_DELETE_PRIVILEGE      0x89F4   244 
NO_OBJECT_CREATE_PRIVILEGE      0x89F5   245 
NO_PROPERTY_DELETE_PRIVILEGE    0x89F6   246 
NO_PROPERTY_CREATE_PRIVILEGE    0x89F7   247 
NO_PROPERTY_WRITE_PRIVILEGE     0x89F8   248 
NO_FREE_CONNECTION_SLOTS        0x89F9   249 
NO_PROPERTY_READ_PRIVILEGE      0x89F9   249 
NO_MORE_SERVER_SLOTS            0x89FA   250 
TEMP_REMAP_ERROR                0x89FA   250 
INVALID_PARAMETERS              0x89FB   251 
NO_SUCH_PROPERTY                0x89FB   251 
ERR_NCP_NOT_SUPPORTED           0x89FB   251 
INTERNET_PACKET_REQT_CANCELED   0x89FC   252 
UNKNOWN_FILE_SERVER             0x89FC   252 
MESSAGE_QUEUE_FULL              0x89FC   252 
NO_SUCH_OBJECT                  0x89FC   252 
LOCK_COLLISION                  0x89FD   253 
BAD_STATION_NUMBER              0x89FD   253 
INVALID_PACKET_LENGTH           0x89FD   253 
UNKNOWN_REQUEST                 0x89FD   253 
BINDERY_LOCKED                  0x89FE   254 
TRUSTEE_NOT_FOUND               0x89FE   254 
DIRECTORY_LOCKED                0x89FE   254 
INVALID_SEMAPHORE_NAME_LENGTH   0x89FE   254 
PACKET_NOT_DELIVERABLE          0x89FE   254 
SERVER_BINDERY_LOCKED           0x89FE   254 
SOCKET_TABLE_FULL               0x89FE   254 
SPOOL_DIRECTORY_ERROR           0x89FE   254 
SUPERVISOR_HAS_DISABLED_LOGIN   0x89FE   254 
TIMEOUT_FAILURE                 0x89FE   254 
BAD_PRINTER_ERROR               0x89FF   255 
BAD_RECORD_OFFSET               0x89FF   255 
CLOSE_FCB_ERROR                 0x89FF   255 
FILE_EXTENSION_ERROR            0x89FF   255 
FILE_NAME_ERROR                 0x89FF   255 
HARDWARE_FAILURE                0x89FF   255 
INVALID_DRIVE_NUMBER            0x89FF   255 
DOS_INVALID_DRIVE               0x000F   255 
INVALID_INITIAL_SEMAPHORE_VALUE 0x89FF   255 
INVALID_SEMAPHORE_HANDLE        0x89FF   255 
IO_BOUND_ERROR                  0x89FF   255 
NO_FILES_FOUND_ERROR            0x89FF   255 
NO_RESPONSE_FROM_SERVER         0x89FF   255 
NO_SUCH_OBJECT_OR_BAD_PASSWORD  0x89FF   255 
PATH_NOT_LOCATABLE              0x89FF   255 
QUEUE_FULL_ERROR                0x89FF   255 
REQUEST_NOT_OUTSTANDING         0x89FF   255 
SOCKET_ALREADY_OPEN             0x89FF   255 
LOCK_ERROR                      0x89FF   255 


ERR_INSUFFICIENT_MEMORY        -150      0xFFFFFF6A, OS ERR_NO_ALLOC_SPACE is 0x96 
ERR_REQUEST_UNKNOWN            -251      0xFFFFFF05, OS ERR_UNKNOWN_REQUEST is 0xFB 
ERR_OF_SOME_SORT               -255      0xFFFFFF01, many OS errors are originally 0xFF 

 -301 to -399 are returned by the directory services client library 
ERR_NOT_ENOUGH_MEMORY          -301      0xFFFFFED3 
ERR_BAD_KEY                    -302      0xFFFFFED2 
ERR_BAD_CONTEXT                -303      0xFFFFFED1 
ERR_BUFFER_FULL                -304      0xFFFFFED0 
ERR_LIST_EMPTY                 -305      0xFFFFFECF 
ERR_BAD_SYNTAX                 -306      0xFFFFFECE 
ERR_BUFFER_EMPTY               -307      0xFFFFFECD 
ERR_BAD_VERB                   -308      0xFFFFFECC 
ERR_EXPECTED_IDENTIFIER        -309      0xFFFFFECB 
ERR_EXPECTED_EQUALS            -310      0xFFFFFECA 
ERR_ATTR_TYPE_EXPECTED         -311      0xFFFFFEC9 
ERR_ATTR_TYPE_NOT_EXPECTED     -312      0xFFFFFEC8 
ERR_FILTER_TREE_EMPTY          -313      0xFFFFFEC7 
ERR_INVALID_OBJECT_NAME        -314      0xFFFFFEC6 
ERR_EXPECTED_RDN_DELIMITER     -315      0xFFFFFEC5 
ERR_TOO_MANY_TOKENS            -316      0xFFFFFEC4 
ERR_INCONSISTENT_MULTIAVA      -317      0xFFFFFEC3 
ERR_COUNTRY_NAME_TOO_LONG      -318      0xFFFFFEC2 
ERR_SYSTEM_ERROR               -319      0xFFFFFEC1 
ERR_CANT_ADD_ROOT              -320      0xFFFFFEC0 
ERR_UNABLE_TO_ATTACH           -321      0xFFFFFEBF 
ERR_INVALID_HANDLE             -322      0xFFFFFEBE 
ERR_BUFFER_ZERO_LENGTH         -323      0xFFFFFEBD 
ERR_INVALID_REPLICA_TYPE       -324      0xFFFFFEBC 
ERR_INVALID_ATTR_SYNTAX        -325      0xFFFFFEBB 
ERR_INVALID_FILTER_SYNTAX      -326      0xFFFFFEBA 
ERR_CONTEXT_CREATION           -328      0xFFFFFEB8 
ERR_INVALID_UNION_TAG          -329      0xFFFFFEB7 
ERR_INVALID_SERVER_RESPONSE    -330      0xFFFFFEB6 
ERR_NULL_POINTER               -331      0xFFFFFEB5 
ERR_NO_SERVER_FOUND            -332      0xFFFFFEB4 
ERR_NO_CONNECTION              -333      0xFFFFFEB3 
ERR_RDN_TOO_LONG               -334      0xFFFFFEB2 
ERR_DUPLICATE_TYPE             -335      0xFFFFFEB1 
ERR_DATA_STORE_FAILURE         -336      0xFFFFFEB0 
ERR_NOT_LOGGED_IN              -337      0xFFFFFEAF 
ERR_INVALID_PASSWORD_CHARS     -338      0xFFFFFEAE 
ERR_FAILED_SERVER_AUTHENT      -339      0xFFFFFEAD 
ERR_TRANSPORT                  -340      0xFFFFFEAC 
ERR_NO_SUCH_SYNTAX             -341      0xFFFFFEAB 
ERR_INVALID_DS_NAME            -342      0xFFFFFEAA 
ERR_ATTR_NAME_TOO_LONG         -343      0xFFFFFEA9 
ERR_INVALID_TDS                -344      0xFFFFFEA8 
ERR_INVALID_DS_VERSION         -345      0xFFFFFEA7 
ERR_UNICODE_TRANSLATION        -346      0xFFFFFEA6 
ERR_SCHEMA_NAME_TOO_LONG       -347      0xFFFFFEA5 
ERR_UNICODE_FILE_NOT_FOUND     -348      0xFFFFFEA4 
ERR_UNICODE_ALREADY_LOADED     -349      0xFFFFFEA3 
ERR_NOT_CONTEXT_OWNER          -350      0xFFFFFEA2 
ERR_ATTEMPT_TO_AUTHENTICATE_0  -351      0xFFFFFEA1 
ERR_NO_WRITABLE_REPLICAS       -352      0xFFFFFEA0 
ERR_DN_TOO_LONG                -353      0xFFFFFE9F 
ERR_RENAME_NOT_ALLOWED         -354      0xFFFFFE9E 

 -601 to -699 are returned by the directory services agent in the server 
ERR_NO_SUCH_ENTRY              -601      0xFFFFFDA7 
ERR_NO_SUCH_VALUE              -602      0xFFFFFDA6 
ERR_NO_SUCH_ATTRIBUTE          -603      0xFFFFFDA5 
ERR_NO_SUCH_CLASS              -604      0xFFFFFDA4 
ERR_NO_SUCH_PARTITION          -605      0xFFFFFDA3 
ERR_ENTRY_ALREADY_EXISTS       -606      0xFFFFFDA2 
ERR_NOT_EFFECTIVE_CLASS        -607      0xFFFFFDA1 
ERR_ILLEGAL_ATTRIBUTE          -608      0xFFFFFDA0 
ERR_MISSING_MANDATORY          -609      0xFFFFFD9F 
ERR_ILLEGAL_DS_NAME            -610      0xFFFFFD9E 
ERR_ILLEGAL_CONTAINMENT        -611      0xFFFFFD9D 
ERR_CANT_HAVE_MULTIPLE_VALUES  -612      0xFFFFFD9C 
ERR_SYNTAX_VIOLATION           -613      0xFFFFFD9B 
ERR_DUPLICATE_VALUE            -614      0xFFFFFD9A 
ERR_ATTRIBUTE_ALREADY_EXISTS   -615      0xFFFFFD99 
ERR_MAXIMUM_ENTRIES_EXIST      -616      0xFFFFFD98 
ERR_DATABASE_FORMAT            -617      0xFFFFFD97 
ERR_INCONSISTENT_DATABASE      -618      0xFFFFFD96 
ERR_INVALID_COMPARISON         -619      0xFFFFFD95 
ERR_COMPARISON_FAILED          -620      0xFFFFFD94 
ERR_TRANSACTIONS_DISABLED      -621      0xFFFFFD93 
ERR_INVALID_TRANSPORT          -622      0xFFFFFD92 
ERR_SYNTAX_INVALID_IN_NAME     -623      0xFFFFFD91 
ERR_REPLICA_ALREADY_EXISTS     -624      0xFFFFFD90 
ERR_TRANSPORT_FAILURE          -625      0xFFFFFD8F 
ERR_ALL_REFERRALS_FAILED       -626      0xFFFFFD8E 
ERR_CANT_REMOVE_NAMING_VALUE   -627      0xFFFFFD8D 
ERR_OBJECT_CLASS_VIOLATION     -628      0xFFFFFD8C 
ERR_ENTRY_IS_NOT_LEAF          -629      0xFFFFFD8B 
ERR_DIFFERENT_TREE             -630      0xFFFFFD8A 
ERR_ILLEGAL_REPLICA_TYPE       -631      0xFFFFFD89 
ERR_SYSTEM_FAILURE             -632      0xFFFFFD88 
ERR_INVALID_ENTRY_FOR_ROOT     -633      0xFFFFFD87 
ERR_NO_REFERRALS               -634      0xFFFFFD86 
ERR_REMOTE_FAILURE             -635      0xFFFFFD85 
ERR_UNREACHABLE_SERVER         -636      0XFFFFFD84 
ERR_PREVIOUS_MOVE_IN_PROGRESS  -637      0XFFFFFD83 
ERR_NO_CHARACTER_MAPPING       -638      0XFFFFFD82 
ERR_INCOMPLETE_AUTHENTICATION  -639      0XFFFFFD81 
ERR_INVALID_CERTIFICATE        -640      0xFFFFFD80 
ERR_INVALID_REQUEST            -641      0xFFFFFD7F 
ERR_INVALID_ITERATION          -642      0xFFFFFD7E 
ERR_SCHEMA_IS_NONREMOVABLE     -643      0xFFFFFD7D 
ERR_SCHEMA_IS_IN_USE           -644      0xFFFFFD7C 
ERR_CLASS_ALREADY_EXISTS       -645      0xFFFFFD7B 
ERR_BAD_NAMING_ATTRIBUTES      -646      0xFFFFFD7A 
ERR_NOT_ROOT_PARTITION         -647      0xFFFFFD79 
ERR_INSUFFICIENT_STACK         -648      0xFFFFFD78 
ERR_INSUFFICIENT_BUFFER        -649      0xFFFFFD77 
ERR_AMBIGUOUS_CONTAINMENT      -650      0xFFFFFD76 
ERR_AMBIGUOUS_NAMING           -651      0xFFFFFD75 
ERR_DUPLICATE_MANDATORY        -652      0xFFFFFD74 
ERR_DUPLICATE_OPTIONAL         -653      0xFFFFFD73 
ERR_PARTITION_BUSY             -654      0XFFFFFD72 
ERR_MULTIPLE_REPLICAS          -655      0xFFFFFD71 
ERR_CRUCIAL_REPLICA            -656      0xFFFFFD70 
ERR_SCHEMA_SYNC_IN_PROGRESS    -657      0xFFFFFD6F 
ERR_SKULK_IN_PROGRESS          -658      0xFFFFFD6E 
ERR_TIME_NOT_SYNCHRONIZED      -659      0xFFFFFD6D 
ERR_RECORD_IN_USE              -660      0xFFFFFD6C 
ERR_DS_VOLUME_NOT_MOUNTED      -661      0xFFFFFD6B 
ERR_DS_VOLUME_IO_FAILURE       -662      0xFFFFFD6A 
ERR_DS_LOCKED                  -663      0xFFFFFD69 
ERR_OLD_EPOCH                  -664      0xFFFFFD68 
ERR_NEW_EPOCH                  -665      0xFFFFFD67 
ERR_INCOMPATIBLE_DS_VERSION    -666      0xFFFFFD66 
ERR_PARTITION_ROOT             -667      0xFFFFFD65 
ERR_ENTRY_NOT_CONTAINER        -668      0xFFFFFD64 
ERR_FAILED_AUTHENTICATION      -669      0xFFFFFD63 
ERR_INVALID_CONTEXT            -670      0xFFFFFD62 
ERR_NO_SUCH_PARENT             -671      0xFFFFFD61 
ERR_NO_ACCESS                  -672      0xFFFFFD60 
ERR_REPLICA_NOT_ON             -673      0xFFFFFD5F 
ERR_INVALID_NAME_SERVICE       -674      0xFFFFFD5E 
ERR_INVALID_TASK               -675      0xFFFFFD5D 
ERR_INVALID_CONN_HANDLE        -676      0xFFFFFD5C 
ERR_INVALID_IDENTITY           -677      0xFFFFFD5B 
ERR_DUPLICATE_ACL              -678      0xFFFFFD5A 
ERR_PARTITION_ALREADY_EXISTS   -679      0xFFFFFD59 
ERR_TRANSPORT_MODIFIED         -680      0xFFFFFD58 
ERR_ALIAS_OF_AN_ALIAS          -681      0xFFFFFD57 
ERR_AUDITING_FAILED            -682      0xFFFFFD56 
ERR_INVALID_API_VERSION        -683      0xFFFFFD55 
ERR_SECURE_NCP_VIOLATION       -684      0xFFFFFD54 
ERR_MOVE_IN_PROGRESS           -685      0xFFFFFD53 
ERR_NOT_LEAF_PARTITION         -686      0xFFFFFD52 
ERR_CANNOT_ABORT               -687      0xFFFFFD51 
ERR_CACHE_OVERFLOW             -688      0xFFFFFD50 
ERR_INVALID_SUBORDINATE_COUNT  -689      0xFFFFFD4F 
ERR_INVALID_RDN                -690      0xFFFFFD4E 
ERR_MOD_TIME_NOT_CURRENT       -691      0xFFFFFD4D 
ERR_INCORRECT_BASE_CLASS       -692      0xFFFFFD4C 
ERR_MISSING_REFERENCE          -693      0xFFFFFD4B 
ERR_LOST_ENTRY                 -694      0xFFFFFD4A 
ERR_AGENT_ALREADY_REGISTERED   -695      0xFFFFFD49 
ERR_DS_LOADER_BUSY             -696      0xFFFFFD48 
ERR_DS_CANNOT_RELOAD           -697      0xFFFFFD47 
ERR_REPLICA_IN_SKULK           -698      0xFFFFFD46 
ERR_FATAL                      -699      0xFFFFFD45 
ERR_OBSOLETE_API               -700      0xFFFFFD44 
ERR_SYNCHRONIZATION_DISABLED   -701      0xFFFFFD43 
ERR_INVALID_PARAMETER          -702      0xFFFFFD42 
ERR_DUPLICATE_TEMPLATE         -703      0xFFFFFD41 
ERR_NO_MASTER_REPLICA          -704      0xFFFFFD40 
ERR_DUPLICATE_CONTAINMENT      -705      0xFFFFFD3F 

---------------------------------------------------------------------------
 * -001 to -255 are OS Errors returned through directory services
 

DSERR_INSUFFICIENT_SPACE             -001      FFFFFFFF 
DSERR_BUFFER_TOO_SMALL               -119      FFFFFF89 
DSERR_VOLUME_FLAG_NOT_SET            -120      FFFFFF88 
DSERR_NO_ITEMS_FOUND                 -121      FFFFFF87 
DSERR_CONN_ALREADY_TEMPORARY         -122      FFFFFF86 
DSERR_CONN_ALREADY_LOGGED_IN         -123      FFFFFF85 
DSERR_CONN_NOT_AUTHENTICATED         -124      FFFFFF84 
DSERR_CONN_NOT_LOGGED_IN             -125      FFFFFF83 
DSERR_NCP_BOUNDARY_CHECK_FAILED      -126      FFFFFF82 
DSERR_LOCK_WAITING                   -127      FFFFFF81 
DSERR_LOCK_FAIL                      -128      FFFFFF80 
DSERR_OUT_OF_HANDLES                 -129      FFFFFF7F 
DSERR_NO_OPEN_PRIVILEGE              -130      FFFFFF7E 
DSERR_HARD_IO_ERROR                  -131      FFFFFF7D 
DSERR_NO_CREATE_PRIVILEGE            -132      FFFFFF7C 
DSERR_NO_CREATE_DELETE_PRIV          -133      FFFFFF7B 
DSERR_R_O_CREATE_FILE                -134      FFFFFF7A 
DSERR_CREATE_FILE_INVALID_NAME       -135      FFFFFF79 
DSERR_INVALID_FILE_HANDLE            -136      FFFFFF78 
DSERR_NO_SEARCH_PRIVILEGE            -137      FFFFFF77 
DSERR_NO_DELETE_PRIVILEGE            -138      FFFFFF76 
DSERR_NO_RENAME_PRIVILEGE            -139      FFFFFF75 
DSERR_NO_SET_PRIVILEGE               -140      FFFFFF74 
DSERR_SOME_FILES_IN_USE              -141      FFFFFF73 
DSERR_ALL_FILES_IN_USE               -142      FFFFFF72 
DSERR_SOME_READ_ONLY                 -143      FFFFFF71 
DSERR_ALL_READ_ONLY                  -144      FFFFFF70 
DSERR_SOME_NAMES_EXIST               -145      FFFFFF6F 
DSERR_ALL_NAMES_EXIST                -146      FFFFFF6E 
DSERR_NO_READ_PRIVILEGE              -147      FFFFFF6D 
DSERR_NO_WRITE_PRIVILEGE             -148      FFFFFF6C 
DSERR_FILE_DETACHED                  -149      FFFFFF6B 
DSERR_NO_ALLOC_SPACE                 -150      FFFFFF6A 
DSERR_TARGET_NOT_A_SUBDIR            -150      FFFFFF6A 
DSERR_NO_SPOOL_SPACE                 -151      FFFFFF69 
DSERR_INVALID_VOLUME                 -152      FFFFFF68 
DSERR_DIRECTORY_FULL                 -153      FFFFFF67 
DSERR_RENAME_ACROSS_VOLUME           -154      FFFFFF66 
DSERR_BAD_DIR_HANDLE                 -155      FFFFFF65 
DSERR_INVALID_PATH                   -156      FFFFFF64 
DSERR_NO_SUCH_EXTENSION              -156      FFFFFF64 
DSERR_NO_DIR_HANDLES                 -157      FFFFFF63 
DSERR_BAD_FILE_NAME                  -158      FFFFFF62 
DSERR_DIRECTORY_ACTIVE               -159      FFFFFF61 
DSERR_DIRECTORY_NOT_EMPTY            -160      FFFFFF60 
DSERR_DIRECTORY_IO_ERROR             -161      FFFFFF5F 
DSERR_IO_LOCKED                      -162      FFFFFF5E 
DSERR_TRANSACTION_RESTARTED          -163      FFFFFF5D 
DSERR_RENAME_DIR_INVALID             -164      FFFFFF5C 
DSERR_INVALID_OPENCREATE_MODE        -165      FFFFFF5B 
DSERR_ALREADY_IN_USE                 -166      FFFFFF5A 
DSERR_INVALID_RESOURCE_TAG           -167      FFFFFF59 
DSERR_ACCESS_DENIED                  -168      FFFFFF58 
DSERR_INVALID_DATA_STREAM            -190      FFFFFF42 
DSERR_INVALID_NAME_SPACE             -191      FFFFFF41 
DSERR_NO_ACCOUNTING_PRIVILEGES       -192      FFFFFF40 
DSERR_NO_ACCOUNT_BALANCE             -193      FFFFFF3F 
DSERR_CREDIT_LIMIT_EXCEEDED          -194      FFFFFF3E 
DSERR_TOO_MANY_HOLDS                 -195      FFFFFF3D 
DSERR_ACCOUNTING_DISABLED            -196      FFFFFF3C 
DSERR_LOGIN_LOCKOUT                  -197      FFFFFF3B 
DSERR_NO_CONSOLE_RIGHTS              -198      FFFFFF3A 
DSERR_Q_IO_FAILURE                   -208      FFFFFF30 
DSERR_NO_QUEUE                       -209      FFFFFF2F 
DSERR_NO_Q_SERVER                    -210      FFFFFF2E 
DSERR_NO_Q_RIGHTS                    -211      FFFFFF2D 
DSERR_Q_FULL                         -212      FFFFFF2C 
DSERR_NO_Q_JOB                       -213      FFFFFF2B 
DSERR_NO_Q_JOB_RIGHTS                -214      FFFFFF2A 
DSERR_UNENCRYPTED_NOT_ALLOWED        -214      FFFFFF2A 
DSERR_Q_IN_SERVICE                   -215      FFFFFF29 
DSERR_DUPLICATE_PASSWORD             -215      FFFFFF29 
DSERR_Q_NOT_ACTIVE                   -216      FFFFFF28 
DSERR_PASSWORD_TOO_SHORT             -216      FFFFFF28 
DSERR_Q_STN_NOT_SERVER               -217      FFFFFF27 
DSERR_MAXIMUM_LOGINS_EXCEEDED        -217      FFFFFF27 
DSERR_Q_HALTED                       -218      FFFFFF26 
DSERR_BAD_LOGIN_TIME                 -218      FFFFFF26 
DSERR_Q_MAX_SERVERS                  -219      FFFFFF25 
DSERR_NODE_ADDRESS_VIOLATION         -219      FFFFFF25 
DSERR_LOG_ACCOUNT_EXPIRED            -220      FFFFFF24 
DSERR_BAD_PASSWORD                   -222      FFFFFF22 
DSERR_PASSWORD_EXPIRED               -223      FFFFFF21 
DSERR_NO_LOGIN_CONN_AVAILABLE        -224      FFFFFF20 
DSERR_WRITE_TO_GROUP_PROPERTY        -232      FFFFFF18 
DSERR_MEMBER_ALREADY_EXISTS          -233      FFFFFF17 
DSERR_NO_SUCH_MEMBER                 -234      FFFFFF16 
DSERR_PROPERTY_NOT_GROUP             -235      FFFFFF15 
DSERR_NO_SUCH_VALUE_SET              -236      FFFFFF14 
DSERR_PROPERTY_ALREADY_EXISTS        -237      FFFFFF13 
DSERR_OBJECT_ALREADY_EXISTS          -238      FFFFFF12 
DSERR_ILLEGAL_NAME                   -239      FFFFFF11 
DSERR_ILLEGAL_WILDCARD               -240      FFFFFF10 
DSERR_BINDERY_SECURITY               -241      FFFFFF0F 
DSERR_NO_OBJECT_READ_RIGHTS          -242      FFFFFF0E 
DSERR_NO_OBJECT_RENAME_RIGHTS        -243      FFFFFF0D 
DSERR_NO_OBJECT_DELETE_RIGHTS        -244      FFFFFF0C 
DSERR_NO_OBJECT_CREATE_RIGHTS        -245      FFFFFF0B 
DSERR_NO_PROPERTY_DELETE_RIGHTS      -246      FFFFFF0A 
DSERR_NO_PROPERTY_CREATE_RIGHTS      -247      FFFFFF09 
DSERR_NO_PROPERTY_WRITE_RIGHTS       -248      FFFFFF08 
DSERR_NO_PROPERTY_READ_RIGHTS        -249      FFFFFF07 
DSERR_TEMP_REMAP                     -250      FFFFFF06 
DSERR_UNKNOWN_REQUEST                -251      FFFFFF05 
DSERR_NO_SUCH_PROPERTY               -251      FFFFFF05 
DSERR_MESSAGE_QUEUE_FULL             -252      FFFFFF04 
DSERR_TARGET_ALREADY_HAS_MSG         -252      FFFFFF04 
DSERR_NO_SUCH_OBJECT                 -252      FFFFFF04 
DSERR_BAD_STATION_NUMBER             -253      FFFFFF03 
DSERR_BINDERY_LOCKED                 -254      FFFFFF02 
DSERR_DIR_LOCKED                     -254      FFFFFF02 
DSERR_SPOOL_DELETE                   -254      FFFFFF02 
DSERR_TRUSTEE_NOT_FOUND              -254      FFFFFF02 
DSERR_HARD_FAILURE                   -255      FFFFFF01 
DSERR_FILE_NAME                      -255      FFFFFF01 
DSERR_FILE_EXISTS                    -255      FFFFFF01 
DSERR_CLOSE_FCB                      -255      FFFFFF01 
DSERR_IO_BOUND                       -255      FFFFFF01 
DSERR_NO_SPOOL_FILE                  -255      FFFFFF01 
DSERR_BAD_SPOOL_PRINTER              -255      FFFFFF01 
DSERR_BAD_PARAMETER                  -255      FFFFFF01 
DSERR_NO_FILES_FOUND                 -255      FFFFFF01 
DSERR_NO_TRUSTEE_CHANGE_PRIV         -255      FFFFFF01 
DSERR_TARGET_NOT_LOGGED_IN           -255      FFFFFF01 
DSERR_TARGET_NOT_ACCEPTING_MSGS      -255      FFFFFF01 
DSERR_MUST_FORCE_DOWN                -255      FFFFFF01 
   
