RE: The network redirector can only deal with short file names?

Bart Oldeman <[email protected]>
Newsgroups gmane.os.freedos.devel
Message-ID <[email protected]>
On Sun, 13 Oct 2002, Eric Auer wrote:

> so only LFN-aware applications can make use of LFN for DOS. If a shell
> and some tools like copy/dir would be among them... are they? I wonder
> why the kernel needs to provide a LFN interface then (as I understood
> it does).

Presently, kernel.sys does not provide an LFN interface at all.

Of course only LFN-aware apps can make use of LFNs, such as DJGPP compiled
apps and 4DOS, because they need to use the int21/ah=71 api.

> However, I now understand the issue: The required interface is defined
> for DOS boxes in Windows only for local drives.

No, it is defined for everything but implemented in the form of a VxD as
far as I understand it.

> this means DOS is really out of luck here. The only thing we could do
> was to define our own int 2f.11 extensions to have networked LFN at least
> for some tools that would be in "our" LFN for DOS suite (such as copy/dir,
> you guessed it).

that is one thing - but remember that int2f.11 is a back door.

for instance, "FINDFIRST", int21/ah=4e works like this:

app calls int21/ah=4e
-> DOS looks whether it operates on a network drive or a local drive
 * if it is a local drive, then DOS handles it itself (FreeDOS dos_findfirst,
   fatdir.c)
 * if it is a remote drive, then DOS *calls* int2f/ax=111b (FreeDOS
   remote_findfirst, int2f.asm)

Now an LFN aware application could call int21/ax=714e instead.
DOS by default does not handle this call at all. So then the network
client needs to hook this function itself. Of course, instead, the above
mechanism could be used for LFNs too, but then FreeDOS needs to define an
interface for, say, int2f/ax=114e.

That sounds like the obvious approach - but it means that the network
client is FreeDOS *only*, unless you write a TSR that converts
int21/ax=71xx calls into int2f/ax=11xx calls. Then the network client
would work with any DOS + this TSR.

To conclude there are two approaches

a) * write a conversion TSR or add this functionality to FreeDOS kernel
   * and make the network client "LFN redirector" aware

or

b) * make the network client int21/ax=71xx aware, so that it does the
     frontend processing itself. This is, by the way, what
     sysinternals' NTFSDOS does.

I would, however, be surprised if someone would actually implement it in
the near feature...

Bart
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.