Path: utzoo!yunexus!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!mailrus!iuvax!cica!tut.cis.ohio-state.edu!pt.cs.cmu.edu!b.gp.cs.cmu.edu!ralf From: ralf@b.gp.cs.cmu.edu (Ralf Brown) Newsgroups: comp.sys.ibm.pc.programmer Subject: Re: Software interface to drive/directory mapping Keywords: Mess, DOS, MSDOS, PC, SUBST, JOIN, 3.3, 4.01, drive, dir, mapping, Microsoft data release Message-ID: <9456@pt.cs.cmu.edu> Date: 30 May 90 00:06:34 GMT Article-I.D.: pt.9456 References: <431@ria.ccs.uwo.ca> Organization: Carnegie-Mellon University, CS/RI Lines: 47 In article <431@ria.ccs.uwo.ca> pruss@ria.ccs.uwo.ca (? pruss) writes: }Basically I am wondering what SUBST and JOIN actually do. } }Is there some portable way of accessing the SUBST/JOIN data area? }I found it at a different address under DOS 3.3 and 4.01. Also, }has the format of this data area been released? Yes, there is a portable way of accessing it. No, the format has not officially been released. However, it is described in INTER290.ZIP. Call INT 21h with AH=52h. On return, the DWORD at ES:BX+17h points at an array of current directory structures. Format of current directory structure (array, 51h bytes [58h for DOS 4.x] per drive): Offset Size Description 00h 67 BYTEs current path as ASCIZ, starting with 'x:\' 43h WORD bit flags bit 15: network drive \ installable file system if both set bit 14: physical drive / invalid drive if neither bit set bit 13: JOIN'ed, current path is actual path without JOIN drive letter in path may differ from logical drive name bit 12: SUBST'ed, current path is actual path without SUBST drive letter in path may differ from logical drive name 45h DWORD pointer to DOS Disk Block for this drive ---local drives--- 49h WORD starting cluster of current directory 0000h = root, FFFFh never accessed 4Bh WORD ??? seems always to be FFFFh 4Dh WORD ??? seems always to be FFFFh ---network drives--- 49h DWORD pointer to a redirector/REDIRIFS record, else FFFFFFFFh 4Dh WORD stored parameter from INT 21/AX=5F03h??? ------ 4Fh WORD Offset of '\' in current path field representing root directory of logical drive (2 if not SUBST'ed or JOIN'ed, otherwise number of bytes in SUBST/JOIN path) ---DOS 4.x--- 51h BYTE ??? used by network 52h DWORD pointer to IFS driver for this drive, 00000000h if native DOS 56h WORD ??? -- {backbone}!cs.cmu.edu!ralf ARPA: RALF@CS.CMU.EDU FIDO: Ralf Brown 1:129/46 BITnet: RALF%CS.CMU.EDU@CMUCCVMA AT&Tnet: (412)268-3053 (school) FAX: ask DISCLAIMER? | _How_to_Prove_It_ by Dana Angluin 20. by vehement assertion: It What's that?|is useful to have some kind of authority relation to the audience