Category : Network Files
Archive   : ALOGIN.ZIP
Filename : LOGIN.DOC

Output of file : LOGIN.DOC contained in archive : ALOGIN.ZIP

Keyed Login Object Modules
Last Update: 02/03/92

This document describes the functions contained in the mLOGINx.OBJ files.
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. These
OBJs can be linked with languages using the Microsoft segment naming

Object Naming Convention:

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


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 these APIs before calling the functions in
this object, or they will not work.

All Functions require approximately 220 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)

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.

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:


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

_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
_CallNetWareShellServices endp ; for login.obj

  3 Responses to “Category : Network Files
Archive   : ALOGIN.ZIP
Filename : LOGIN.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: