LTR Data logo

Tools and utilities for Windows

Some of my programs listed here are written many years ago and some are new, but most of them are now recompiled with MSVC++ optimizing compiler. Source code for the utilities and many other small test applications are available here as a 7-zip archive, www.7-zip.org.

Brothersoft 5/5 stars
This page contains software 5 star rated by Brothersoft.

You can use and redistribute the utilities and source code as you like, but remember to link back to this site or my e-mail adress and always attach any following text file when you redistribute the utilities. A big ZIP file with compiled exe-files for all utilities listed here and some more is available here (554 KB) or in 7-zip format here (250 KB).

Most of the programs here are compressed into ZIP files. ZIP files can be uncompressed in Windows XP and Windows Server 2003 but earlier versions of Windows require a third-party ZIP tool, like the shareware PKZip, WinZip or the freeware 7-zip or a free console tool like the GNU version of unzip.exe.

Please note! The applications are not tested in all possible environments. The author shall not be held responsible for what the applications actually do when they are used. If you have any ideas or modifications of source code you would like to share, please send me an e-mail. The tools published here are free with a very flexible open license. It is for example no problem to include any of the tools in a commercial product, as long as copyright information specifies that parts of the software belongs to me with some kind of reference, such as a web link, to http://www.ltr-data.se or this page. You do not have to make the source code available to your customers.

On this page

Do you want tips and advice for programming projects or need a C/C++ or Visual Basic programmer? Do you want tips and advice how to optimize and simplify administration of computers and networks? Have some kind of hard-to-solve problem with computers, networks, drivers, applications etc? Maybe I can help you. Send me an e-mail: olof@ltr-data.se or call me at +46 70 345 89 52. (I speak Swedish, English, Danish and Norwegian.)

Links to other projects

Many useful ports of GNU utilities to Win32 by Karl M Syring are available at UnxUtils sourceforge site.

Many useful open source Windows NT driver projects by Bo Brantén.

Other useful tools and interesting source code using undocumented native API:s and an Ext2 filesystem for NT project by Adrey Shedel.

Also got an e-mail from Boris Guzner who has a Registry Editor called RegMagik.


History of updates of this page

Update 18 Sept 2004

Update 28 Sept 2004
Update 2 Dec 2004
Update 21 Jan 2005
Update 25 Jan 2005
Update 18 Mar 2005
Update 10 Apr 2005
Update 19 Apr 2005
Minor update 11 May 2005
Minor update 15 May 2005
Minor update 21 May 2005
Update 1 Mar 2006
Minor update 2 Mar 2006
Minor update 5 Mar 2006
Minor update 7 Mar 2006
Serious bugfix 8 Mar 2006
Minor update 10 Mar 2006
Minor update 27 Apr 2006
Minor update 18 Jun 2006
Minor update 26 Jun 2006
Minor update 27 Jun 2006
Minor update 29 Jun 2006
Minor update 21 Sept 2006
Minor update 21 Nov 2006
Minor update 23 Nov 2006
Minor update 1 Dec 2006
Minor update 13 Dec 2006
Minor update 4 Feb 2007
Minor update 11 Mar 2007
Minor update 14 Mar 2007
Update 17 Mar 2007
Update 19 Mar 2007
Update 14 Apr 2007
Update 23 Apr 2007
Minor update 24 Apr 2007 Minor update 11 May 2007 Minor update 12 May 2007
Update 16 May 2007
Minor update 25 May 2007
Minor update 29 May 2007
Minor update 3 Jun 2007
Update 13 Jun 2007
Minor update 8 Jul 2007
Minor update 13 Jul 2007
Minor update 19 Jul 2007
Minor update 6 Sept 2007
Minor update 16 Okt 2007
Minor update 18 Nov 2007
Minor update 4 Feb 2008
Minor update 15 Feb 2008
Minor update 28 May 2008
Minor update 7 Aug 2008
Minor update 4 Nov 2008
Minor update 18 Nov 2008
Update 23 Nov 2008
Minor update 25 Nov 2008
Minor update 2 Dec 2008 Update 5 Dec 2008 Update 27 Jan 2009 Minor update 28 Jan 2009 Update 21 Apr 2009 Update 23 Nov 2009 Update 7 Dec 2009 Minor update 10 Dec 2009 Update 23 Dec 2009 Minor update 16 Feb 2010 Update 18 Feb 2010 Update 25 Feb 2010 Update 2 March 2010 Update 5 March 2010 Update 6 March 2010 Update 9 March 2010
All file dates are in ISO date format, YYYY-MM-DD. This makes the list easier to sort.

