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 >
Wrap
Text File
|
1993-05-14
|
7KB
|
163 lines
Assembly Login APIs Documentation
Keyed Login Object Modules
Last Update: 05/14/93
Version 1.30
This software is provided as is and carries no warranty
whatsoever. Novell disclaims and excludes any and all implied
warranties of merchantability, title and fitness for a particular
purpose. Novell does not warrant that the software will satisfy
your requirements or that the software is without defect or error
or that operation of the software will be uninterrupted. You are
using the software at your risk. The software is not a product
of Novell, Inc. or any of its subsidiaries.
This document describes the functions contained in the various object files
included with ALOGIN.ZIP. These functions allow you to perform a keyed login
to a NetWare 3.x file server as well as change or verify a bindery object's
password. In addition, they support Novell's new NCP Packet Signature for
NetWare 3.11. These OBJs can be linked with languages using the Microsoft
segment naming conventions.
Beginning with version 1.20, the Assembly Login support (ALOGIN) has been
built five different ways for each memory model.
Full API support for DOS utilities
Full API support for VAPs (No Packet Signature support)
Login-ONLY support for DOS
VerifyPassword-ONLY support for DOS
ChangePassword-ONLY support for DOS
For those needing the support of only a single API, the new "?-ONLY" build
results in quite a substantial memory savings. The filename convention table
below describes how the APIs are organized in the object modules.
One very important note here is that the new AsmLoginToFileServer() API no
longer supports the old-style login request (E3h-14h). Thus, this API cannot
login to any NetWare installation which does not support keyed logins. i.e.
pre-2.15c NetWare.
Object Naming Convention:
mLOGIN.OBJ - Contains all three APIs
m is one of S,M,C or L for Small, Medium, Compact and Large
The VAP objects have a 'v' appended to the root name. i.e.
sLOGINv.OBJ - Small Model VAP object
The current release of the VAP objects does NOT support NCP Packet Signature.
The ONLY objects are named as follows:
mLOGINX.OBJ - Contains AsmLoginToFileServer ONLY
mVERIFY.OBJ - Contains AsmVerifyBinderyObjectPassword ONLY
mCHANGE.OBJ - Contains AsmChangeBinderyObjectPassword ONLY
m is one of S,M,C or L for Small, Medium, Compact and Large
IMPORTANT NOTES:
These functions all assume that you are attached, and the preferred
connection is set to the server that you want to login to or change the
password on. You must perform those APIs before calling the functions in
this object, or they will not work. If you need more information on this
requirement, please call Novell Developer Support.
All Functions require approximately 254 bytes of stack space for local
variables. This does not include the overhead for calling DOS or the
shell via Int 21h. You must provide sufficient stack space for this.
VAP users need to allow for overhead of the NetWareShellServices API.
Objects are provided for the SMALL, MEDIUM, COMPACT and LARGE memory
models. There are three functions included in each object module:
_AsmLoginToFileServer (ObjName, ObjType, ObjPassword)
_AsmVerifyBinderyObjectPassword (ObjName, ObjType, ObjPassword)
_AsmChangeBinderyObjectPassword (ObjName, ObjType, ObjOldPass, ObjNewPass)
Where:
ObjName - A pointer to the Object's Name
ObjType - The Object's Type i.e. 1 for USER, ...
ObjPassword - A pointer to the Object's Password.
ObjOldPass - A pointer to the Object's old Password.
ObjNewPass - A pointer to the Object's new Password.
NOTE:
All pointers are model dependant. i.e. 2 byte for small and medium model
or 4 byte for compact and large.
Also, a global variable called __AsmDataElement has been declared.
__AsmDataElement is used to establish DS addressability BEFORE
calling any of the other APIs. This is ONLY needed if DS is NOT
pointing to DGROUP. If you will be calling the APIs without DS
pointing to DGROUP, you need to establish addressability first.
To do this, just "MOV AX,SEG __AsmDataElement", and "MOV DS,AX"
before calling the API. Be sure to save DS for your program!
All functions return a status code in the AX register. See your System Calls
Documentation for a description of the return codes.
Only registers SI, DI, BP, DS and ES are preserved. All others are destroyed.
To call any of these functions, simply push the parameters onto the stack in
the reverse order i.e. right to left. Be sure to pass the correct pointer
size! Following are samples for calling a small and large model function.
;Small Model Example
mov ax,offset DGROUP:Password ; user password
push ax
mov ax,1 ; type user
push ax
mov ax,offset DGROUP:Username ; user name
push ax
call near ptr _AsmLoginToFileServer
;Large Model Example
push ds
mov ax,offset DGROUP:Password ; user password
push ax
mov ax,1 ; type user
push ax
push ds
mov ax,offset DGROUP:Username ; user name
push ax
call far ptr _AsmLoginToFileServer
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Special Info for VAP users
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
This section applies only to users of the VAP routines.
You must provide a routine in your prelude module called:
'_CallNetWareShellServices'
which will perform a call to the NetWareShellServices entry point as
specified in the VAPs Header. Following is a sample of what it must look
like:
_CallNetWareShellServices proc ; for login.obj
public _CallNetWareShellServices
push ds ; save ds
xchg si,bx ; on entry si:bx pointer to
mov ds,bx ; request, make ds:si instead
call dword ptr cs:[NetWareShellServices] ; call OS
pop ds ; restore ds
cbw ; return code in AX
ret
_CallNetWareShellServices endp ; for login.obj