home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Troubleshooting Netware Systems
/
CSTRIAL0196.BIN
/
attach
/
pcc
/
v08n03
/
netwrk.exe
/
LANTTECH.ZIP
/
TECH.DOC
Wrap
Text File
|
1989-12-13
|
43KB
|
1,165 lines
LANtastic (tm) Network Operating System
Technical Reference Manual
=================================================
Introduction
************
This manual is intended for programer who wishs to make use of the
network services of the LANtastic Network Operating System (LANOS).
LANOS services described in this manual are for version 2.53 or above.
LANOS services fall into two categories: Standard MS-DOS compatible
network functions and Extended network functions. Since LANOS runs on
any NETBIOS compatible LAN, NETBIOS functions are also available
although they are intrinsic to the underlying NETBIOS implementation.
This manual assumes that the reader is familiar with 8088/8xx6 assembly
language and DOS system functions. Since the standard MS-DOS compatible
network functions are described in the DOS technical reference manual,
we will not go into great detail in this manual.
Throughout this manual references will be made to network paths. LANOS
network paths are fully compatibly with MS-DOS network paths. Network
paths are similar to file paths except that they reference files through
the network. The general syntax for network path is
\\server-name\path-name
where
server-name is 1 to 15 character name of a network file server
path-name is a DOS path on the server
For example,
\\MAIN-MACHINE\PROGS\DATA\FROG.TXT
refers to a file located on server MAIN-MACHINE. The path required to
access the file is PROGS\DATA\FROG.TXT. The directory PROGS is a shared
network directory and may not actually exist on the server. It may in
fact be an entire disk.
MS-NET compatible networks (e.g. IBM-PC LAN) do not fully support
full paths for all systems calls (in particular Find First). LANOS,
however, supports full paths for all system calls that can take a
path argument. This means that many public domain directory
utilities will operate with a network path.
Error Codes
***********
All MS-DOS compatible system calls and all LANOS specific system calls
return error codes. The error code number is always returned in AX.
When an error occurs the carry flag (CY) is set. LANOS provides a
mechanism for expanding the error code number into a text string. The
following is a list of error codes which may be returned by LANOS:
Error
Number Meaning
-------------
01H Invalid function number
02H File not found
03H Path not found
04H File open limit has been exceeded or no handles left
05H Access denied
06H Invalid handle
07H Memory control blocks destroyed
08H The memory limit has been exceeded
09H Invalid memory block address
0AH Invalid environment
0BH Invalid format
0CH Invalid access code
0DH Invalid data
0EH RESERVED
0FH Invalid drive was specified
10H Attempt to remove current directory
11H Not same device
12H No more files
13H Attempt to write on write protected disk
14H Unknown unit
15H Drive not ready
16H Unknown command
17H Data CRC error
18H Bad req stuc length
19H Seek error
1AH Unknown media
1BH Sector not found
1CH No paper
1DH Write fault
1EH Read fault
1FH General failure
20H Sharing violation
21H Lock violation
22H Invalid disk change
23H FCB unavailable
24H Sharing buffer overflow
25H RESERVED
26H Cannot complete file operation
27H-31H RESERVED
32H Network request not supported
33H Network node ??????????????? is not listening
34H The name already exists on the network
35H Cannot locate network name
36H The network is busy
37H Server connection to network node ??????????????? broken
38H The NETBIOS command limit has been exceeded
39H The network adapter has malfunctioned
3AH Incorrect response received from network node ???????????????
3BH Unexpected network error from network node ???????????????
3CH Incompatible network node ???????????????
3DH Print queue full on network node ???????????????
3EH No room for print file on network node ???????????????
3FH The print file has been deleted on network node ???????????????
40H The network name has been deleted
41H You have been denied access on network node ???????????????
42H Invalid network device
43H The network name was not found
44H The network name limit has been exceeded
45H The session limit has been exceeded
46H Network node ? has been temporarily paused
47H The network request to network node ? was denied
48H Print or disk redirection is paused on network node ???????????????
49H Invalid network version
4AH Account has expired
4BH Password has expired
4CH Login attempt invalid at this time
4DH-4FH RESERVED
50H The file already exists
51H RESERVED
52H Cannot make directory entry
53H Failure on critical error
54H Too many redirections or logins to network node ???????????????
55H Duplicate redirection or login to network node ???????????????
56H Invalid username or password
57H Invalid parameter
58H Network data fault
59H Function not supported on network
5AH Required system component not installed
When you expand the error code into a text string the above question
marks are expanded to the name of the node you were referring to. To
expand an error code into a text string you will need to issue a
multiplex interrupt (2FH). The calling sequence is
INPUT AH 5
AL 0 For installation check
# for error code (in pre DOS 4.00)
1 or 2 for error code in DOS 4.00
BX in Error code
OUTPUT FLAGS NC if error code converted to text
CY is error code can't be converted
ES:DI Pointer to ASCIZ text buffer containing error text.
This is a read only text buffer and you must not alter
the text in this buffer.
If the error code is RESERVED it is expanded to "General failure". The
maximum width for the question mark fields is 15 characters. The error
text is automatically adjusted so that extra spaces are not in the text
buffer. For example the error text
Network node ??????????????? is not listening
would be
Network node HOST is not listening
for node HOST.
When coding for LANOS the following code sequence will work for both
DOS 4.x and DOS 3.x:
mov ax, error_number ; Get error number
mov bx, ax ; Place in BX also
mov ah, 5
int 2fh
; ES:DI now points to error string.
LANOS does not check AL when running under DOS 4.00 and thus the
values in AL are not important. The value in AL is important if you
are running on another network operating system such as IBM PC LAN.
Testing for the Existence of the NETBIOS
****************************************
Before NETBIOS calls may be performed the NETBIOS must be installed.
The following code fragment illustrates how you should test for the
existence of the NETBIOS.
; An illegal NCB used to determine if the NETBIOS is present
;
illegal_NCB db 7fh ; Illegal command
db 63 dup (0) ; Rest of NCB is 0
; NETBIOS_PRESENT - Determine if we have a NETBIOS present
;
; DS in Current Data segment
; ES in Current Data segment
; AX out Destroyed
; BX out Destroyed
; FLAGS out NO CARRY if present
; CARRY if not present
;
NETBIOS_present proc
push es
mov ax, 355cH ; Get 5C vector
int 21H
mov ax, es
pop es
cmp ax, 0F000h ; Pointing into BIOS?
je no_vector ; Yes - Then no real 5C
or ax, bx ; Test for 0
jnz have_vector ; Non-zero - Have 5C int
no_vector:
stc ; Show not present
ret
; We have a legal 5C vector. Now perform an illegal NCB
; request to make sure that it is a legal NETBIOS.
;
have_vector:
mov al, 0
mov bx, offset illegal_NCB
int 5cH
test al, al ; Will get changed on illegal cmd
jz no_vector
clc
ret
NETBIOS_present endp
Testing for the Existence of the Redirector and Server
******************************************************
You can issue a multiplex interrupt (2FH) to determine if the
redirector or server software is installed.
INPUT AX B800H
OUTPUT AL 0 If neither redirector or server installed
NZ Redirector or server installed
BL Contains bits indicating which software is installed
(both bits will be set when both software is running)
01000000b Server is installed
00001000b Redirector is installed
Determining Network Software Version
************************************
You can issue a multiplex interrupt to determine which version of the
network software is running.
INPUT AX B809H
OUTPUT AH Major version number.
AL Minor version number.
NOTE: The version numbers are returned as decimal numbers. For
example, version 2.53 would be
AH 2
AL 53 decimal or 35 hex
The Alternate NETBIOS Interface
*******************************
The normal interface to the NETBIOS is via interrupt 5CH; the
alternate interrupt to the NETBIOS is via interrupt 2AH. The 2A
interface is provided by the LANtastic redirector. Some NETBIOS
programs do not use the standard 5C interface but rather the
alternate 2A interface.
The alternate interface (2A) was originally designed as a "higher"
level interface to network communications rather than the "low" level
interface (5C) provided by the NETBIOS. The 2A interface, however,
does not support any higher level functions than does the 5C
interface and therefore has not become a defacto standard as has the
5C interface.
The REDIR intercepts 2A interrupts and reformats them to 5C
interrupts, thereby providing a 2A interface to the NETBIOS. A list
of the 2A interface functions that are supported are described below.
2A interrupt functions are invoked by loading the AH or AX register
with a function code and then issuing a software interrupt 2A. For
example,
mov ah, 0 ; Installation check
int 2AH ; Call alternate NETBIOS interface
---------
FUNCTION: Installation check
DESCRIPTION: Checks to see if a 2A interface is installed.
INPUTS: AH in 0
OUTPUTS: AH out 0 if not installed
AH NZ if installed
---------
FUNCTION: Execute NETBIOS with no error retry
DESCRIPTION: Executes a NETBIOS command (similar to 5C interface).
The NETBIOS command may be optionally retried on certain
error conditions.
INPUTS: AX 01xxH or 0401H to execute NETBIOS with
no error retry
0400H to execute NETBIOS with error retry.
Error codes that are automatically retried are
No sessions resources (09H)
No listen (12H)
Interface busy (21H)
ES:BX Pointer to NCB
OUTPUTS: AL NETBIOS error code
AH 0 if no error
1 if error
---------
FUNCTION: Get resource information
DESCRIPTION: Return NETBIOS resources which are available for use.
INPUTS: AH 5
OUTPUTS: BX Available names (16 - names in use)
CX Available NCBs (free NCBs)
DX Available sessions (max sessions -
pending sessions)
Controlling redirected printer streams
**************************************
You can control how output is sent to redirected printers in three ways:
1. You can set a "combine" mode which does not separate multiple
print jobs when programs terminate or when the printer is
opened or closed.
2. You can set a "separate" mode which separates print jobs when
a program terminates or when the printer is opened and closed.
3. You can "flush" redirected output, thereby forcing the printer
to begin printing.
The above three functions may be performed using the NET LPT COMBINE
NET LPT SEPARATE and NET LPT FLUSH commands. Often these commands
need to be performed within programs. Two software interfaces are
provided to allow you to control these functions. These interfaces
consist of 2AH interrupt interface and a standard 21H system call
interrupt interface.
NOTE: The DOS COMMAND.COM program always sets redirected printer
separate mode when it prompts for command input and therefore
these interrupts are ineffective across multiple program
invocations performed through COMMAND.COM. The only exception
to this is inside batch files, since COMMAND.COM does not prompt
for command input.
2AH interrupt interface
-----------------------
FUNCTION: Set spooled output to combine mode
DESCRIPTION: All printer output is combined into 1 print job regardless
of the printer being opened or closed or programs
terminating.
INPUTS: AX 0601H
OUTPUTS: none
---------
FUNCTION: Set spooled output in separate mode
DESCRIPTION: Printer output is not combined when multiple programs are
run or when the printer is opened or closed. This command
implicitly starts a new print job.
INPUTS: AX 0602H
OUTPUTS: none
---------
FUNCTION: Flush printer output
DESCRIPTION: Printer output is flushed and a new print job is started.
If no output exists to be flush then this function has no
effect.
INPUTS: AX 0603H
OUTPUTS: none
21H Interrupt interface
-----------------------
FUNCTION: Return redirected printer mode
DESCRIPTION: The current printer mode (either printer output
combined or printer output separated) is returned.
INPUTS: AX 5D07H
OUTPUTS: DL 0 Redirected output is being combined
1 Redirected output is being separated
---------
FUNCTION: Set redirected printer mode (either printer output
DESCRIPTION: The current printer mode (either printer output
combined or printer output separated) can be set.
INPUTS: AX 5D08H
DL 0 Set redirected output to be combined
1 Set redirected output to be separated. This
command implicitly starts a new print job.
OUTPUTS: none
---------
FUNCTION: Flush printer output
DESCRIPTION: Printer output is flushed and a new print job is started.
If no output exists to be flush then this function has no
effect.
INPUTS: AX 5D09H
OUTPUTS: none
MS-DOS Compatible Network Functions
***********************************
All MS-DOS network system call functions with the exception of GET and
SET printer setup string (5E02 and 5E03) are fully supported. The
reason that these functions are not fully supported is that printer
setup strings are set by the system administrator and are stored on
the server. The printer setup strings are only changeable using the
NET_MGR program.
A quick reference list of the MS-DOS compatible network functions is
provided at the end this manual. The following network functions are in
numerical order.
5E00H Get Machine Name
------------------------
INPUT AX 5E00H
DS:DX Pointer to 16 byte buffer where ASCIZ machine name is
returned
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
CL NETBIOS name number of machine name.
CH 0 If machine name is not set
Not zero if machine name has been set
DS:DX ASCIZ machine name
Get Machine Name returns the name which your computer is known by on
the network. This name is specified when you run the redirector. You
may use the name and NETBIOS name number returned by this function to
perform NETBIOS commands. You must not use any other names added by
LANOS.
5E02H Set Printer Setup
-------------------------
INPUT AX 5E02H
BX Redirection list index.
CX Setup string size
DS:SI Pointer to printer setup string
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
Set printer setup sets a setup string to be sent to the network printer
whenever a file is queued to the printer.
NOTE: LANOS does not process this request since printer setup strings
are controlled by the system administer using the NET_MGR program.
The system call DOES NOT return an error, however.
5E03H Get Printer Setup
-------------------------
INPUT AX 5E03H
BX Redirection entry index.
ES:DI Pointer to area to contain setup string
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
CX Length of setup string.
Get setup string will return the setup string set with 5E02H (Set
Printer Setup) above.
NOTE: LANOS does not process this request since printer setup strings
are controlled by the system administer using the NET_MGR program.
The system call DOES NOT return an error, however, and the length
of the setup string (CX) is 0.
5F02H Get Redirected Device Entry
-----------------------------------
INPUT AX 5F02H
BX Redirection entry index. Index 0 specifies the first entry.
DS:SI Pointer to 16 byte area which will receive the ASCIZ device
name which the redirection index corresponds with.
ES:DI Pointer to 128 byte area which will receive the ASCIZ
network path that the redirected device refers to.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
BL Type of device
3 Printer device
4 Disk device
BH Device status
Bit 0=0 If device is valid
0=1 If device is not valid
Bits 1-7 reserved
CX Value stored by 5F03 call. Should be 0 for compatibility with
LANOS.
DX May be destroyed
BP May be destroyed
DS:SI Filled ASCIZ device name
ES:DI Filled ASCIZ network path
Get Redirected Device Entry returns information about a single
redirected device (see 5F03 Redirect Device). This function may be
used to scan the list of redirected devices.
5F03H Redirect device
-----------------------
INPUT AX 5F03H
AX Error code if error
BL Type of device
3 Printer device
4 Disk device
CX Value to store with redirected device. Set this to 0
for compatibility with LANOS.
DS:SI Pointer to ASCIZ device name to redirect. For printer
device specify: PRN, LPT1, LPT2, LPT3
For disk devices specify A:, B:, C:, etc.
ES:DI Pointer to network path to redirect the device to.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
Redirect device allows you to connect local devices to network paths.
For example you can connect your LPT1 to a printer on another node.
References to LPT1 are routed to the network.
5F04H Cancel Device Redirection
---------------------------------
INPUT AX 5F04
DS:SI Pointer to device name to cancel redirection for.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
Cancel device redirection allows you to remove a device redirection so
that the device is restored to its former state.
LANOS Extended Network Functions
********************************
LANOS provides an extended set of network system calls which allow
further network control which is not provided by the standard MS-DOS
compatible network requests.
5F80H Get Login Entry
-----------------------
INPUT AX 5F80H
BX Login entry index (0 based).
ES:DI Pointer to 16 byte buffer which will receive computer name that
you are logged into.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
ES:DI Pointer to filled ASCIZ buffer. The logged in machine name
DOES NOT include the \\ prefix.
5F81H Login to a Server
-------------------------
INPUT AX 5F81H
ES:DI Pointer to login path and password in the following form
\\computer-name\username<0>password<0>
Passwords may be omitted blank but binary 0's (<0>) are
still needed
BL Adapter number to login into through
0ffh To try all valid adapters
0-3 To try adapter 0-3 explicitly
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
5F82H Logout of a Server
--------------------------
INPUT ES:DI Pointer to server name to log out of in the form
\\computer-name<0>
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
5F83H Get username entry
--------------------------
INPUT AX 5F83H
BX Login entry index (0 based).
ES:DI Pointer to 16 byte buffer which will receive user name that
you are logged into.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
ES:DI Pointer to filled ASCIZ buffer.
5F84H Get inactive server entry
---------------------------------
INPUT AX 5F84H
BX Non-logged in server index.
ES:DI Pointer to 16 byte buffer which will receive a server name
that you are NOT logged into but is available to for logging
in.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
DL Adapter number the non-logged in server is on. This number
may be used as input "Login to Server" (5F81) system call.
ES:DI Pointer to filled ASCIZ buffer. The non-logged in server
name DOES NOT include the \\ prefix.
5F85H Change password
-----------------------
INPUT AX 5F85H
ES:DI Pointer to \\computer-name\old-password<0>new_password<0>
You must be logged into computer-name
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
CHANGE PASSWORD changes a password given an old (current) and new
password.
5F86H Disable account
-----------------------
INPUT AX 5F86H
ES:DI Pointer to machine name in the form \\machine-name<0>
You must be logged into the machine before this system
call will work.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
DISABLE ACCOUNT disables a user's currently logged in account.
Applies only when concurrent login entries are set at 1 (by
NET_MGR). Requires system manager to re-enable account.
5F97H Copy file
-----------------
INPUT AX 5F97H
CX:DX Amount to copy
SI Source handle
DI Destination handle
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
AX:DX Amount copied
COPY FILE copies the source file (designated by the input handle) to the
destination file (designated by the output handle).
5F98H Send unsolicited message
--------------------------------
INPUT AX 5F98H
DS:SI Pointer to message buffer. Format of buffer is
described below
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
NOTE: currently no errors are returned
; Format of DG_message command. The 16 byte name fields are null
; terminated and contain the first n characters to be matched. For
; example AB<0> will match ABxxxxxx...
;
message_buffer struc
MB_reserved db ? ; Reserved field used by system call
MB_type db ? ; User defined message type
MB_machine db 16 dup (?) ; Machine name that message is destined for
MB_server db 16 dup (?) ; User must be logged into this server
MB_user db 16 dup (?) ; User must be using this username
MB_originator db 16 dup (?) ; Originator's machine name. Filled in
; when message is received
MB_text db 80 dup (?) ; Message text
message_buffer ends
; Message buffer type. The values 0-7fh are reserved for LANOS use. Other
; message types are user defined. You may, however, use message
; MBT_general since this is the message type that NET and LANPUP use
; to the send rude messages.
;
MBT_general equ 0 ; General message used by NET, LANPUP
; and others
MBT_warning equ 1 ; Server warning message.
5F99H Get last received unsolicited message
---------------------------------------------
INPUT AX 5F99H
ES:DI Pointer to message buffer. Format of buffer is
described above for 5F98H system call.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error (or no message pending)
5F9AH Get message processing flag
-----------------------------------
INPUT AX 5F9AH
OUTPUT DL Bits which describe what processing should be done when
an unsolicited message is received.
FLAGS NC If no error
CY If error occurred
AX Error code if error
; Message processing bits
;
MPB_beep equ 00000001b ; Beep before message delivered
MPB_deliverequ 00000010b ; Deliver message to message service
5F9BH Set message processing flag
-----------------------------------
INPUT AX 5F9AH
DL Bits which describe what processing should be done when
an unsolicited message is received. See 5F9AH system
call for list of bits.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
5FA0H Get queue entry
-----------------------
INPUT AX 5FA0H
BX Queue entry index (0 for first entry)
DS:SI Pointer to memory block to transfer queue entry into.
ES:DI Pointer to ASCIZ server name in the form \\name<0>
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
BX Next queue entry index to use to find next entry.
DS:SI Filled memory block with queue entry info.
; Definition of a queue entry.
;
queue_entry struc
QE_status db ? ; Status of queue entry
QE_size dd ? ; Size of spooled file
QE_type db ? ; Type of queue entry
QE_output_control db ? ; Control of despooled file
QE_copies dw 1 ; Copies
QE_sequence dd ? ; Sequence number of queue entry
QE_spooled_file db 48 dup (?) ; Pathname of spooled file
QE_user db 16 dup (?) ; Username who spooled file
QE_machine db 16 dup (?) ; Machine name user was on
QE_date dw ? ; Date file spooled (MS-DOS format)
QE_time dw ? ; Time file spooled (MS-DOS format)
QE_destination db 17 dup (?) ; ASCIZ Device name or username destined for
QE_comment db 48 dup (?) ; Comment field
queue_entry ends
; Different queue entry statuses
;
QE_status_free equ 0 ; The queue entry is empty
QE_status_update equ 1 ; The queue entry is being updated
QE_status_hold equ 2 ; The queue entry is held
QE_status_wait equ 3 ; The queue entry is waiting for despool
QE_status_active equ 4 ; The queue entry is being despooled
QE_status_cancel equ 5 ; The queue has been canceled
QE_status_file_error equ 6 ; The spooled file could not be accessed
QE_status_spool_error equ 7 ; The destination could not be accessed
QE_status_rush equ 8 ; Rush this job
; Different types of queue entries
;
QE_type_print equ 0 ; Spooled printer queue file
QE_type_message equ 1 ; Spooled message
QE_type_local_file equ 2 ; Spooled local file
QE_type_remote_file equ 3 ; Spooled remote file
QE_type_modem equ 4 ; Spooled to remote modem
QE_type_batch equ 5 ; Spooled batch processor file
; Bit definitions for output control
;
QE_OC_keep equ 1000000b ; Keep after despooling (don't delete)
; For mail - allow delete only by owner
5FA1H Set queue entry
-----------------------
INPUT AX 5FA1H
BX Handle of opened queue entry
DS:SI Pointer to queue information buffer. The buffer must be
formatted as above.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
Set queue entry allows you to change certain fields in a queue entry.
The queue entry must be currently open and you must have a handle to it.
The only fields that are looked at and altered are:
QE_output_control
QE_copies
QE_destination (only for MAIL queue entries)
QE_comment
5FA2H Control queue
---------------------
INPUT AX 5FA2
BL Queue control command
CX:DX Sequence number to control. For despooler control the
sequence number is ignored.
ES:DI ASCIZ computer name
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
Control queue allows you to manipulate the despooling if you have
privileges and to alter print jobs.
; Control queue commands. Stared (*) entries are privileged commands which
; require Q privilege.
;
CQ_start equ 0 ;* Start despooling
CQ_halt equ 1 ;* Halt despooling
CQ_halt_EOJ equ 2 ;* Halt despooling at end of job
CQ_pause equ 3 ;* Pause the despooler at end of job
CQ_single equ 4 ;* Print single job
CQ_restart equ 5 ;* Restart the current print job
CQ_cancel equ 6 ; Cancel the currently printing job
CQ_hold equ 7 ; Hold the queue entry
CQ_release equ 8 ; Release a held queue entry
CQ_rush equ 9 ;* Make the queue entry a rushed job
5FA7H Create User Audit Entry
-------------------------------
INPUT AX 5FA7H
DS:DX ASCIZ Reason code (up to 8 characters)
DS:SI ASCIZ Variable reason code (up to 128 characters)
ES:DI Pointer to ASCIZ machine name in the form \\server<0>
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
5FB0H Get Active User information
-----------------------------------
INPUT AX 5FB0H
BX Server login entry index to return information about
DS:SI Pointer to user buffer for a single server login entry
ES:DI Pointer to ASCIZ machine name in the form \\server<0>
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
DS:SI Filled buffer with login entry information.
Get active user information returns a server's information about a
currently active user.
; Definition of active user entry
;
active_user_entry struc
AUE_VCID dw 0 ; Virtual circuit number
AUE_state db ? ; Login state defined below
AUE_command db ? ; Last command issued (see below)
AUE_IO db 5 dup (?) ; Number of I/O bytes
; (40 bit unsigned binary number)
AUE_requests db 3 dup (?) ; Number of server requests 24 bit u/bin. num
AUE_name db 16 dup (?) ; Name of user who is logged in
AUE_machine db 16 dup (?) ; Name of remote logged in machine
active_user_entry ends
; Definition of the various login states and privilege.
;
AUE_state_starting equ 00000000b ; We are in the middle of a login
AUE_state_in equ 00000001b ; We are fully logged in
AUE_state_RPL equ 00000010b ; Remote program load login
AUE_privilege_superACL equ 10000000b ; Bypass ACLs
AUE_privilege_superqueue equ 01000000b ; Bypass queue protection
AUE_privilege_peer equ 00100000b ; Treat as local process
AUE_privilege_supermail equ 00010000b ; Bypass mail protection
AUE_privilege_audit equ 00001000b ; The user can create audit entries
; Definition of last command field
;
AUEC_login equ 0 ; Login into a server
AUEC_terminate equ 1 ; Process termination
AUEC_open equ 2 ; Open a file
AUEC_close equ 3 ; Close a file
AUEC_create equ 4 ; Create a file if it's there or not
AUEC_new equ 5 ; Create a new file that is not there
AUEC_unique equ 6 ; Create a unique file
AUEC_commit equ 7 ; Commit disk data to disk
AUEC_read equ 8 ; Read from file
AUEC_write equ 9 ; Write to file
AUEC_delete equ 10 ; Delete file
AUEC_set_attr equ 11 ; Set file attributes
AUEC_lock equ 12 ; Lock byte range
AUEC_unlock equ 13 ; Unlock byte range
AUEC_create_dir equ 14 ; Create a subdirectory
AUEC_delete_dir equ 15 ; Delete a subdirectory
AUEC_rename_file equ 16 ; Rename a file
AUEC_find_first equ 17 ; Find first matching file
AUEC_find_next equ 18 ; Find the next matching file
AUEC_disk_free equ 19 ; Get disk free space
AUEC_get_queue equ 20 ; Get a queue entry
AUEC_set_queue equ 21 ; Set a queue entry
AUEC_control_queue equ 22 ; Control the queue
AUEC_get_login equ 23 ; Return login information
AUEC_get_link equ 24 ; Return link description
AUEC_seek equ 25 ; Seek to a file position
AUEC_get_time equ 26 ; Get server's time
AUEC_audit equ 27 ; Create audit entry
AUEC_multi_open equ 28 ; Open file in a multitude of modes
AUEC_change_password equ 29 ; Change a password
AUEC_disable_account equ 30 ; Disable account from further log ins
AUEC_copy_file equ 31 ; Local server file copy
5FB1H Get Shared directory information
----------------------------------------
INPUT AX 5FB1H
DS:SI Pointer to 64 byte buffer to receive link description
ES:DI Pointer to ASCIZ machine name and shared directory in form
\\server\shared-resource<0>
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
CX ACL privilege bits for requesting user
DS:SI Filled buffer with ASCIZ description of shared
resource
; ACL bit definition
;
ACL_read equ 1000000000000000b ; (R) Allow open for read and reading
ACL_write equ 0100000000000000b ; (W) Allow open for write and writing
ACL_create_file equ 0010000000000000b ; (C) Allow file creation
ACL_create_dir equ 0001000000000000b ; (M) Allow directory creation
ACL_lookup equ 0000100000000000b ; (L) Allow file/directory lookups
ACL_delete_file equ 0000010000000000b ; (D) Allow file deletion
ACL_delete_dir equ 0000001000000000b ; (K) Allow directory deletion
ACL_rename equ 0000000100000000b ; (N) Allow file renaming
ACL_execute equ 0000000010000000b ; (E) Allow program execution
ACL_physical equ 0000000001000000b ; (P) Allow physical access to device
ACL_attribute equ 0000000000100000b ; (A) Allow attribute changing
5FC0H Get Server's time
-------------------------
INPUT AX 5FC0H
DS:SI Pointer to 8 byte time block
ES:DI Pointer to ASCIZ server name to get time from.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
DS:SI Filled buffer with time information
time_block struc
TB_year dw ? ; Year
TB_day db ? : Day of month (1-31)
TB_month db ? ; Month (1-12)
TB_minutes db ? ; Minutes (0-59)
TB_hour db ? ; Hour (0-23)
TB_hundredths db ? ; Hundredths of seconds (0-99)
TB_seconds db ? ; Seconds (0-59)
time_block ends
5FD0H Get redirected line printer timeout
------------------------------------------
INPUT AX 5FD0H
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
CX Redirected line printer timeout in ticks (1 tick = 1/18.2
seconds). A value of 0 means timeouts are disabled.
5FD1H Set Redirected line printer timeouts
-------------------------------------------
INPUT AX 5FD1H
CX Printer timeout in ticks (1/18.2 second). A value of 0
disables timeouts.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
5FE0H Get DOS service vector
------------------------------
INPUT AX 5FE0H
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
ES:BX Pointer to current DOS service routine
5FE1H Set DOS service vector
------------------------------
INPUT AX 5FE1H
ES:BX New DOS service vector location. To chain into the DOS
service vector you must obtain the old vector (5FE0) and
save it. When your service routine is called you will
need to call the old vector before beginning your
processing.
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
5FE2H Get message service vector
----------------------------------
INPUT AX 5FE2H
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
ES:BX Pointer to current message service routine
5FE3H Set message service vector
----------------------------------
INPUT AX 5FE3H
ES:BX New message service vector location. To chain into the
message service vector you must obtain the old vector
(5FE2) and save it. When your service routine is called
you will need to call the old vector before beginning your
processing.
(NOTE: when a service routine is called ES:BX will point to
the currently received message)
OUTPUT FLAGS NC If no error
CY If error occurred
AX Error code if error
Quick Reference list of MS-DOS compatible Network System Calls
**************************************************************
5E00H Get Machine Name
5E02H Set Printer Setup
5E03H Get Printer Setup
5F02H Get Redirected Device Entry
5F03H Redirect device
5F04H Cancel Device Redirection
Quick Reference List of LANtastic NOS Only Network System Calls
***************************************************************
5F80H Get Login Entry
5F81H Login to a Server
5F82H Logout of a Server
5F83H Get username entry
5F84H Get inactive server entry
5F85H Change password
5F86H Disable account
5F97H Copy file
5F98H Send unsolicited message
5F99H Get last received unsolicited message
5F9AH Get message processing flag
5F9BH Set message processing flag
5FA0H Get queue entry
5FA1H Set queue entry
5FA2H Control queue
5FA7H Create User Audit Entry
5FB0H Get Active User information
5FB1H Get Shared directory information
5FC0H Get Server's time
5FD0H Get redirected lineprinter timeout
5FD1H Set Redirected lineprinter timeouts
5FE0H Get DOS service vector
5FE1H Set DOS service vector
5FE2H Get message service vector
5FE3H Set message service vector; Active user entry commands