Welcome This is README file for Long File Name (LFN) Services for Windows NT 4.0, version 0.8 build 70. This release supersedes all previous versions Copyright and legal issues The sources of lfnsrv.dll is copyrighted by Wojciech Galazka. The source of lfnload.com are copyrighted by Andrew Crabtree and Wojciech Galazka. Copyright (C) 1999-2000 Wojciech Galazka This program is released under the GNU General Public License. This program is released under the 'as is' basis and the author(s) may not be held responsible for any possible damage resulting from the use or missue of this program even if informed of such possibility. Neither former, present nor the future employeer(s) of Wojciech Galazka in any way have been/are involved with the development of this package and may not be held responsible for any issues resulting from the use of this program. A copy of the file "COPYING" is included with this document. If you did not receive a copy of this file, you may obtain one from whence this document was obtained, or by writing to: Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA Origin The sources of lfnsrv.dll are based on nt-lfn.dll written by Andrew Crabtree and hane substantially evolved since them. The source code of lfnload.com is based on the source code of nt-lfn.com written by Andrew Crabtree too. First off the code was changed to compile under TASM and later several changes have been made to make it more readable and expandable. The text of strcpy procedure that is used in lfnload.asm is based on "The UCR Standard Library for Assembly Language Programmers", written By Randall Hyde and others. Andrew no longer works on LFN services yet was quite happy that they are still actively developed. The whole idea of working on this piece of code was to make many DJGPP tools work under Windows NT too. This was the primary goal and this is why tools designed or based on other compilers may or may not work. Contents The following subdirectories contain the following bin/ binaries necessary to run LFN services docs/ some docs manifest/ auxillary files for DJGPP src/dll source code of lfnsrv.dll src/dos source code of lfnload.com Current status All LFN calls are supported and are supposed to work. See docs/results.txt for information which packages were tested. The LFN services should work for most small and medium size projects. When large makefiles are run then DOS box may crash due to problems with DPMI under Windows NT Installation See INSTALL file for details Recompiling and debugging You need the following tools to compile LFN services * Borland TASM and TLINK to compile and build lfnload.com * Microsoft Visual C++ 5.0 Standard Edition (other versions not tested) * Microsoft NT DDK, Platform SDK to compile and build lfnsrv.dll from msdn.microsoft.com * Numega SodtIce will help debugging the program (a 14 day evaluatiom version is awailable on www.numega.com) * DbgView from www.sysinternals.com is an invaluable debugging tool if you cannot afford SoftIce. Availability You can grab a copy of the newest version of LFN services from http://www.cybertrails.com/~fys/longfile.htm. It should be available on Simtel along with other DJGPP stuff. A message is posted to the comp.os.msdos.djgpp newsgroup when a new version of LFN services is released. Bug reporting While serious effort has been put to make LFN services reliable I cannot guarantee that they will always work. If you find any inconvenience using LFN services please report that to Wojciech Galazka. How you can help Please let me me know if find any problems with the LFN services. Limitations 1 Due to the way DPMI is (mis)implemented in NT the LFN services may fail and the whole DOS box may crash when deeply nested calls of DPMI clients take place. 2 You cannot switch to a directory whose length is larger than 64 characters. This limitation is imposed by DOS SET_CURRENT_DIRECTORY call. The proper way of implementing get/set directory seems to be with the use of GetVDMCurrentDirectories and SetVDMCurrentDirectories, exported by kernel32.dll. These functions are undocumented and I don't know how to call them. 3 Non English letters in file names are not supported 4 Programs relying on DOS4GW are unsupported 5 Programs relying on 16 bit DPMI (like Borland rtm.exe) are not supported 6 Files larger than 2 GB are not supported.