INT 2F - Novell NetWare - Adv NetWare 4.0 DOS Requester - GET VLM CALL ADDRESS AX = 7A20h BX = 0000h Return: AX = 0000h on success (installed) ES:BX -> far call address for DOS Requester (see #02859) 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 #02862) Index: installation check;NetWare 4.0 DOS Requester SeeAlso: AX=7A20h/BX=0001h,AX=7A20h/BX=0002h (Table 02859) Call DOS Requester entry point with: STACK: WORD destination function WORD destination VLM ID (see #02861) 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 #02860) ZF set if successful, clear on error other registers as appropriate for function STACK popped BP destroyed (Table 02860) 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 CDSsee Current Directory Structure 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 SFTsee System File Table 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 SFTsee System File Table 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(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. 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 #01927,#01961) 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 02861) Values for VLM identifier: 0001h VLM.EXE Virtual Loadable Modules manager (see also #02864) 0010h CONN.VLM connection table manager (see also #02867) 0020h TRAN.VLM transport protocol multiplexor (see also #02871) 0021h IPXNCP.VLM transport protocol implementation using IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. (see #02873) 0022h TCPNCP.VLM TCP/IPThe protocol suite originally developed by DARPA for use on its ARPAnet network, which is now known as the Internet. See also IP, TCP. transport 0030h NWP.VLM NetWare protocol multiplexor (see also #02875) 0031h BIND.VLM bindery 0032h NDS.VLM NetWare Directory Services (see also #02877) 0033h PNW.VLM Personal NetWare 0034h RSA.VLM RSA encryption for directory services re-authentication 0040h REDIR.VLM DOS redirector (see also #02879) 0041h FIO.VLM file I/O (see also #02882) 0042h PRINT.VLM printer redirector (see also #02884) 0043h GENERAL.VLM misc functions for NETx and REDIR (see also #02888) 0050h NETX.VLM NetWare shell compatibility (see also #02890) 0060h AUTO.VLM auto-reconnect/auto-retry 0061h SECURITY.VLM enhanced security module (see #02892) 0100h NMR.VLM NetWare management responder 09F2h DRVPRN.VLM Desktop SNMP Services - Drive/Printer Mappings 09F5h SAA.VLM SAA client API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. 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 02862) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> initialization entry point 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> VLM API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running. Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes. entry point 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ??? entry point 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ??? entry point 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> ??? entry point ... var DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 00000000h (end of entry point list) 4 BYTEs signature "NVlm" WORD VLM identifier (see #02861) ---v1.20+ --- 1Eh WORD ??? 20h WORD Transient Switch Count 22h WORD VLM Call Count 24h WORD Offset ControlBlocks (See #02863) 26h WORD Current VLMID 28h BYTE Memory Type 00h=Conventional 02h=EMSsee Expanded Memory Specification 04h=XMSsee Extended Memory Specification 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 ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. 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 02863) 00h WORD Flag 02h WORD VLM Identifier (See #02861) 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] ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. Note: this information is shown in VLM /d under the dashed line. There are as many 35-byte blocks as modules loaded SeeAlso: #02862 (Table 02864) Call VLM Manager (VLM.EXE, ID 0001h) with: Func Description/Registers 01h VLM Notify BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h VLM Statistics CX = length of buffer ES:DI -> buffer for statistics (see #02865) Return: AX = status (0000h if successful) buffer filled if successful 04h VLM internal use BX = function 0000h get interrupt vector (calls INT 21/AH=35h) 0001h begin critical section (calls INT 2F/AX=1681h) 0002h end critical section (calls INT 2F/AX=1682h) 0003h ??? Format of VLM.EXE statistics: Offset Size Description (Table 02865) 00h WORD size of statistics record in bytes (including this word) 02h WORD number of times a VLM has been mapped into memory 04h WORD number of times a VLM has been called 06h WORD offset of vcbArray buffer 08h WORD VLM ID of VLM currently mapped into memory 0Ah BYTE memory type: conventional/EMSsee Expanded Memory Specification/XMSsee Extended Memory Specification 0Bh BYTE number of loaded VLMs 0Ch WORD EMSsee Expanded Memory Specification/XMSsee Extended Memory Specification handle or 0000h if conventional memory 0Eh WORD start segment for conventional memory swap 10h WORD segment for global memory, or 0000h if conventional memory 12h 12 BYTEs queue structure for asynchronous calls (see #02866) 1Eh 12 BYTEs queue structure for synchronous calls (see #02866) 2Ah WORD current re-entrance level 2Ch WORD number of times EMSsee Expanded Memory Specification/XMSsee Extended Memory Specification map-out performed 2Eh BYTE stack switch control 2Fh BYTE flag: nonzero if switcher loaded 30h 80 BYTEs pathname of configuration file SeeAlso: #02864 Format of VLM.EXE queue structure: Offset Size Description (Table 02866) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. queue head (initially 00000000h) 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. queue tail (initialized to be same as head) 08h WORD current queue size (number of nodes in queue) 0Ah WORD maximum queue size (in nodes) SeeAlso: #02865 (Table 02867) Call Connection Manager (CONN.VLM, ID 0010h) with: Func Description/Registers 01h Conn Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h Conn Statistics CX = length of buffer ES:DI -> buffer for connection statistics (see #02868) Return: AX = status (0000h successful) 04h Conn Alloc HandleA short identifier, usually a small integer or a pointer, for some other object which is maintained or controlled by the operating system or environment; a particular handle may be valid system-wide or may have meaning only for a particular process. See also File Handle. Return: AX = status (0000h successful) CX = connection handle 05h Conn Validate HandleA short identifier, usually a small integer or a pointer, for some other object which is maintained or controlled by the operating system or environment; a particular handle may be valid system-wide or may have meaning only for a particular process. See also File Handle. CX = connection handle Return: AX = 0000h if valid handle 06h Conn Free HandleA short identifier, usually a small integer or a pointer, for some other object which is maintained or controlled by the operating system or environment; a particular handle may be valid system-wide or may have meaning only for a particular process. See also File Handle. CX = connection handle Return: AX = status (0000h successful) 07h Conn Get Entry Field BH = connection parameter (see #02870) CX = connection handle DX = value if BH is non-array parameter DH = offset in array if BH is array parameter DL = number of bytes to copy if BH is array ES:DI -> return buffer if BH is array Return: AX = 0000h if successful DL/DX = value if non-array parameter DH = maximum number of bytes in buffer if array parameter DL = number of bytes copied if array BX destroyed 08h Conn Set Entry Field BH = connection parameter (see #02870) CX = connection handle DL/DX = value if BH is non-array parameter DH = offset in array if BH is array parameter DL = number of bytes to copy if BH is array DS:SI -> buffer if BH is array Return: AX = 0000h if successful DH = maximum number of bytes in buffer DL = number of bytes copied BX destroyed 09h Conn Reset Entry Field BH = connection parameter (see #02870) CX = connection handle Return: AX = 0000h if successful BX,DX destroyed 0Ah Conn Lookup HandleA short identifier, usually a small integer or a pointer, for some other object which is maintained or controlled by the operating system or environment; a particular handle may be valid system-wide or may have meaning only for a particular process. See also File Handle. BL = lookup type (00h equal, 40h not equal) BH = connection parameter (see #02870) CX = connection handle, 0000h if first DL/DX = value if BH is non-array parameter DH = offset in array if BH is array parameter DL = number of bytes to copy if BH is array DS:SI (ES:DI???) -> buffer if BH is array Return: AX = 0000h if successful CX = handle matching given parameters 0Dh Conn Name Lookup CX = connection handle ES:DI -> 49-byte buffer for server name or 0000h:0000h Return: AX = 0000h if successful BX = length of server name ES:DI buffer filled if pointer not 0000h:0000h 0Eh Conn Name To HandleA short identifier, usually a small integer or a pointer, for some other object which is maintained or controlled by the operating system or environment; a particular handle may be valid system-wide or may have meaning only for a particular process. See also File Handle. DS:SI -> uppercased server name CX = length of server name, 0000h if ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. name Return: AX = error code or 0000h if successful CX = connection handle if successful 0Fh Conn Get Num Connections Return: AX = status (0000h if successful) DX = number of connections CX = segment of connection table first entry in table (See #02869) Format of VLM connection statistics: Offset Size Description (Table 02868) 00h WORD total length of statistics record (including this word) 02h WORD number of connection handles allocated 04h WORD average name length (configured in NET.CFG) 06h WORD maximum number of tasks (configured in NET.CFG) 08h WORD number of failed "allocate handle" calls 0Ah WORD number of failed "add name" calls 0Ch WORD number of failed task calls Note: some versions of the NetWare requester reportedly do not implement this correctly SeeAlso: #02867 Format of NetWare VLM Connection Table [array]: Offset Size Description (Table 02869) 00h WORD Protocol VLMid 0032(NDS) 0031(BIND) Func 07 equiv. 0033(PNW) 0000(unused) BH=01h 02h BYTE (connection status) bit 6: connection locked BH=16h bit 5: authenticated BH=03h bit 4: permanent BH=02h bit 2: broadcast msg waiting BH=12h 03h BYTE (connection capabilities) bit 5: Large Internet Packets none bit 3: Packet Burst Reset BH=07h bit 2: Max I/O BH=06h bit 1: SFT3 change BH=05h bit 0: Packet Burst Support BH=04h 04h WORD reference count BH=09h 06h WORD soft resource count BH=15h 08h BYTE NCP Order Number BH=0Eh 09h BYTE Server security options BH=14h bit 0: CRC enabled bit 1: packet signing required bit 5: packet signing enabled 0Ah BYTE OS Major Version BH=08h 0Bh BYTE OS Minor Version BH=08h 0Ch WORD Hops to Server BH=0Ah 0Eh WORD Maximum Packet Size for this connection BH=0Bh 10h WORD LIP Parameters BH=13h 12h WORD NCP Request Type BH=10h 14h BYTE NCP Sequence BH=0Ch 15h WORD Connection Number BH=0Dh 17h BYTE ??? none 18h WORD Transport VLMid 21(IPXNCP) 22(TCPNCP) BH=0Fh 1Ah BYTE Node Address[4] BH=11h 1Eh BYTE Network[6] BH=11h 24h BYTE Socket[2] BH=11h 26h BYTE Local Target[6] BH=11h 2Ch WORD Round Trip Time BH=11h 2Eh WORD ??? none SeeAlso: #02867 (Table 02870) Values for NetWare Connection Manager CEI (Connection Entry Information): number flags description 00h FR error 01h WL VLM id of transport protocol (NDS/BIND/PNW) 00h = wildcard 02h FR permanent flag (01h if connection is permanent) 03h F authenticated flag (01h if connection is authenticated) 04h F packet burst supported 05h FR SFT3 change status 06h FR connection needs maximum I/O transmission 07h FR packet burst reset needed 08h W server version 09h W reference count (tasks using connection, 00h = dynamic) 0Ah W distance to server associated with connection 0Bh W maximum packet size supported by transport protocol 0Ch B NCP sequence number 0Dh W connection number 0Eh B NCP order number 0Fh WL VLM id for transport protocol 00h = wildcard, 21h = IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software., 22h = TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite. See also IP, TCP/IP. 10h W NCP request type 11h A transport specific buffer 12 byte server address 6 byte router address 2 byte round trip time 12h FR broadcast message waiting 13h W large internet packets supported 14h B security options bit 0: CRC enabled bit 1: packet signing enabled bit 5: packet signing active 15h W soft resource count 16h FR connection locked Note: flag meanings F=flag value B=byte value W=word value A=array R=resettable L=settable only before authentication others=read only SeeAlso: #02867 (Table 02871) Call TRAN.VLM (VLM ID 0020h) with: Func Description/Registers 01h TRAN Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h TRAN Statistics 06h TRAN Request Reply (see INT 21/AH=F2h) AL = NCP request code (see #02095 at INT 21/AH=F2h) BH = error handler flag 00h default error handler 01h return network errors to caller 02h handle network errors in requester BL = request list length (max 5 fragments) (see #02872) CX = connection handle DH = 00h (reserved) DL = reply list length (max 5 fragments) (see #02872) DS:SI -> address list (each element is DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. address + WORD length) ES:DI -> address list Return: AX = error code, 0000h if successful (see #02860) BX,DX destroyed ES:DI buffer filled with reply packet fragments 08h TRAN Schedule/Cancel Event BX = subfunction 0000h schedule event AX = number of timer ticks to delay before calling function ES:SI -> event control block (including valid call address) 0001h cancel event ES:SI -> event control block (including call address) Return: AX = status (0000h = successful) (see #02860) 09h TRAN Get Max Phys Size BX = subfunction 00h get maximum node size Return: AX = status (0000h = successful) (see #02860) BX = maximum supported physical packet size DX = size of protocol header SI = RequestReply socket number 01h get maximum route size to specified server CX = connection handle for route to be checked Return: AX = status (0000h = successful) (see #02860) DX = maximum supported packet size for current route 0Ah TRAN Broadcast Mux BX = subfunction 0001h get stored broadcast (Personal NetWare) ES:DI -> 60-byte buffer for counted ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. message string Return: AX = status (0000h = successful) (see #02860) Format of TRAN.VLM request/reply fragment descriptor (array): Offset Size Description (Table 02872) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. address of buffer 04h WORD length of buffer (Table 02873) Call IPXNCP.VLM (VLM ID 0021h) with: Func Description/Registers 01h IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. Statistics CX = length of buffer ES:DI -> buffer for statistics (see #02874) Return: AX = status (see #02860) 06h IPXNCP Request Reply??? functionally equivalent to Tran Request Reply??? Format of NetWare IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. statistics: Offset Size Description (Table 02874) 00h WORD size of statistics, including this word 02h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. number of TRAN Request Reply calls made 06h WORD number of user aborts 08h WORD number of user retries 0Ah WORD IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. receive errors 0Ch WORD IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. send errors 0Eh WORD number of unrecognized responses 10h WORD number of bad connection numbers in requests 12h WORD number of bad sequence responses 14h WORD receive buffer overflows 16h WORD number of times route to attached server was lost 18h WORD number of times server responded "busy" 1Ah WORD number of unknown "NCPRepCompCode" values 1Ch WORD number of bad connection numbers in responses 1Eh WORD padding for NETX compatibility 20h WORD padding for NETX compatibility 22h WORD number of attach requests to server without route 24h WORD number of times server responded to attach without slot 26h WORD number of times a server went down during a request 28h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. same-server optimizations 2Ch WORD local route changes 2Eh WORD IPX(Internetwork Packet Exchange) A low-level layer of Novell's NetWare networking software. CRC errors 30h WORD number of user fails 32h BYTE flag: CRCs enabled 33h BYTE flag: LIP enabled 34h BYTE flag: configurable NET error handler SeeAlso: #02873 (Table 02875) Call NWP.VLM (VLM ID 0030h) with: Func Description/Registers 01h NWP Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h NWP Statistics CX = size of buffer for statistics ES:DI -> buffer for statistics (see #02876) Return: AX = status (see #02860) 04h NWP Connect DL = resource count state (NDS connections only) CX = proposed connection handle (not yet connected to server) DS:SI -> 48-byte server name (NUL-terminated if less than 48 bytes) Return: AX = status (0000h = successful) (see #02860) CX = actual connection handle to use Note: if the returned handle differs from the proposed handle, the proposed handle should be freed 05h NWP Disconnect DL = ??? 00h global disconnect -- clear all resources associated with conn. 01h destroy connection -- send disconnect request to server CX = connected connection handle Return: AX = status (0000h = successful) (see #02860) 06h NWP Attach DL = resource count state (NDS connections only) CX = connection handle (allocated by not yet attached to server) DS:SI -> full network address for desired server Return: AX = status (0000h = successful) (see #02860) 08h NWP Login BX = object type CX = connection handle (must be connected) to be authenticated DS:SI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. user name (max 48 bytes) ES:DI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. user password (max 128 bytes) Return: AX = status (0000h = successful) (see #02860) 09h NWP Logout CX = connection handle Return: AX = status (0000h = successful) (see #02860) 0Ah NWP Get Bindery Object/Get Message Handler BX = subfunction 0002h set workstation's broadcast message mode DL = message mode 00h client hold client message set on, retrieve/display on 01h client hold client message set off, retr/display on 02h client hold client message set on, retrieve/dislay off 03h client hold client message set off, retr/display off 04h get current message mode 05h set broadcast callback CX:SI -> callback handler 06h get broadcast timeout 07h set broadcast timeout CX = timeout in timer ticks (0000h = never) CX = connection handle, or 0000h to notify all servers 0003h get object ID for object name AX = object type (big-endian) CX = connection handle DX = length of object name ES:DI -> uppercased ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. object name Return: AX = status (see #02860) DX:BX = object ID 0004h get object name for object ID DX:SI = object ID CX = connection handle for server which is to do the lookup ES:DI -> 48-byte buffer for object name Return: AX = status (see #02860) 0005h retrieve broadcast message 0Ch NDS Fragment Request (passed to NDS.VLM's function 0Ch) (see #02877) AX = verb or request type CX = connection handle DS:SI -> request structure (DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. data address followed by WORD size) ES:DI -> buffer for reply structure (same format as request) Return: AX = status (0000h = successful) (see #02860) 0Eh NWP Ordered Send To All AL = NCP request code AH = inverse request code (FFh if none) to back out from failures BX = number of fragments in request list DX = number of fragments in reply list buffer DS:SI -> request fragment list ES:DI -> reply fragment list Return: AX = status (see #02860) BX, CX, DX destroyed Note: the available functions are described under INT 21/AX=F2xxh 0Fh NWP Preferred Handler BX = subfunction 0000h get preferred connection name DX = VLM ID (NDS/BIND/PNW) ES:DI -> 49-byte buffer for connection name Return: ES:DI buffer filled 0001h set preferred connection name DX = VLM ID (NDS/BIND/PNW) CX = length of connection name (may be 0000h, max 48) DS:SI -> name of preferred connection 0002h get preferred connection ID DX = VLM ID (NDS/BIND/PNW) Return: AX = status (see #02860) CX = connection handle if successful 0003h get server address CX = connection handle or 0000h DS:SI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. name to be resolved ES:DI -> 12-byte buffer for server address 10h NWP Security??? BX = subfunction 0001h get security flags (see also INT 21/AX=B301h) Return: BX:CX indicates signature level = 0100h:0000h if signature level=0 = 0300h:0000h if signature level=1 = 0302h:0000h if signature level=2 = 0302h:0202h if signature level=3 0002h create session keys (see also INT 21/AX=B302h) CX = server connection handle DS:SI -> 24-byte input buffer 0004h set security flags (see also INT 21/AX=B304h) BL:CL = new flags 0006h renegotiate security level (see also INT 21/AX=B306h) CX = server connection number (01h-08h) Format of NWP.VLM statistics: Offset Size Description (Table 02876) 00h WORD size of statistics record (including this byte) 02h BYTE flag: Large Internet Packets enabled 03h BYTE bit flags: enabled security features 04h BYTE bit flags: preferred security features 05h BYTE bit flags: required security features 06h BYTE minimum level of required security SeeAlso: #02875 (Table 02877) Call NDS.VLM (VLM ID 0032h) with: Func Description/Registers 01h NDS Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h NDS Statistics 06h NDS Attach CX = allocated connection handle DS:SI -> server address 08h NDS Fragment Requst Return: AX = 8836h (invalid parameter) Note: this function was documented but does not work 0Ch NDS context BX = subfunction 0000h get default name context CX = length of buffer for default context ES:DI -> buffer to receive name Return: ES:DI buffer filled 0001h set default context CX = length of new default context name DS:SI -> context name 0002h read from TDS CX = reply buffer length DX = 0110h ??? SI = offset in TDS ES:DI -> reply buffer 0003h write to TDS 0005h "NWDSChangeResourceConnection/Lock Connection" CX = connection handle DL = subfunction (00h-09h) 04h = NWDSChangeResourceOnConnection 07h = NWDSChangeResourceOnConnection 08h = NWDSLockConnection 0006h NDS change connection state (internal) CX = connection handle AL = 00h or 01h 0007h "NWDSSetMonitoredConnection" AX = subfunction 0001h get monitored connection Return: CX = connection handle??? 0002h set monitored connection CX = connection handle??? 0008h send NDS request AX = NDS function CX = connection handle DS:SI -> request buffer descriptor (see #02878) ES:DI -> reply buffer descriptor (see #02878) 000Ah set NDS CEI Info DL = buffer length DS:SI -> input buffer Format of NetWare NDS request/reply buffer descriptor: Offset Size Description (Table 02878) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> buffer 04h WORD length of buffer in bytes SeeAlso: #02877 (Table 02879) Call REDIR.VLM (VLM ID 0040h) with: Func Description/Registers 01h Redir Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h Redir Statistics CX = length of buffer ES:DI -> buffer for statistics (see #02880) Return: AX = status (0000h if successful) (see #02860) buffer filled if successful 04h Redir Build SFTsee System File Table (see INT 21/AH=B4h"NetWare") CX = connection handle ES:DI -> SFTsee System File Table build request (see #02881) Return: AX = 0000h if successful BX = DOS file handle 05h Redir DOS To NW HandleA short identifier, usually a small integer or a pointer, for some other object which is maintained or controlled by the operating system or environment; a particular handle may be valid system-wide or may have meaning only for a particular process. See also File Handle. BX = DOS file handle ES:DI -> 11-byte buffer for NetWare handle 08h Redir Specific BX = 0000h get item DS:SI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. string "LPTx" (x='1'-'9') or drive spec ("d:") ES:DI -> 512-byte reply buffer for "\\server\resource",00h,"path",00h Return: AX = status (0000h if successful) (see #02860) Format of REDIR.VLM statistics: Offset Size Description (Table 02880) 00h WORD size of statistics record (including this word) 02h WORD number of network errors causing a critical error (see INT 24) 04h WORD number of drives currently redirected SeeAlso: #02879 Format of NetWare SFTsee System File Table build request: Offset Size Description (Table 02881) 00h 6 BYTEs NetWare handle 06h WORD reserved for internal use 08h 14 BYTEs ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. filename 16h BYTE DOS file attributes bit 7: file is shareable 17h BYTE reserved 18h LONG file size 1Ch WORD creation date 1Eh WORD last access date or 0000h 20h WORD last update date or 0000h 22h WORD last update time or 0000h (Table 02882) Call File I/O FIO.VLM (VLM ID 0041h) with: Func Description/Registers 01h FIO Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h FIO Statistics CX = length of buffer ES:DI -> buffer for statistics (see #02883) Return: AX = status (0000h if successful) buffer filled if successful 04h FIO Remote Copy Format of NetWare FIO statistics: Offset Size Description (Table 02883) 00h WORD length of statistics record (including this word) 02h WORD number of read requests 04h WORD number of write requests 06h WORD number of cache read hits 08h WORD number of cache write hits 0Ah WORD number of cacheable files with free blocks 0Ch WORD number of cacheable files without free blocks 0Eh WORD number of standard read requests 10h WORD number of standard write requests 12h WORD number of burst read requests 14h WORD number of burst write requests 16h BYTE flag: cache writes enabled 17h BYTE flag: true commits enabled 18h WORD number of cache blocks 1Ah WORD size of a cache buffer 1Ch WORD number of ECBs for packet bursts (0000h if bursts disabled) SeeAlso: #02882 (Table 02884) Call PRINT.VLM (VLM ID 0042h) with: Func Description/Registers 01h Print Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h Print Statistics CX = length of buffer ES:DI -> buffer for statistics (see #02885) Return: AX = status (0000h if successful) (see #02860) buffer filled if successful 04h Print Get/Set Data BX = subfunction 00h set printer control flags (see #02886) 01h get printer control flags 02h set extended printer control flags (see #02887) 03h get extended printer control flags AX = offset within Print structures at which to start read/write CX = number of bytes to transfer DX = printing device number (00h=LPT1/PRN, 01h=LPT2, etc.) DS:SI -> buffer containing values for flags (subfunctions 00h/02h) ES:DI -> buffer for flags (subfunctions 01h/03h Return: AX = status (see #02860) ---if successful--- CX = number of bytes returned (subfunctions 01h/03h) DX = maximum supported size for function/type of data 05h Print Open Capture File 07h Print Get Num Of Printers BX = subfunction 0000h get number of physical printers nonzero: get configured printer (from NET.CFG) Return: AX = status (see #02860) ---if successful--- BX = number of physical/configured printers 08h Print Redirection BX = subfunction 0000h redirect device to queue AX = length of queue name, 0000h to use queue ID CX = connection handle DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.) DS:SI -> uppercased ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. queue name ES:DI -> DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. queue ID, 00000000h to use queue name 0001h test whether device is redirected DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.) 0002h cancel redirection DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.) 0003h redirect device to file AX = 0000h or 4E57h ('NW') CX = connection handle DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.) ES:DI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. path of file 0004h get extended redirection information (see #02886) DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.) ES:DI -> buffer for server/queue name Return: ES:DI buffer filled Return: AX = 0000h if successful 09h Print FlushTo force the copying of any data still stored in temporary buffers to its final destination. And Close Job BX = subfunction 0000h unconditional close nonzero: conditional close -- close only if concatenate flag is clear DX = index of printing device (00h=LPT1/PRN, 01h=LPT2, etc.) Return: AX = status (see #02860) 0Ch Print Get/Set Banner Name BL = subfunction 00h set banner name DS:SI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. banner name (12 bytes, including NUL) 01h get banner name ES:DI -> 12-byte buffer for banner name Return: AX = status (see #02860) Format of PRINT.VLM statistics: Offset Size Description (Table 02885) 00h WOFD size of statistics buffer (including this word) 02h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> old INT 17 handler 06h WORD number of physical printers reported by BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware. The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. SeeAlso: #02884 Format of PRINT.VLM standard print control information: Offset Size Description (Table 02886) 00h BYTE PFStatus (reserved, 00h) 01h BYTE print flags (default 80h) bit 2: release job for printing if capture interrupted bit 3: suppress form feed bit 4: notify bit 6: text file bit 7: print banner 02h BYTE tab size (01h-12h, default 08h) 03h BYTE number of copies (default 01h) 04h BYTE ??? (may be number of copies instead of offset 03h) 05h BYTE form type to be mounted in printer (default 00h) 06h BYTE reserved (00h) 07h 14 BYTEs banner 15h BYTE capture printer (LPTAbbreviation for Line PrinTer.) number 16h WORD capture timeout in seconds 18h BYTE job concatenation flag (00h or 01h, default 00h) 19h BYTE maximum lines per page (default 66) 1Ah BYTE ??? (may be maximum lines instead of offset 19h) 1Bh BYTE maximum characters per line (default 132) 1Ch BYTE ??? (may be maximum characters instead of offset 1Ch) 1Dh 13 BYTEs name of form to be mounted in printer 2Ah BYTE flag: capture active (00h or FFh, default 00h) 2Bh BYTE flag: capturing to file (00h or 01h, default 00h) 2Ch BYTE flag: timeout field is being decremented (default 00h) 2Dh DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> printer setup string 31h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. -> printer reset string 35h BYTE reserved (01h) ---remainder is read-only--- 36h BYTE flag: job has started printing (00h or FFh, default 00h) 37h BYTE flag: job placed in queue (00h or FFh, default 00h) 38h BYTE flag: PJobValid (00h or FFh, default 00h) FFh if associated capture file is open for capturing data 39h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. print-queue ID 3Dh WORD print-job number (default 00h) (1-999) 3Fh BYTE number of chars in INT 17h print cache buffer (default 00h) 40h BYTE ??? 41h WORD high word of print-job number (default 00h) SeeAlso: #02884,#02887 Format of PRINT.VLM extended print control information: Offset Size Description (Table 02887) 00h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. NDS printer object ID or directory entry number (when capturing to a file) 04h BYTE connection handle for server 06h 48 BYTEs ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. print queue name on server 36h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. ID of target server, or FFFFFFFFh if any server may be used 3Ah 6 BYTEs target print time, FFFFFFFFFFFFh for immediate printing 40h BYTE status flags 41h BYTE ??? 42h 13 BYTEs client's banner name (overrides global banner if set) 4Fh 13 BYTEs job description 5Ch 4 BYTEs reserved (0) SeeAlso: #02884,#02886 (Table 02888) Call GENERAL.VLM (VLM ID 0043h) with: Func Description/Registers 01h Gen Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h Gen Statistics CX = length of statistics buffer ES:DI -> buffer for statistics (see #02889) Return: AX = status (see #02860) 04h Gen Get/Set Primary BX = subfunction 0001h get primary connection CX = primary connection handle to be retrieved Return: AX = status (see #02860) CX = primary connection handle 0002h set primary connection CX = primary connection handle to be stored Return: AX = status (see #02860) 06h Gen Specific BX = subfunction 0000h get command processor and master environment addresses Return: DX = segment of master environment ES:DI -> command processor's private COMSPEC= copy 0001h get default or primary connection Return: AX = status (0000h successful) CX = connection handle if successful 0002h last queue information AL = operation 00h zap 01h set 02h get DI:DX = queue file handle CX = connection handle Return: AX = status (0000h successful) DI:DX = queue file handle CX = connection handle or 0000h if queue info invalid 0003h get/set machine name(s) AX = name type 00h get short machine name 02h get long machine name 04h set short machine name 06h set long machine name 08h get DOS name 0Ah set DOS name ES:SI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. name if setting Return: AX = status (0000h if successful) ES:SI -> ASCIZA NUL-terminated ASCII string. The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h. Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. name if getting 0004h set per-task EXEC search mode Return: AX = status (0000h if successful) 09h Gen Return Drive Info BX = subfunction 0000h get first available drive Return: AX = status (see #02860) BX = drive letter of first drive 0001h get Lastdrive Return: AX = status (see #02860) CH = number lastdrive 1=A: - 1Ah=Z: Format of NetWare GENERAL.VLM statistics: Offset Size Description (Table 02889) 00h WORD size of statistics record, including this word 02h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. previous INT 21 vector SeeAlso: #02888 (Table 02890) Call NETX.VLM (VLM ID 0050h) with: Func Description/Registers 01h NetX Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h NetX Statistics CX = length of statistics buffer ES:DI -> buffer for statistics (see #02891) Return: AX = status (see #02860) Format of NETX.VLM statistics: Offset Size Description (Table 02891) 00h WORD buffer size, including this word 02h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. previous INT 21 handler SeeAlso: #02890 (Table 02892) Call SECURITY.VLM (VLM ID 0061h) with: Func Description/Registers 01h Security Get Version BX = function 0000h get version Return: AX = status (see #02860) BX = major version of VLM supported (0001h) CX = minor version of VLM supported (0000h) 03h Security Statistics 04h ??? AL = subfunction 01h compute session key DS:SI -> 24-byte input buffer ES:DI -> 8-byte output buffer