Int 2F Fn 7A20 - Novell Netware - Adv Netware 4.0 Dos Requester - Get Vl [N]

AX = 7A20h
BX = 0000h

Return: AX = 0000h on success (installed)
ES:BX -> far call address for DOS Requester (see #2545)

Notes: the DOS Requester replaces the NetWare Shell (ANETx, NETx) on
NetWare LAN's as of the release of Advanced NetWare 4.0 (1993). It
is backward compatible with NetWare 2.1x through 3.11 servers as
well. Note that there was a NetWare 4.0 in the early 1980's, which
can cause confusion.
this call is used as the installation check by VLM.EXE, which is the
loader for all the modules of the DOS Requester
.VLMs are standard old .EXE format executables whose normal entry point
merely terminates to prevent loading from the command line (Novell's
VLMs all return errorlevel 6). The real entry point is found by
looking at the VLM header at the beginning of the load image
(see #2548)
Index: installation check;NetWare 4.0 DOS Requester

See Also: AX=7A20h/BX=0001h,AX=7A20h/BX=0002h

(Table 2545)
Call DOS Requester entry point with:
STACK: WORD destination function
WORD destination VLM ID (see #2547)
WORD source VLM ID (0000h = application program)
other registers (except BP) as appropriate for function

Return: AX = status code (0000h,8811h,8846h,8848h,8853h) (see #2546)
ZF set if successful, clear on error
other registers as appropriate for function
STACK popped
BP destroyed

(Table 2546)
Values for VLM status code:
0000h successful
88xxh error generated by requester
8801h invalid or non-attached connection handle
8802h drive in use (OS/2 only)
8803h cannot add CDS
8804h bad path
8805h error sending or receiving NCP packets
8806h unknown network error
8807h invalid server connection slot
8808h no connection slots available
880Ah no route to server
880Bh "BAD_LOCAL_TARGET" (OS/2 only)
880Ch too many request fragments
880Dh "CONNECT_LIST_OVERFLOW" (OS/2 only)
880Eh buffer overflow on receive
880Fh no connection to server
8810h no router found (OS/2 only)
8811h nonexistent function called
8830h internal server request attempted between two separate connections
8831h no primary connection set
8833h invalid buffer length
8834h invalid user name
8835h no local print spooler installed
8836h attempted function with invalid parameter
8837h failed to open configuration file (OS/2 only)
8838h no configuration file (OS/2 only)
8839h configuration file read failed (OS/2 only)
883Ah line too long in configuration file (OS/2 only)
883Bh configuration lines ignored (OS/2 only)
883Ch foreign resource
883Dh daemon already installed (OS/2 only)
883Eh print spooler already installed
883Fh local connection table already full
8840h configuration section not found (OS/2 only)
8841h invalid transport type
8842h TDS tag in use (OS/2 only)
8843h TDS out of memory (OS/2 only)
8844h called TDS function with invalid tag
8845h TDS write was truncated
8846h called partially asynchronous function while it was busy
8847h unable to find any responding servers
8848h non-loaded or nonexistent VLM called
8849h network drive already mapped
884Ah attempted map to local drive which was already in use
884Bh no more drives available for mapping
884Ch device is not redirected
884Dh no more SFT entries (too many handles)
884Eh unable to unload
884Fh connection entry was already in use
8850h too many reply fragments
8851h name table already full
8852h socket not open
8853h memory management error
8854h SFT III switch occurred in mid-transfer
8855h preferred server was not found (alternate returned)
8856h device not recognized
8857h bad network byte
88A0h memory allocation error
88A1h connection timeout failure
88A2h transport: bad request
88A3h specified transport not installed
88A4h unable to open connection with specified parameters
88A6h unsupported function
88A7h no such task
88A8h too many tasks
88A9h version mismatch
88AAh request cancelled
88ABh invalid NDS name
88ACh unable to perform operation while logged into NDS
88ADh requester not available for use
88AEh MacIPX not configured properly
88AFh no servers found
88B0h no volume or session associated with identifier
88B1h not a NetWare volume
88B2h MacIPX version incompatible with Requester
88B4h MacIPX not open
88B5h insufficient stack
88B6h client API already initialized
88B7h checksums required by client are not available
88B8h packet signing required by client are not available
88B9h server requires checksum
88BAh server requires packet signing
88BBh already logged in
88BCh negotiated checksums but connection timed out
89xxh error generated by server
low byte = return code from server (see also #1615,#1649)
8900h server successful
8901h out of disk space
897Eh NCP boundary check failed
897Fh ???
8980h lock failed; file in use
8981h out of handles
8982h no open privileges
8983h hard (non-correctable) I/O error
8984h no creation privileges
8985h no create/delete privileges
8986h attempted to create a file which already exists read-only
8987h filename error during creation (wildcards in name)
8988h invalid file handle
8989h no search privileges
898Ah no deletion privileges
898Bh no rename privileges
898Ch no modify privileges
898Dh some affected files are in use
898Eh all affected files are in use
898Fh some affected files are read-only
8990h all affected files are read-only; volume read-only
8991h some files could not be renamed because target names already exist
8992h all affected names exist
8993h no read privileges
8994h no write privileges
8995h file detached
8996h server out of memory
8997h no disk space for spool file
8998h disk map error; volume does not exist
8999h directory full
899Ah attempt to rename across volumes
899Bh bad directory handle
899Ch invalid path; no more trustees
899Dh no directory handles
899Eh bad filename
899Fh directory active
89A0h directory not empty
89A1h directory I/O error
89A2h I/O lock error
89A3h-89A5h ???
89A6h auditing is active
89A7h auditing version error
89A8h no auditing rights
89A3h-89BEh ???
89BFh invalid name space
89C0h no account privileges
89C1h no account balance
89C2h credit limit exceeded
89C4h account disabled
89C5h login lockout (intruder detection activated)
89C6h no console rights
89C7h-89CFh
89D0h queue error
89D1h no queue
89D2h no queue server
89D3h no queue rights
89D4h queue full
89D5h no queue job
89D6h no job rights; unencrypted password
89D7h queue servicing error; duplicate password; bad account
89D8h queue not active; password too short
89D9h station not queue server; maximum logins exceeded
89DAh queue halted; bad login time
89DBh maximum queue servers; unauthorized login station
89DCh account disabled or expired
89DEh password expired (all grace logins used up)
89DFh password expired but login allowed (grace login)
89E0h-89E6h ???
89E7h no disk track
89E8h property is not an item property; write to group
89E9h member exists
89EAh no such member
89EBh property is not a set property
89ECh no such set
89EDh property exists
89EEh object exists
89EFh illegal name
89F0h illegal wildcard
89F1h invalid bindery security level
89F2h not allowed to read object
89F3h not allowed to write/rename object
89F4h not allowed to delete object
89F5h not allowed to create object
89F6h not allowed to delete property
89F7h not allowed to create property; attempt to use non-local drive
89F8h not allowed to write property; already attached to server
89F9h not allowed to read property; no free connection slots
89FAh temporary remap error; no more server slots
89FBh no such property; invalid parameters
89FCh no such object; internet packet request canceled; unknown file server
89FDh bad station number; lock collision
89FEh directory locked; bindery locked; timeout
89FFh general error; hard error; lock error

Note: some server-generated error codes have multiple interpretations; use
the one appropriate to the failing call

(Table 2547)
Values for VLM identifier:
0001h VLM.EXE Virtual Loadable Modules manager (see also #2550)
0010h CONN.VLM connection table manager (see also #2553)
0020h TRAN.VLM transport protocol multiplexor (see also #2557)
0021h IPXNCP.VLM transport protocol implementation using IPX (see #2559)
0022h TCPNCP.VLM TCP/IP transport
0030h NWP.VLM NetWare protocol multiplexor (see also #2561)
0031h BIND.VLM bindery
0032h NDS.VLM NetWare Directory Services (see also #2563)
0033h PNW.VLM Personal NetWare
0034h RSA.VLM RSA encryption for directory services re-authentication
0040h REDIR.VLM DOS redirector (see also #2565)
0041h FIO.VLM file I/O (see also #2568)
0042h PRINT.VLM printer redirector (see also #2570)
0043h GENERAL.VLM misc functions for NETx and REDIR (see also #2574)
0050h NETX.VLM NetWare shell compatibility (see also #2576)
0060h AUTO.VLM auto-reconnect/auto-retry
0061h SECURITY.VLM enhanced security module (see #2578)
0100h NMR.VLM NetWare management responder
09F2h DRVPRN.VLM Desktop SNMP Services - Drive/Printer Mappings
09F5h SAA.VLM SAA client API for Netware
09F6h IPXMIB.VLM SNMP IPX-monitoring Module???
09F7h PNWMIB.VLM Personal Netware SNMP Instrumentation Module
09F8h PNWTRAP.VLM Personal Netware SNMP Trap Module
09F9h MIB2PROT.VLM MIB-II Protocol Groups
09FAh MIB2IF.VLM MIB-II Interfaces Group
09FBh NVT.VLM ???
09FCh WSTRAP.VLM Desktop SNMP Services - Trap Module
09FDh WSREG.VLM Desktop SNMP Services - Registration Module
09FEh WSASN1.VLM Desktop SNMP Services - ASN.1 Module
09FFh WSSNMP.VLM Desktop SNMP Services - Agent Module

Format of VLM header:
Offset Size Description (Table 2548)
00h DWORD -> initialization entry point
04h DWORD -> VLM API entry point
08h DWORD -> ??? entry point
0Ch DWORD -> ??? entry point
10h DWORD -> ??? entry point
...
var DWORD 00000000h (end of entry point list)
4 BYTEs signature "NVlm"
WORD VLM identifier (see #2547)
---v1.20+ ---
1Eh WORD ???
20h WORD Transient Switch Count
22h WORD VLM Call Count
24h WORD Offset ControlBlocks (See #2549)
26h WORD Current VLMID
28h BYTE Memory Type
00h=Conventional 02h=EMS 04h=XMS
29h BYTE Modules Loaded
2Ah WORD BlockId
2Ch WORD Transient Block
2Eh WORD Global Segment
30h 3 DWORDs pointers to AsyncQueue head, tail, and s???
3Ch 3 DWORDs pointers BusyQueue head, tail, and s???
48h WORD ReEntrance Level
4Ah WORD Full Map Count
4Ch WORD ???
4Eh 80 BYTEs ASCIZ configuration file filename

Note: the number of entry points in the header is reported as "Func" in the
VLM /D display.

Format of VLM Control Block for VLM v1.20 [array]:
Offset Size Description (Table 2549)
00h WORD Flag
02h WORD VLM Identifier (See #2547)
04h WORD Func
06h WORD Maps
08h WORD number of times called
0Ah WORD ???
0Ch WORD Transient Segment
0Eh WORD Global Segment
10h WORD Address Low
12h WORD Address High
14h WORD TSegSize
16h WORD GSegSize
18h WORD SSegSize
1Ah BYTE VLMName[9] ASCIZ

Note: this information is shown in VLM /d under the dashed line. There are
as many 35-byte blocks as modules loaded

See Also: #2548

(Table 2550)
Call VLM Manager (VLM.EXE, ID 0001h) with:
Func Description/Registers
01h VLM Notify
BX = function
0000h get version

Return: AX = status (see #2546)
BX = major version of VLM supported (0001h)
CX = minor version of VLM supported (0000h)
03h VLM Statistics
CX = length of buffer

.NG limit reached, continued in next section...