how does windows 95 stores long filenames?

long filenames
this file was worked out by jozsef hidasi
hidasi.jozsef@mttbbs.hu
?- [ warning! > ] ------------------------------------------------------------?
this text contains the most info i know at the moment! i'm not responsible for
any data lost!
"???" means i don't know what that field means...
?- [ what this doxument about? > ] -------------------------------------------?
this document contains some info how windows'95 stores the long filenames.
i don't know how long filenames can be handled by windows but as i calculated
a file entry can be 832 bytes long. (see below)
windows uses a simple methold to hide a file from dos, it changes the "file"'s
attribute to volumelabel. basicly a disk can have only one volumelabel, and
this attrib is not used any more as other files! in this way we can make
difference between dos file rec. (i won't describe it now) and windows record.
eighter dos file and windows record are 32 bytes long. (dos file record is the
main file descriptor, date/time/attrib/etc...)
  windows record>
offset		count		type	description	remark
------------------------------------------------------------------
0000h		1		byte	counter		-
0001h		10		char	filename e1	entry 1
000bh		1		byte	attrib		always 0fh
000ch		2		word	???		0
000eh		12		char	filename e2	entry 2
001ah		2		word	???		0
001ch		4		char	filename e3	entry 3
counter:
if attrib=0fh and the counter>64 then  windows entries will follow:
entry no.: counter-'@'
filename: the filename is cut in 3 parts... because of dos compatibility...
???: reserved or don't know...
simple example:
sector 19 ; don't laught! this is a simple floppy :-)
this is a simple dos filenamed file>
00000000:  53 49 4d 50 4c 45 20 20 - 44 4f 53 20 00 03 b8 9d simple  dos .
00000010:  1f 25 1f 25 00 00 b9 9d - 1f 25 00 00 00 00 00 00 %%..%......
this is the first entry of the new long filenamed file>
(i've created this first and renamed by windows)
(this file is errased because of the filename's first byte is 0e5h)
00000020:  e5 49 4d 50 4c 45 20 20 - 57 49 4e 20 00 2a c6 9d Imple  win .*Ɲ
00000030:  1f 25 1f 25 00 00 c7 9d - 1f 25 00 00 00 00 00 00 %%..ǝ%......
  this is the first windows entry.
the filename's first byte (counter) is c so 4 entryes will follow ...
(one entry can hold 13 characters of the long filename...)
this entry holds "m e d   f i l e    "=filename e1+filename e2+filename e3
(see bellow)
this means that the first entry holds the last characters of the long
filename...
00000040:  43 6d 00 65 00 64 00 20 - 00 46 00 0f 00 44 69 00 cm.e.d. .f..di.
00000050:  6c 00 65 00 00 00 ff ff - ff ff 00 00 ff ff ff ff l.e...