ImDisk Virtual Disk Driver - Latest version 1.2.8 built 9 March 2010

ImDisk is a virtual disk driver for Windows NT/2000/XP/2003/Vista/2008. It can create virtual hard disk, floppy or CD/DVD drives using image files or system memory. The install package installs a console-mode control program called imdisk.exe and a Control Panel applet. After install is finished, type imdisk without parameters for syntax help or double click the ImDisk icon in the Control Panel. It also adds a menu item in Windows Explorer so that you can right-click on a file to mount it as a virtual disk drive. Users of mdconfig in FreeBSD will probably be familiar with the command line syntax of imdisk.exe. The driver, service and control program can be uninstalled using the Add/Remove programs applet in the Control Panel. No reboot is required for installing or uninstalling.

The install package also contains a user-mode helper service that enables the virtual disk driver to forward I/O requests to other computers on the network. This makes it possible to boot a machine with NTFS partitions with a *nix Live-CD and use the included  devio tool to let ImDisk on another computer running Windows on the network mount the NTFS partition on the machine you booted with the *nix Live-CD. This way you can recover information and even run chkdsk on drives on machines where Windows does not boot. I am working on a Live CD image with devio and other useful things for this pre-loaded. There are also instructions about how to use devio under Windows on Claus Valca's blog.
About the install package
The install package is created using 7-zip sfx stubs and includes an .inf install script. No reboot is required after installing or uninstalling. The install package works on Windows NT 3.51/NT 4.0/2000/XP/Server 2003/Vista/Server 2008, both 32-bit and 64-bit versions.

Special note for both 32-bit and 64-bit versions of Windows Vista, Windows Server 2008 and Windows 7
On Vista and Server 2008 you need to either turn off UAC, User Access Control, or setup the driver to auto-load on system startup. Setting the driver to auto-start is recommended.

About turning off UAC: http://blogs.msdn.com/tims/archive/2006/09/20/763275.aspx
-- or --
Set the ImDisk driver to auto-load at Command Prompt: sc config imdisk start= auto
or set the ImDisk driver to auto-load using GUI: Open Device Manager, View -> Show hidden devices. Under "Non-plug-and-play devices" right-click ImDisk Virtual Disk Driver and select properties. On the "Driver" tab, change start type to Automatic.

Using either solution it should work after next reboot.

64-bit versions share source code with the 32-bit version. All features and most limitations are the same in the 64-bit and 32-bit versions. One notable difference however is that the 64-bit versions do not have any practical size limits for RAM disks.

64 bit drivers are now digitally signed with a certificate trusted by Microsoft.
This means that ImDisk now works
Windows Vista, Windows Server 2008 and Windows 7 even without running it testsigning mode.

Special note for Windows NT 3.51
The .inf file used in the install process is not compatible with Windows NT 3.51. To install on NT 3.51 you can extract the files in the packages using 7-zip and then manually create the driver keys in the registry or using a SCM control tool like sc.exe in the Windows NT Resource Kit. On later versions of Windows you just run the package and it will install everything automatically.

