home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / alogin.exe / LOGIN.TXT < prev    next >
Text File  |  1993-05-14  |  7KB  |  163 lines

  1.  
  2.                       Assembly Login APIs Documentation
  3.                           Keyed Login Object Modules
  4.  
  5.  
  6.                              Last Update: 05/14/93
  7.  
  8.  
  9.                                   Version 1.30
  10.  
  11.  
  12.     This software is provided as is and carries no warranty
  13.     whatsoever.  Novell disclaims and excludes any and all implied
  14.     warranties of merchantability, title and fitness for a particular
  15.     purpose.  Novell does not warrant that the software will satisfy
  16.     your requirements or that the software is without defect or error
  17.     or that operation of the software will be uninterrupted.  You are
  18.     using the software at your risk.  The software is not a product
  19.     of Novell, Inc. or any of its subsidiaries.
  20.  
  21.  
  22. This document describes the functions contained in the various object files
  23. included with ALOGIN.ZIP.  These functions allow you to perform a keyed login
  24. to a NetWare 3.x file server as well as change or verify a bindery object's
  25. password.  In addition, they support Novell's new NCP Packet Signature for
  26. NetWare 3.11.  These OBJs can be linked with languages using the Microsoft
  27. segment naming conventions.
  28.  
  29. Beginning with version 1.20, the Assembly Login support (ALOGIN) has been
  30. built five different ways for each memory model.
  31.  
  32.            Full API support for DOS utilities
  33.            Full API support for VAPs (No Packet Signature support)
  34.            Login-ONLY support for DOS
  35.            VerifyPassword-ONLY support for DOS
  36.            ChangePassword-ONLY support for DOS
  37.  
  38. For those needing the support of only a single API, the new "?-ONLY" build
  39. results in quite a substantial memory savings.  The filename convention table
  40. below describes how the APIs are organized in the object modules.
  41.  
  42. One very important note here is that the new AsmLoginToFileServer() API no
  43. longer supports the old-style login request (E3h-14h).  Thus, this API cannot
  44. login to any NetWare installation which does not support keyed logins.  i.e.
  45. pre-2.15c NetWare.
  46.  
  47.  
  48. Object Naming Convention:
  49.  
  50.     mLOGIN.OBJ - Contains all three APIs
  51.         m is one of S,M,C or L for Small, Medium, Compact and Large
  52.  
  53.  
  54. The VAP objects have a 'v' appended to the root name.  i.e.
  55.  
  56.     sLOGINv.OBJ - Small Model VAP object
  57.  
  58. The current release of the VAP objects does NOT support NCP Packet Signature.
  59.  
  60.  
  61. The ONLY objects are named as follows:
  62.  
  63.     mLOGINX.OBJ - Contains AsmLoginToFileServer ONLY
  64.     mVERIFY.OBJ - Contains AsmVerifyBinderyObjectPassword ONLY
  65.     mCHANGE.OBJ - Contains AsmChangeBinderyObjectPassword ONLY
  66.         m is one of S,M,C or L for Small, Medium, Compact and Large
  67.  
  68.  
  69.  
  70. IMPORTANT NOTES:
  71.  
  72. These functions all assume that you are attached, and the preferred
  73. connection is set to the server that you want to login to or change the
  74. password on.  You must perform those APIs before calling the functions in
  75. this object, or they will not work.  If you need more information on this
  76. requirement, please call Novell Developer Support.
  77.  
  78. All Functions require approximately 254 bytes of stack space for local
  79. variables.  This does not include the overhead for calling DOS or the
  80. shell via Int 21h.  You must provide sufficient stack space for this.
  81. VAP users need to allow for overhead of the NetWareShellServices API.
  82.  
  83. Objects are provided for the SMALL, MEDIUM, COMPACT and LARGE memory
  84. models.  There are three functions included in each object module:
  85.  
  86.     _AsmLoginToFileServer           (ObjName, ObjType, ObjPassword)
  87.     _AsmVerifyBinderyObjectPassword (ObjName, ObjType, ObjPassword)
  88.     _AsmChangeBinderyObjectPassword (ObjName, ObjType, ObjOldPass, ObjNewPass)
  89.  
  90. Where:
  91.         ObjName     - A pointer to the Object's Name
  92.         ObjType     - The Object's Type i.e. 1 for USER, ...
  93.         ObjPassword - A pointer to the Object's Password.
  94.         ObjOldPass  - A pointer to the Object's old Password.
  95.         ObjNewPass  - A pointer to the Object's new Password.
  96.  
  97. NOTE:
  98.     All pointers are model dependant. i.e. 2 byte for small and medium model
  99.     or 4 byte for compact and large.
  100.  
  101.     Also, a global variable called __AsmDataElement has been declared.
  102.     __AsmDataElement is used to establish DS addressability BEFORE
  103.     calling any of the other APIs.  This is ONLY needed if DS is NOT
  104.     pointing to DGROUP.  If you will be calling the APIs without DS
  105.     pointing to DGROUP, you need to establish addressability first.
  106.     To do this, just "MOV AX,SEG __AsmDataElement", and "MOV DS,AX"
  107.     before calling the API.  Be sure to save DS for your program!
  108.  
  109. All functions return a status code in the AX register.  See your System Calls
  110. Documentation for a description of the return codes.
  111.  
  112. Only registers SI, DI, BP, DS and ES are preserved.  All others are destroyed.
  113.  
  114. To call any of these functions, simply push the parameters onto the stack in
  115. the reverse order i.e. right to left.  Be sure to pass the correct pointer
  116. size!  Following are samples for calling a small and large model function.
  117.  
  118.                 ;Small Model Example
  119.                 mov     ax,offset DGROUP:Password   ; user password
  120.                 push    ax
  121.                 mov     ax,1                        ; type user
  122.                 push    ax
  123.                 mov     ax,offset DGROUP:Username   ; user name
  124.                 push    ax
  125.                 call    near ptr _AsmLoginToFileServer
  126.  
  127.                 ;Large Model Example
  128.                 push    ds
  129.                 mov     ax,offset DGROUP:Password   ; user password
  130.                 push    ax
  131.                 mov     ax,1                        ; type user
  132.                 push    ax
  133.                 push    ds
  134.                 mov     ax,offset DGROUP:Username   ; user name
  135.                 push    ax
  136.                 call    far ptr _AsmLoginToFileServer
  137.  
  138.  
  139. *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  140.                         Special Info for VAP users
  141. *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  142.  
  143. This section applies only to users of the VAP routines.
  144.  
  145. You must provide a routine in your prelude module called:
  146.  
  147.     '_CallNetWareShellServices'
  148.  
  149. which will perform a call to the NetWareShellServices entry point as
  150. specified in the VAPs Header.  Following is a sample of what it must look
  151. like:
  152.  
  153. _CallNetWareShellServices  proc             ; for login.obj
  154.                 public  _CallNetWareShellServices
  155.                 push    ds                  ; save ds
  156.                 xchg    si,bx               ; on entry si:bx pointer to
  157.                 mov     ds,bx               ;  request, make ds:si instead
  158.                 call    dword ptr cs:[NetWareShellServices]   ; call OS
  159.                 pop     ds                  ; restore ds
  160.                 cbw                         ; return code in AX
  161.                 ret
  162. _CallNetWareShellServices  endp             ; for login.obj
  163.