R. Loew Electronics Large File Emulator Version 2.1 04/01/2016 Copyright (C) 2011-2016 By Rudolph R. Loew This Package intercepts User Mode FileSystem API requests so that a set of smaller Files will appear as a single large File. This allows Programs to Create Files that are larger than 4GiB. These Files can then be Read or Modified by other Programs. Downloading and Playing or Archiving Blu-Ray Videos are a example of what can be done with this Package. This Package consists of two Parts; the FILE64.VXD System API Hooker and the FILE64 Large File Emulator API. The FILE64.VXD System API Hooker Patches the Entrypoint Address Resolver used by the Executable Program Loader and GetProcAddress to locate API Entry Points. REQUIREMENTS Windows 98, 98SE or ME. Windows XP (see FILE64XP below) INSTALLATION: Unpack this Package into a New Empty Directory. Do not mix these files with others or add the Directory to your Command PATH. Place the FILE64.DLL and FILE64.VXD files in your WINDOWS\SYSTEM Folder. Edit your WINDOWS\SYSTEM.INI File. In the [386Enh] Section add the following line: device=FILE64.VXD Save the File. Then Reboot your Computer. UNINSTALL: Edit your WINDOWS\SYSTEM.INI File. In the [386Enh] Section remove the following line: device=FILE64.VXD Save the File. Then Reboot your Computer. Delete FILE64.DLL and FILE64.VXD from your WINDOWS\SYSTEM Folder. DEACTIVATION and REACTIVATION: You can temporarily deactivate FILE64 by commenting the "device=FILE64.VXD" line in the [386Enh] Section of your WINDOWS\SYSTEM.INI File and rebooting. Uncomment the line and reboot to Reactivate FILE64. OPERATION: The Large File Emulator API handles Large Files by creating smaller files having the same name, as the specified Name, but with "``#" appended, where # is the extension number starting from 1 when the File is larger than 4Gib-4KiB. The Base Name can be found, opened and manipulated, but the actual data may be transferred to/from the Extension Files as well. Each Extension File is also limited to 4GiB-4KiB. The Extension Files will not appear in Windows Explorer or any Directory Search using 32-Bit Software. DOS will show all of the Files and Extensions as they are stored on the Hard Drive. USAGE: Since the Large File Emulator is not fully compatable with normal file usage, the Emulator is designed to limit itself to specific Directories. To enable the Emulator for a new Directory, either Name it to "##64" or one of it's Parent Directores, such as C:\DOWNLOAD\##64\VIDEO. Any Folder that contains one or more levels named "##64" is considered a FILE64 Enabled Folder. This is true even over a Network to a Computer not running FILE64. Only the Path Name Counts. A File named "##64" will also be Enabled. Directories not containing a Path Segment of "##64" will be passed through to the standard System API Calls. These will be considered Non-FILE64 Enabled. It is not recommended to rename a Directory with existing Files as Files larger than 4GiB-4KiB will not be split. These files can still be used but cannot be expanded. Download Large Files by pointing your Downloader to a File or Directory within a FILE64 Enabled Directory. Windows Explorer will show an ICON for the Base Name only. You can Play Large Media Files by naming the File or Clicking on it's ICON, in Windows Explorer. You can Copy, Move or Delete Large Files by clicking on the BASE File ICON. If you have Files with sizes between 4GiB-4KiB and 4GiB and are Moving to or from a Non-Enabled Directory, do a Copy First and then Delete the Originals. Do not send to the Recycle Bin. Files 4GiB and larger cannot be Copied or Moved to Non-Enabled Folders. If you need to store these Files or transfer them to a non-enabled archive, place them in a separate FILE64 Enabled Folder. Use DOS to rename the Folder so it is no longer FILE64 Enabled. You can then backup or transfer the Files and Extensions but you cannot read them or use them. When you are ready to use them again, place them in a non-FILE64 Enable Folder. Then use DOS to rename the Folder to enable FILE64. The Files can now be read, used or Copied. Additional methods are described in the ACCESSING THE UNDERLYING FILES Section below. You can Archive or Extract Large Files using 7-ZIP. Make sure the Archive is in an Enabled Directory if is larger than 4GiB or can grow to 4GiB. DOS BOX: DOS and it's Commands do not use the System File APIs so they will not recognize Large Files. The Directory Command will only show the Base File with a maximum size of 4GiB-4KiB and the Extension Files. DOS Commands cannot handle Files larger than 2GiB so they cannot be used on these Files. Delete all Extensions belonging to the same BASE File. You may be able to delete files based on their Short Names but be careful you do not Delete Files you intended to keep. Large Files can be handled from a DOS Box more effectively using a compatable File Manager such as my XFILE Version 2.0 or later. XCOPY should not be used unless all Files are less than 4GiB-4KiB Bytes. WINDOWS EXPLORER: Windows Explorer is safe to use to Copy Files and Folders. As expected, you will get an error if you try to Copy a File that is 4GiB or larger to a Non-FILE64 Folder. Windows Explorer can Move a File that is larger than 4GiB-4KiB to a FILE64 Enabled Folder but it will not be expandable. A non-expandable File can also be moved back to a Non-FILE64 Enabled Folder. Do a Copy followed by a Delete if you need to move such Files. Do not send to the Recycle Bin. NETWORKS: You can copy Large Files to or from FILE64 Enabled Folders on other Computers as long as the "##64" level is in the Full Path. The remote Computer does not need to support FILE64 but it will not be able to use the Files if it does not. Native Large Files such as on a Windows XP System using NTFS cannot be accessed over a Network. These Files must be split into smaller pieces using a Program such as SPLITBIG and must be done from the Computer hosting the Files. The Split Files can be transferred and reassembled on the Windows 9x Computer. Or they can be renamed and placed in a FILE64 Enabled Folder as described in the SPLITBIG Section below and later accessed over the Network directly. FILE MAPPING: FILE64 splits files larger that 4GiB-4KiB into a Base File and Extents. The 4GiB limit was reduced by 4KiB to minimize the performance hit that would occur if the File's data is not accessed on Page boundaries. Unfortunately this leaves a small range of file sizes that can be supported without FILE64 but need to be split to be supported by FILE64. To minimze problems when Files are imported into a File64 Enabled Folder, a File in this size range that should have been split, but wasn't, is treated as a Non-FILE64 Enabled File. This allows it to be used normally but it cannot be expanded past 4GiB-1 Bytes. No Extents are created for these Files. If the File is reduced in size to 4GiB-4KiB or less and closed, it will be expandable the next time it is opened. The Base File has the same name as the Name given when the File is Created. This is the only name that will appear when searching with Windows Explorer or other 32-Bit Code. When the 4GiB-4KiB maximum size is exceeded, the Base File will not be written further. The excess will be written into the first Extent File. The First Extent File will be created with a FileName the same as the Base FileName with "``1" appended to it. This process will be repeated as each Extent File reaches the 4GiB-4Kib limit, creating additional Extent Files as needed. Later Extents will be appended with "``2", "``3", up to a maximum of "``999". The Extent Files are skipped over during Directory scans using the FindFirst and FindNext APIs. They can be accessed Directly by specifying their full name. The RAW Base File can be accessed by appending "``0" to the Base Name. DOS does not use this API so it shows the RAW File and the Extents. ACCESSING THE UNDERLYING FILES: Windows Explorer and 32-Bit Programs will only see the BASE Filename. The DOS Directory command will show the Extension Files. You can access the Base File in RAW Mode by appending "``0" to it's FileName. The Extents can be accessed by their individual Names. If you need to manipulate a large number of Files with FILE64 disabled in a FILE64 Enabled Folder, you can use the SUBST Command to assign a Drive Letter that points inside the FILE64 Enabled Directory Tree. Do not do this for normal usage. This will not work if there are embedded Folders named "##64". Temorarily Renaming the underlying Folder in DOS or Deactivating FILE64 (see above) can also be used to manipulate Files in RAW Mode. LIMITATIONS: Do not use the "`" character twice together in a FileName, or a Path to, a Large File Emulated Directory, other than as described above. Files with Extensions can be accessed by the Short File Name of the Base File as if you had specified the Long File Name. Using the Short Name of an Extension File will give you access only to that extension. Using "##64" as two or more levels in a Path will not cause problems directly, but is not recommended as problems can occur if you move a Subtree to a non-FILE64 Folder and don't take into account the Second or later "##64" Levels. All 16-Bit Programs including DOS, DIR, COPY, REN, DEL etc. will see the Base and extension Files with a maximum size of 4Gib-4KiB each. Large files on a NTFS Filesystem must be split and named as described above before being transferred to Window 98. SPLITBIG.EXE can be used to split a Large File into Smaller Files. Large Files cannot be sent to an XP system. The Extension Files must be sent and recombined at the other end. MERGE64.EXE can be used recombine the Extension Files back into a Large File. Programs not written to handle Large Files will not work properly. Programs that can handle Large Files on NTFS FileSystems should work if Windows 98 Compatable. XCOPY cannot handle 4GiB or larger Files. The SUBST Command must not map a Drive Letter into a FILE64 Enabled Folder. Doing so will cause the accesses to the Drive Letter to be handled as Non-FILE64 Enabled. Having additional Path levels named "##64" will allow FILE64 access but is not recommended. The CopyFile and MoveFile APIs will not transfer expandable Files between 4GiB-4Kib and 4GiB in size from FILE64 Enabled Folders to Non-File64 Enabled Folders. Files 4GiB-4Kib and 4GiB in size transferred from Non-FILE64 Enabled Folders to File64 Enabled Folders will not be expandable. Directories cannot be Moved between FILE64 Enabled Folders and Non-File64 Enabled Folders. Programs that create their own Extensions for storing data over 4GiB, such as Nero, may create Files in this size Range. These Files can safely be stored in Non-FILE64 Enabled Folders or in FILE64 Folders but should not be moved between them. If a File between 4GiB-4KiB and 4GiB in size is improperly transferred to a File64 Enabled Folder, such as by DOS renaming a Folder or the use of the CopyFile or MoveFile APIs, it will be handled in RAW Mode. This allows the File to be used or copied but it cannot be expanded to 4GiB or larger. If reduced in size below 4GiB-4KiB and Closed. It will be fully supported the next time it is opened and then can be expanded above 4GiB. It is generally safest to create and maintain Files larger than 4GiB-4KiB in FILE64 enabled Folders from the start even if they fall into the small range of sizes that can fit in Non-FILE64 Folders. Smaller Files can be handled in either witout problems. SPLITBIG SPLIT64 is a tool that can be used to split large files in a FILE64 Folder or on an XP or other NTFS compatable system into a set of smaller Files that can be transferred to Windows 9X for later use with FILE64. The Command Syntax is as follows: SPLITBIG [-PieceSize] Large_File Split_File_Base Large_File is the Name of the Large File to be Split. Split_File_Base is the Base Name of the set of Files to be created. Created Filenames will have ".###" appended to the Base Name where ### starts from 000. The -PieceSize Option sets the maximum size of each Output File. The default is 1GiB. 1GiB Files can be safely handled by DOS Applications. The Large File must be in a FILE64 Folder or on a NTFS or UDF Partition. The Output Files can be written through a Network to any System. If you set the PieceSize to 0xFFFFF000, the resulting Output Files can later be renamed into a FILE64 Base File and Extensions. Example: In Source Folder: SPLITBIG -0xFFFFF000 LargeFileIn TEMPNAME Transfer TEMPNAME.000, TEMPNAME.001, TEMPNAME.002, ... to Destination In destination FILE64 Enabled Folder: REN TEMPNAME.000 LargeFileOut``0 REN TEMPNAME.001 LargeFileOut``1 REN TEMPNAME.002 LargeFileOut``2 .... LargeFileOut will be a duplicate of LargeFileIn NOTE: The Transfer cannot be done with the DOS COPY Command as it can only handle 2GiB Files. Windows Explorer or MERGEBIG can be used (see below) to do this Transfer. MERGEBIG MERGE64 is a tool that can be used to recombine Files created by SPLITBIG or any other Program that splits large files. The Command Syntax is as follows: MERGEBIG Dest Source .... Dest is the Name of the Large File to be created. This File must be in a FILE64 enabled Folder or on an NTFS Partition on a Windows XP or later System. One or more Source Files can be listed and will be combined. List all of the Files created by SPLITBIG to rebuild the original Large File. The Source Files can be read from any Folder or through a Network from any System. MERGEBIG can be used as a File Copy Command that can support any size File as follows: MERGEBIG Dest Source NOTE: MERGEBIG does not Copy the Attributes or DateStamp of a file copied this way. MERGEBIG can also appends files to an existing File using the -Append Option. Example: MERGEBIG -A File AppendFile .... WINDOWS XP (FILE64XP) A Wrapper DLL and customized Tools are available for Windows XP to Copy and/or Move large Files to/from/between FAT32 FILE64 Enabled Folders and local NTFS Partitions. FAT32 FILE64 Enabled Folders may be local or remote shares on any OS including Windows 9x. Contact Author for more details. RELATED PRODUCTS XFILE Advanced File Manipulation Utility. FILE64XP 64-Bit Wrapper DLL for windows XP to support larger than 4GiB File Manipulation on FAT32 Partitions and Network Shares CONTACT INFORMATION Rudolph R. Loew 506 Bieling Rd. Elmont, NY 11003 1-516-352-9078 RLoew@hotmail.com Website: http://rloew1.no-ip.com