Source code
Source code for all of ImDisk, including a server-part for *nix like systems, is available as a 7-zip compressed file here (94 KB). The Windows parts of the source code can be built in the Windows 2000 build environemt in the latest WDK and the *nix parts can be built with gcc. If you want to call functions for creating/removing/querying virtual disks from your own program you can #include the file inc\imdisk.h in your C/C++ source files and link the cpl\i386\imdisk.lib library. If you would like information about how to write compatible server-end software you can take a look at the I/O packet structures in inc\imdproxy.h.

License
I have received some e-mails with questions wether or not it is okay to include this driver in a commercial product. The answer is yes, just like all other tools I publish here. However, note that a few lines of code are under the GNU GPL license, this is basically the parts related to floppy emulation. Some of the driver code is also ported to Windows NT from the FreeBSD 'md' driver.

Forum
A new sub-forum has been started at the boot-land forum. This new sub-forum is for discussions about ImDisk Virtual Disk Driver and other tools published here.


Zero and Random device driver - updated 10 Dec 2009 (signed 18 Feb 2010)

The Zero and Random device driver creates two device objects, \Device\Zero and \Device\Random and a symbolic link to each of these under \DosDevices so that they are reachable from Win32 applications using the syntax \\.\zero and \\.\random. The devices work like /dev/zero and /dev/random in *nix like environments. Zero produces zero characters and Random produces random characters in the read buffers. When written to both of the device objects act like a Null device, that is just accepting and ignoring the data in the write buffer. The drivers can e.g. be used with the classic dd tool or with my rawcopy tool to fill files, devices etc with zero or random characters, e.g. to wipe out the contents of a hard drive.

The install package installs the driver and loads it into the kernel and setup for automatical load when Windows starts up. The driver can be uninstalled using Add/Remove programs applet in the Control Panel.

About the install package
The install package is created using 7-zip sfx stubs and includes an .inf install script. No reboot is required after installing or uninstalling. The install package works on Windows NT 3.51/NT 4.0/2000/XP/Server 2003/Vista/Server 2008, both 32-bit and 64-bit versions.

64 bit drivers are now digitally signed with a certificate trusted by Microsoft.
This means that ImDisk now works
Windows Vista, Windows Server 2008 and Windows 7 even without running it testsigning mode.

Special note for Windows NT 3.51
The .inf file used in the install process is not compatible with Windows NT 3.51. To install on NT 3.51 you can extract the files in the packages using 7-zip and then manually create the driver keys in the registry or using a SCM control tool like sc.exe in the Windows NT Resource Kit. On later versions of Windows you just run the package and it will install everything automatically.


Small command line utilities

Works on Windows NT/95/98/ME/2000/XP/2003 unless the description says something else. Some of them also run on Windows 3.x with Win32s but then without displaying anything because Win32s on Windows 3.x has no console support.

These binaries are compiled with the free version of Microsoft Visual C++. They are not linked with the standard C or C++ libraries that comes with this compiler, instead they are linked with a dynamic library I call minwcrt (Minimal Windows C Run-Time Library) linking them to crtdll.dll instead of msvcrt.dll. This makes them run in all versions of Win32 without additional dll files. This is also the reason why the exe files are very small. Source for this library is available as part of the source archive mentioned in the top of this document.

Small utilities with graphical user interface (or with no user interface at all)

Works on all versions of Win32 unless the description says something else. This includes at moment Windows 95/98/ME/NT/2000/XP/2003 and Windows 3.x with Win32s installed.

These binaries are compiled with the free version of Microsoft Visual C++. They are not linked with the standard C or C++ libraries that comes with this compiler, instead they are linked with a dynamic library I call minwcrt (Minimal Windows C Run-Time Library) linking them to crtdll.dll instead of msvcrt.dll. This makes them run in all versions of Win32.

.NET applications

These applications are written in Visual Basic 2005. They run in Windows 98/ME/2000/XP/2003/Vista and they require .NET Framework 2.0 or later to be installed first. If they don't work and you have not installed .NET Framework 2.0 or later you can download and install it from Microsofts website.

Back to LTR Data homepage