Article: Q43784
Product(s): See article
Version(s): 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | B_BasicCom SR# S890210-109 | mspl13_basic
Last Modified: 15-DEC-1989
MS-DOS Interrupt 21 Hex function 5F Hex, subfunction 02 allows you to
return the local drive name and the network name of a device that has
been redirected. An example of this is when you connect to a server
and use it as the logical drive. If you wanted to obtain the drive
name and the path to the server from within a QuickBASIC program, you
could CALL this MS-DOS interrupt.
The following requirements need to be observed when calling this
interrupt:
1. The MS-DOS network utility SHARE.EXE must be run before you can
successfully call this interrupt.
2. It is important that the network being used is a Microsoft Network
configuration, such as IBM PC-NET. Otherwise, the information that
is returned may not be correct.
This information applies to Microsoft QuickBASIC Versions 4.00, 4.00b,
and 4.50, Microsoft BASIC Compiler Versions 6.00 and 6.00b for MS-DOS,
and Microsoft BASIC PDS Version 7.00 for MS-DOS.
Code Example
------------
'*****************GET REDIRECTION LIST ENTRY******************
'If you are using BASIC PDS 7.00 the INCLUDE file should be 'QBX.BI'
'$INCLUDE: 'QB.BI'
DIM inregs AS RegTypeX
DIM devname%(8)
DIM networkname%(64)
inregs.ax = &H5F02
inregs.bx = &H0
inregs.ds = VARSEG(devname%(0))
inregs.si = VARPTR(devname%(0))
inregs.es = VARSEG(networkname%(0))
inregs.di = VARPTR(networkname%(0))
CLS
CALL INTERRUPTX(&H21, inregs, inregs)
PRINT "REDIRECTED LOCAL DEVICE NAMES:"
X% = CSRLIN
LOCATE X% + 1, 15
DEF SEG = inregs.ds
FOR looper = 0 TO 7
PRINT (CHR$(PEEK(inregs.si + looper)));
NEXT
DEF SEG
PRINT
PRINT
PRINT "NETWORK NAME(S):"
X% = CSRLIN
LOCATE X% + 1, 15
DEF SEG = inregs.es
FOR llooper = 0 TO 63
PRINT (CHR$(PEEK(inregs.di + llooper)));
NEXT
DEF SEG
END