Tools and utilities for Windows
Update history, most recent first
Update 21 January 2019
Update 18 November 2018
10 November 2018
Minor update 13 May 2018
Minor update 26 Aug 2016
Minor update 24 Aug 2016
Website 9 July 2016
Bugfix 1 July 2016
- Release 0.3.0k of Stream Archiver, StrArc.
- Fixed a problem that caused restoring extended attributes for directories to fail with "Access denied" error messages. Extended attributes are rarely used for directories but it has been seen for example for storing access control lists for Linux and similar NFS clients.
Update 19 March 2016
- Added ARM architecture builds for some tools. For instance rawcopy, strarc, devioctl, dosdev and a few others that could be useful on Windows 10 IoT Core ARM edition. Drivers like ImDisk and ZeroDrv will also be published for ARM platforms in near future.
Bugfix 18 December 2015
- Fixed mistake that caused the RESCAN command to not work. It should now work as expected, for instance: devioctl rescan scsi0:
Bugfix 16 December 2015
ImDisk Virtual Disk Driver 2.0.9.
- Fixed serious issue.
Attempts to create larger physical memory RAM disks than allowed by current free amount of memory could cause blue-screen crash.
Bugfixes 8 December 2015
ImDisk Virtual Disk Driver 2.0.8.
- Fixed serious issue when using proxy services that support the new unmap and zero requests (also known as TRIM). The problem could cause hangs, crashes in both user mode and kernel mode, the latter could cause blue-screen crashes.
- Fixed another issue when using the -o sparse flag. This problem could cause unexpected disk write failures when writing to virtual disks backed by sparse image files.
- Added a safe-guard check that verifies that a virtual disk about to be created is larger than 64 KB. There have been a few cases where various applications have created smaller virtual disks by mistake which has caused crashes in filesystem drivers.
- Split imdisk.sys driver source code into eight source files to improve readability.
Minor update 30 November 2015
Fixed problems with building on systems with big endian CPU architectures and some other scenarios with modern Linux editions. There are now also links to built binaries for Windows x86, Linux x86, FreeBSD x86 and FreeBSD x64 on the website.
Update 16 November 2015
- ImDisk Virtual Disk Driver 2.0.7.
- Fixed problems formatting new virtual disks on latest Windows 10 updates.
- Dropdown list with free drive letters in Control Panel applet.
- Some changes related to source files, development etc:
- ImDisk driver source file is now C++ instead of C. New name is sys\imdisk.cpp.
- Makefile in root of source tree is now improved to make it easier for anyone to simply download WDK 7 and build everything. Variables for using signing certificates etc could be added later when needed.
- Resource (.rc) files now adjusted to work with Visual Studio.
- Experimental Visual Studio solution and project files for making it easier to edit and build using WDK 8.1 and later and using Visual Studio 2013 and later. WDK 7 could still be used for Makefile-based builds where that is preferred.
- Devio sources modified to make it possible to build correctly on modern Linux, FreeBSD, etc OS with gmake and various *nix C/C++ compilers.
Bugfixes 17 August 2015
- ImDisk Virtual Disk Driver 2.0.6.
- Device list in Control Panel applet did not auto-refresh when new virtual disks where added or removed by other applications, such as command line tool. This has now been corrected and it should no longer be necessary to manually click refresh button in this case.
- Release 0.3.0h of Stream Archiver, StrArc.
- Restoring files and directories sometimes failed with "Access denied" error messages, particularly to external drives, attached virtual disks and similar. This should now be corrected.
Bugfix 9 August 2015
- ImDisk Virtual Disk Driver 2.0.5.
- Device list in Control Panel applet did not correctly show memory backed virtual disk that had been intialized with an image file.
- Support for sending an image path (or any custom string) through to proxy server. Syntax is server:port://path where :port just like previously is optional and defaults to 9000. The //path part is sent through to server end as an IMDPROXY_REQ_CONNECT request and makes it possible for one proxy service listening to one single port to handle requests for many different images.
Bugfix 5 August 2015
- ImDisk Virtual Disk Driver 2.0.4.
- Fixed problem that could cause formatting to fail in some cases.
Bugfix 4 August 2015
- ImDisk Virtual Disk Driver 2.0.3.
- Fixed serious issue with wrong drive formatted by command line tool.
Update 1 August 2015
- ImDisk Virtual Disk Driver 2.0.2.
- Fixed issue with saving virtual disk as image file from Control Panel applet or Explorer context menu.
- New command line option -o shared that forces driver to open images in shared write mode.
Update 29 July 2015
- ImDisk Virtual Disk Driver 2.0.1. Finalized version of earlier beta, with these additions/changes.
- Fixed issue with using directories as mount point.
- Separate "zero range" and "unmap range" requests sent to proxy, when proxy indicates support for such requests.
Minor update 21 May 2015
- w32ver.exe and w32verc.exe updated to display correct version number even on Windows 8.1 and later.
- New features and updated help text added to devioctl.exe.
Update 16 May 2015
Website update 3 May 2015
- Added link to Arsenal Image Mounter.
Bugfix 2 April 2015
- ImDisk Virtual Disk Driver 1.9.4.
- Fixed bug in awealloc driver that appeared in version 1.9.3. This bug made it impossible to use physical RAM as storage for virtual disks.
Update 1 April 2015
- ImDisk Virtual Disk Driver 1.9.3.
- Uninstall script now shows Control Panel applet if there are any existing drives that can be removed by user. If devices exist that are already in the process of being removed, uninstall carries on and may ask for reboot at the end.
- Corrected bug in command line tool. The -m #: syntax did not work if it appeared before -a on the command line.
- Fixed bug that could cause image file saving to fail. This happened when dismounting a memory backed disk from Explorer context menu and this disk had been created without using an image file.
- Symbolic links are now created for each ImDisk device. Device number 0 can be opened using path \\?\ImDisk0 from a Win32 application.
- Modified the dosdev tool so that it returns errorlevel other than zero if an error occurs.
Update 26 March 2015
- Added several new features to devioctl tool. It can now offline and online disks and volumes, set or reset readonly property on disks and show physical disk extents for each disk volume. It can also change partition type for existing disk partitions.
- Corrected a minor mistake in strarc syntax help. Also updated strarc.txt document and added descriptions about recently added features.
Minor update 21 Feb 2015
- Minor corrections to history page.
Update 2 Feb 2015
- Added some tools in the .NET section. For example tools for zip files, database queries, sending and receiving e-mails as files, calculating checksums, coordinate transformations and calculations and a few other things.
Layout changes 10 Jan 2015
- Some layout changes on the website to make it easier to view on mobiles, tablets etc.
Bugfix 17 Dec 2014
- Bugfix release 1.9.2 of ImDisk Virtual Disk Driver.
- Data corruption could occur when loading large disk images into virtual memory on Windows XP and older Windows versions. Thanks to v77 for reporting this bug.
Bugfix 15 Dec 2014
- Bugfix release 1.9.1 of ImDisk Virtual Disk Driver.
- There was a problem related to drive letters when mounting drives in Control Panel applet in 32 bit version of ImDisk Virtual Disk Driver 1.9.0. Thanks to v77 for reporting this bug.
Update 14 Dec 2014
- Release 1.9.0 of ImDisk Virtual Disk Driver.
- "Error" event log records changed severity level to "Information".
- Possible performance reducing code path corrected in AWEAlloc. Page mapping function had a local unwind from exception protection code. Some tests show that AWEAlloc memory disk access performance has increased by around 4-5 %.
- ImDisk virtual disk objects now support ZwQueryInformationFile/FileStandardInformation to query size as file size.
- devio.exe 3.03.
- Supports --novhd switch to disable dynamic vhd file detection.
- Safer detection of dynamic vhd format (no longer detects diff format).
- ImDisk "raw" (non-disk) mode now supports file pointer requests to emulate one single file volume.
- Added a few more security checks to various function calls in ImDisk and AWEAlloc.
- ImDisk now ignores any errors when attempting to read volume boot record to auto-detect geometry parameters.
- ImDisk source code: Cleaned up annotations and debug asserts.
- ImDisk API: New API functions for manually sending shell notifications for arrived or removed drive letters.
- ImDisk, fixed bug: Notifications on drive removal did not remove MountPoints/MountPoints2 registry keys.
- Fixed missing function exports in "core version" of imdisk.cpl.
Bugfix 8 Dec 2014
- Release 0.3.0f of Stream Archiver, StrArc.
- Bugfix: Compression attribute was not restored for directories, only for files. Thanks to Alexander Steinbrecher for reporting this bug.
Update 17 Sept 2014
Important fix 10 July 2014
Important fix 4 July 2014
Update 28 May 2014
- Release 1.8.2 of ImDisk Virtual Disk Driver.
- New command line switch -P that can be used with -a to persist settings for creating a virtual disk in registry, or with -d to remove such settings for an existing virtual disk. Only a few, rather basic, settings could be saved in this way. Settings for formatting or similar that requires interaction with other applications are not possible to save with this new -P switch.
- AWEAlloc driver: Protection against possible data corruption when multiple I/O requests are handled simultaneously. Not necessary when used with ImDisk, but could add some extra protection when awealloc is used from other applications or drivers.
- ImageOffset REG_QWORD registry setting, to specify offset within image file. Implemented primarily to make it possible to save -b switch settings in registry.
- Corrected some calls to IoCallDriver to make sure that not the wrong level driver is called in the device stack used for proxy communication. No problems have been reported because of this, though, but this correction makes sure that proxy communication works correctly even if filter drivers are loaded for the communication device.
- Cache latest I/O block in the same way as in Arsenal Image Mounter, to be returned directly in dispatch routine. This could improve performance in cases where applications or filesystem drivers frequently access the same areas on the virtual disk.
- AWEAlloc driver: Support for automatically expanding the in-memory "file" when writing beyond EOF.
- Support for passing through IOCTL/FSCTL requests through ImDisk driver down to the image file. Could be useful to send direct filesystem control commands directly to the driver that handles the underlying image file..
Update 1 May 2014
- Release 1.8.0 of ImDisk Virtual Disk Driver.
- "Emergency remove" option in Control Panel applet. Similar to -R on command line.
- Command line tool could get stuck in endless loop when error occurred when attempting to load hung driver. There are now a few further protections to avoid this.
- Temporary drive letter assignment during formatting from command line tool. This will hopefully fix the problem with formatting wrong drive when drive letter is already defined by an already existing other device. It also means that it will be possible to format new virtual disks with no assigned drive letters, as long as a temporary drive letter could be assigned during format operation.
- A minor mistake in imdisk.h, about ImDiskOpenDeviceByNumber: the description speaks of a "FileName" argument instead of "DeviceNumber".
- Byte-swap feature. A new command line option to instruct driver to byte-swap all I/O buffers. This is useful when recovering files from harddisks from some embedded devices or similar that store data in reverse byte order.
- Setup helper applications without crtdll.dll dependencies. This makes it easier to install on Windows Server Core editions where 32 bit crtdll.dll is not included.
Minor update 18 March 2014
- Release 0.3.0a of Stream Archiver, StrArc.
- Corrected a problem that caused extraction to stop on files with alternate data streams.
Minor update 7 March 2014
- Change behaviour when output device/file cannot be opened with the OPEN_ALWAYS flag. Now, in case of failure, it falls back to trying OPEN_EXISTING instead, which should make it possible to write raw blocks to disk devices even on "modern" versions of Windows.
Minor update 21 February 2014
Minor update 13 February 2014
Minor update 8 February 2014
Update 25 October 2013
Update 14 June 2013
Update 13 June 2013
Update 27 May 2013
- Release 1.7.3 of ImDisk Virtual Disk Driver.
- Another bug, similar to the one corrected in 1.7.2, has been found. This one could cause blue screens when a new virtual disk was created after the driver had been in use for a while. The cause of this bug has been identified and the problem is fixed in version 1.7.3.
- Fixed the setup package so that awealloc driver is now set to auto-start at system startup. This means that physical memory backed virtual disks now could be created without any further configuration after setup.
Update 13 May 2013
- Release 1.7.2 of ImDisk Virtual Disk Driver.
- A bug was introduced in 1.7.0 when support for more than 64 devices was added. This bug could, in rare cases, cause blue screens when the ImDisk driver had not been in use for a while and user requested a list of existing devices. This bug has now been fixed and 1.7.2 is a release version.
Update 28 March 2013
- Beta release 1.7.1 of ImDisk Virtual Disk Driver.
- The awealloc driver can now pre-load allocated memory with contents of an image file. This feature can be used through the ImDisk API by specifying file type virtual disk together with an AWE flag when mounting an image file. Command line users can specify -o awe and Control Panel applet users can tick a "physical memory" box to use this feature.
- .NET assemblies, C/C++ headers and libraries etc has been updated with the new AWE flag. Also a few new API functions to detect "memory disks" of any kind, either directly using virtual memory in the ImDisk driver or physical memory through awealloc.
Update 21 March 2013
- Release 0.2.0 of strarc
- Paths longer than 260 characters were not possible to backup or restore. This has now been fixed and strarc can now be used to backup and restore directory paths containing up to 32,767 characters.
- In backup mode (-c), it is now possible to specify -n instead of archive file. This skips actual backup operation and just enumerates directories and files that would have been backed up. Useful to find possible errors and/or in combination with -l (or -v) to list files that would have been backed up.
Update 15 March 2013
- Fixed issue with data corruption when restoring sparse files from strarc archives. Archives containing sparse files, made with older versions of strarc, are compatible and can be restored correctly with the new version.
Update 10 March 2013
- Notice about known bugs and limitations for strarc. Some serious bugs have been found, that may cause data corruption.
Update 8 March 2013
- Beta release 1.7.0 of ImDisk Virtual Disk Driver.
- Changed entire logic around device numbers. In practice, this means that ImDisk
now supports 64,000 simultaneous virtual devices instead of 64. On the other
hand, some existing applications that use ImDisk may experience compatibility
issues if they rely on the old 64 bit device list bit field. There is a new API
function in imdisk.cpl (ImDiskGetDeviceListEx) that returns complete drive list
with the new driver version. For .NET applications, no changes should be
necessary as long as applications work with the new version of ImDiskNet.dll,
which takes care of changes internally. Also, note that devices are now not
necessarily returned in device number order.
- New function exported from imdisk.cpl. RunDLL_MountFileW. This makes it possible
to send Unicode filenames to "mount new" dialog, which means that Unicode
filenames now work correctly when for example right-click on a file in Windows
- New device type option "raw", in addition to existing "fd", "cd" and "hd". Raw
creates a device with type FILE_DEVICE_UNKNOWN, which means that Windows will
not try to mount any filesystems or similar on the virtual device. This could be
useful in combination with third-party drivers which could provide other device
objects and just use this ImDisk device as backing store.
- Fixed problem with "media type" when auto-detecting geometry from BIOS Parameter
Block (Volume Boot Record) values.
- Driver now creates a global event object that applications can open to
synchronize with refresh events. This event is fired by driver after changes
such as drives added or removed or settings changed for existing drives. The
event object can be opened using a new API function ImDiskOpenRefreshEvent and
used with operating system wait functions. .NET applications can use a new
method ImDiskAPI.OpenRefreshEvent to get a WaitHandle in a similar way, or just
consume a static event, ImDiskAPI.DriveListChanged. For example, the Control
Panel applet now uses this refresh event and thereby refreshes drive list
automatically when drives are added or removed from other places, such as
command line, API or Windows Explorer context menu options.
- "Estimated size" for Control Panel Add/Remove Programs changed to 320 KB. Should
look more realistic.
- Please note that this version has some major technical changes and is
currently in beta stage. Until it is proved stable, it will only be available
through separate beta release links.
- Control Panel applet changed so that no drive letters are displayed for drives
with "lost" drive letters. This could happen if a new drive has been mounted
with the same drive letter afterwards, or similar. This also means that it
should now be possible to remove such "lost" drives directly from Control Panel
Minor update 13 Feb 2013
- Bug fixed in devioctl tool. When using "geometry" parameter, the wrong source data was presented as "BPB physical drive number". Also added a few more fields from FAT Extended BPB and changed some fields to hexadecimal display.
Update 2 Nov 2012
- Release 1.6.0 of ImDisk Virtual Disk Driver.
- Changes to virtual disk geometry. The driver now reports disk geometry based on volume boot sector values, when such values exist. There were also errors in LBA to CHS conversion when building image files with master boot records, which should now be fixed.
- Partition auto-detection works with partition entries that start at beginning of raw image file. This practically only happens for "hybrid" ISO/HDD image files, which did not work correctly with ImDisk partition auto-detection in earlier versions. This change has also been made to the partition detection logic in devio in a corresponding way.
- Support for sparse image files. A new command line option -o sparse causes ImDisk to create a sparse image file. This effectively sets sparse flag using FSCTL_SET_SPARSE, it causes image file size not to be increased to virtual disk automatically and it causes the image write routines to call FSCTL_SET_ZERO_DATA when an all-zero block is written to image.
- The driver now uses tagged kernel pool allocations. This means that poolmon.exe and other kernel memory monitoring, verifying and leak detecting tools that work on running drivers will work more like expected with ImDisk. Pool tag for imdisk.sys is now "ImDi" and for awealloc.sys it has been changed to "AWEA".
- The "wait for Windows Explorer" feature when double click on a drive icon in Control Panel applet, introduced in version 1.5.7, now has a timeout of five seconds.
- New API functions. One for detecting ISO CD/DVD image files by recognizing a filesystem signature. Another for reading disk geometry values defined in volume boot record fields, into a DISK_GEOMETRY data structure. Functions available both in C/C++ "flat" API and in .NET API library.
- Discussion about this ImDisk release in this forum thread.
Update 26 Aug 2012
- Update to checksum tool. Added parameters for using HMAC keyed hash
providers. Such providers can mix in a secret key so that hashes only matches if
same secret key is known when hash is later verified. Also added parameters for
loading hash providers from custom assemblies.
Update 30 July 2012
- Release 1.0.1 of Zero and Random Device Driver.
- Corrected an issue where read buffers of non-multiple of four bytes to the
random device were not filled with random numbers to the last up to three bytes.
- Changed the random data generator slightly to fill all possible bits randomly.
Previously, the high-order bit of each fourth bytes were never filled with 1,
and the low-order bit of next coming bytes were not filled with 1 with same
probability as other bits.
- Corrected an issue where read buffers of non-multiple of four bytes to the
random device were not filled with random numbers to the last bytes.
- The random device is now a little bit slower, but still works a lot faster and
with better random data on 64 bit Windows compared to 32 bit.
- Update to ImDisk Virtual Disk Driver setup package. The install script in ImDisk
setup package has changed so that it skips displaying message boxes if
environment variable IMDISK_SILENT_SETUP is set to
the value of 1.
Minor update 16 Feb 2012
- Release 1.5.7 of ImDisk Virtual Disk Driver. Change in Control Panel applet:
When user double clicks on a disk icon in device list, the applet will now check
first that drive letter is recognized by Windows Explorer, before sending a
command to Windows Explorer to open the drive root folder. This check avoids the
possible "Path does not exist" error messages from Windows Explorer that could
turn up in earlier versions. The change does not apply on Windows NT 4.0 and
older where there is no drive list internally cached within Windows Explorer.
While the applet code is waiting for drive letter to appear in Explorer, user
can click a "Cancel" button to cancel out from the wait operation.
Update 15 Feb 2012
- Corrected a problem with txtcnv32. In-place conversion of files larger
than 1 GB were not correct.
- Release 1.5.6 of ImDisk Virtual Disk Driver:
- API has been extended with new
functions. Read inc\imdisk.h in source archive for documentation about C/C++
look here for documentation about .NET API. There are also, as usual, xml
files with method/parameter descriptions available to each assembly file.
- Control Panel applet: When a new virtual disk is created, it is automatically
selected in device list.
Update 14 Jan 2012
- Added 64 bit ports of some more tools.
- Added some console based .NET tools, coordtool, checksum and
Update 15 Nov 2011
- New feature added to the rawcopy tool. Differential copy mode where
each block is compared between source and target and only copied when different.
There is a new switch -D for this. Thanks to "LZ" for idea and
Release 1.5.3 of ImDisk Virtual Disk Driver:
- A serious bug in awealloc driver has been corrected. Data corruption could occur
on awealloc backed disks larger than 4 GB.
- Function ImDiskStartService in API has changed so that it returns TRUE
when the service is already running. GetLastError() will return
ERROR_SERVICE_ALREADY_RUNNING in that case. This means that imdisk.exe and
Control Panel applet will behave more correctly now when another start control
has been sent to driver or service while these ImDisk control programs are
waiting to be able to start them. Thanks to "dickfitzwell" in reboot.pro forum
for reporting this problem.
- .NET/COM API has changed to use the modified ImDiskStartService native
API function instead of .NET ServiceController class which means that no
exception is thrown now when LoadDriver or LoadHelperService methods are called
when driver or service are already loaded.
Minor update 5 Nov 2011
- The -i switch to rawcopy did not work correctly. The copy
progress stopped on read errors even if -i switch was given on command line and
error messages were not displayed correctly in verbose mode for each I/O error.
This is now fixed.
- Changed the swapadd tool to display both current size and used size of
Update 17 Oct 2011
Update 15 Oct 2011
- Release 1.5.2 of ImDisk Virtual Disk Driver. Fixed an error in setup package. On
some systems, ImDisk could be upgraded but not installed without an existing
older version already installed. Application notifications changed when virtual
disks are created or removed. Added a flag to tell Windows not to wait for
applications that appear hung to process the notification.
Update 8 Oct 2011
- Release 1.5.1 of ImDisk Virtual Disk Driver.
- Setup package changed. It now registers drivers and service
with start mode set to "auto" so that they will start
automatically at system startup. It also automatically starts
drivers and service automatically at the end of setup so that
they will be immediately available. This should make setup
easier, particularly on Windows versions with UAC.
- Setup package now operate as follows. First, it checks if
there is an existing version of ImDisk installed and if there
are any virtual disks mounted. If there are any, it displays a
message that existing virtual disks should be dismounted before
upgrade. Otherwise it stops any existing drivers and service
that are about to be upgraded and continues with install/upgrade
.inf script. Then, starts the drivers and service and displays a
message box that setup was successful. This means that installed
or upgraded version will be available immediately.
- A new switch has been added to ImDisk command line control
program. The new option is -R and it can be
used to remove a hung virtual disk when nothing else helps. It
is a dangerous operation though, it does not attempt to dismount
the filesystem on the virtual disk or any other cleanup
operation, so it should only be used when no other option is
available. It could be useful for example for proxy type virtual
disks where the proxy server has stopped responding and driver
thread is hung waiting for a proxy response.
- The devio program has moved to version 3.01. It now
checks if the object name to be used for shared memory
communication is already used. In that case it just displays an
error message and exits. The objects for shared memory
communication are now also automatically created in global
namespace so explicitly prefix object names with Global
prefix is no longer needed. The DiscUtilsDevio tool
has also been changed in the same ways.
Minor update 8 May 2011
- Release 1.5.0 of ImDisk Virtual Disk Driver.
- Rewrote allocation logic in awealloc driver in
ImDisk package. From this version awealloc attempts to allocate
blocks from as high memory addresses as possible, even if not
all requested memory is available there, then allocating rest of
requested memory at lower addresses. This makes it transparent
to user, but each failing allocation attempt is logged in
Windows event log.
- ImDisk now supports shared memory and kernel synchronization
objects for transferring I/O requests and data between driver
and user mode proxy service. This should speed up I/O request
somewhat, although performance gain compared to TCP/IP is most
notable on old Windows versions, especially prior to Windows XP.
- The devio tool, the sample proxy service for
proxy-mode ImDisk operation has got some new features. Most
notably support for new shared memory communication described
above, but also support for loading third-party DLL files
implementing a simple I/O request API which makes it easier for
developers to write modules that support other image file
formats and similar. The I/O request API could be either plain
DLL function calls or a class in a .NET class library. This has
for example been tested with DiscUtils library, a library that
supports many image file formats.
- Fixed a problem in ImDiskNet.dll, the .NET/COM class library
for using ImDisk API. The problem caused exceptions about
missing functions on 64 bit Windows and when that was later
fixed the same exceptions started to occur on 32 bit Windows
instead. The current combination of latest imdisk.cpl and
ImDiskNet.dll should work correctly.
Minor update 21 Apr 2011
- Chsize32 updated to support larger file sizes than 4 GB.
- Rawcopy updated to support skipforward and copylength
parameters in files larger than 4 GB. Also added a new switch -f
that can be used to retry failed I/O operations a specified
number of times before the operation is considered failed.
Update 13 Mar 2011
- Release 1.4.2 of ImDisk Virtual Disk Driver. Added a new API
function, ImDiskCreateDeviceEx where caller can get device
number of created device. Also added a corresponding function to
.NET/COM DLL (now version 1.002).
Update 11 Jan 2011
- Release 1.4.1 of ImDisk Virtual Disk Driver. Corrected some
serious memory allocation bugs, memory access bugs etc for 64
bit version. Hopefully this will solve problems reported for
large memory disks. Thanks to David Wren, Passmark, for
debugging. Also changed the "attached disk notification" sent to
other applications in an attempt to solve a few problems
reported about invisible and incompatible ImDisk drives on
Update 9 Dec 2010
- Final release ImDisk Virtual Disk Driver 1.4.0.
Update 2 Dec 2010
- Beta release ImDisk Virtual Disk Driver version 1.4.0:
- Corrected a serious bug that seems to have particularly caused
blue screen crashes on 64 bit Windows versions on
multi-processor computers. Thanks to Bruce Cran for helping the
project with debugging on 64 bit architecture.
- Graphical user interface, that is Control Panel applet and
right-click menu option in Explorer now shows option to add MBR
(Master Boot Record) while saving disk contents to image file.
- Algorithm for selecting default virtual disk geometry (C/H/S
geometry) for virtual hard disk volumes changed. From this
version, driver will auto-select 255/63/512 geometry in most
cases. Only exception from this is when virtual disk is smaller
than about 2 GB in which case smaller tracks per cylinder size
is chosen. User defined virtual geometry can still be manually
selected using command line or API directly.
- ImDisk source archive now contains a subdirectory called
ImDiskNet. This is a .NET dll file which could be used from for
example VB.NET or C# to create/modify/delete/save etc virtual
disks. This dll also contains a class that can be used as a COM
object from VB6 or VBScript etc. This dll is also available for
direct download here.
- 64 bit setup now installs 32 bit imdisk.cpl and imdisk.exe in
addition to the usual 64 bit versions. This means that API calls
and command line calls will work from 32 bit applications even
on 64 bit Windows without tweaking with installing dlls manually
in correct directories etc.
- Updated "devio" tool. This version supports both reading and
writing dynamic resizing .vhd files used by Microsoft Virtual
PC, Virtual Server and Hyper-V. Earlier version had a serious
bug that would corrupt disk image when mounted for both reading
- Changed notification that is sent to other applications when a
new virtual disk is created. ImDisk does no longer wait for all
applications to process the notification. It however still waits
for all applications to process the notification that is sent
when a virtual disk is about to be deleted.
Update 27 July 2010
- Some files were missing in the source.7z archive and some old
files included by mistake. Cleaned up Makefile etc. Thanks to
Alberto Martínez for notifying me about this.
Update 7 June 2010
- Release 1.3.1 of ImDisk
Virtual Disk Driver. Two problems have been corrected.
- Device control code IOCTL_IMDISK_QUERY_DEVICE did not report
image file offset.
- On Windows versions with UAC, proxy connection did not work
because of permission errors when connecting to the helper
Minor update 13 April 2010
- Release 1.3.0 of ImDisk
Virtual Disk Driver. New registry setting DisallowedDriveLetters that
can be used to specify drive letters not allowed to be used for
ImDisk virtual disks. It should be a string value containing
drive letters to disallow. The value should be created under the
Update 9 March 2010
- The zip archives for 64 bit editions of strarc and regrepl had been replaced
by 32 bit versions by mistake in the recent updates of this
page. This has been corrected now. Thanks to Anton Yermakoff for
notifying me about this problem. If you have got 32 bit versions
because of this during this time you can now correct that by
downloading the new archives.
Update 6 March 2010
- Release 1.2.8 of ImDisk
Virtual Disk Driver. Further corrections to the routine
that saves disk contents as an image file. Buffer sizes are now
adjusted to make sure that the complete disk contents are saved.
- New features to rawcopy
including options to select unbuffered I/O and direct DASD I/O.
Update 5 March 2010
- Release 1.2.7 of ImDisk
Virtual Disk Driver. A correction was made to the
routine that saves disk contents as an image file. Thanks to
"TheK" for suggesting this fix.
Update 2 March 2010
- Release 1.2.6 of ImDisk
Virtual Disk Driver. When contents of a disk volume is
saved as an image file from Control Panel applet or using
Explorer context menu option it is now ensured that the
resulting image file has the same size as the saved disk volume.
This means that even if the underlying filesystem driver does
not return all data at the end of the disk volume the image file
will still be padded and filled up to the matching size so that
everything works correctly when the image file is later mounted
as a virtual disk.
Update 25 Feb 2010
- Release 1.2.5 of ImDisk
Virtual Disk Driver. Registry settings for
auto-creating a virtual memory backed virtual disk pre-loaded
with an image file did not work without setting disk size
explicitly on 64 bit versions. This has now been corrected to
work as expected, that is, disk size is automatically detected
from image file size like in 32 bit version.
Update 18 Feb 2010
- Release 1.2.4 of ImDisk
Virtual Disk Driver. When registry settings where setup
for the driver to auto-create a virtual disk when driver is
loaded, specified drive letter was not assigned for the device.
This has now been corrected.
Minor update 16 Feb 2010
ImDisk Virtual Disk Driver
and Zero and Random Device
Driver 64 bit drivers are now digitally signed with a
certificate trusted by Microsoft. This means that they now work
on 64 bit editions of Windows Vista, Windows Server 2008 and
Windows 7 without Windows running in testsigning mode.
Update 23 Dec 2009
- Modified sizdir32.exe
so that it now displays correct allocation size for sparse files
as well as compressed files.
Minor update 10 Dec 2009
- Release 1.2.3 of ImDisk
Virtual Disk Driver.
- The driver now supports 64 virtual drives instead of 32.
- ImDisk virtual disks can now hold Windows swap files. Useful
if you want to create a swap file on a disk-less (RAM-booted)
machine, or if you want to create a swap file on a network
- Security change. On Windows XP and later, file permissions are
now checked so that user mounting a new virtual disk actually
has requested access to the image file to mount. If user does
not have access to the image file, the device creation operation
is denied by the driver and is reported as an "Access denied"
error message to the user. On Windows 2000 and earlier the
driver works like in previous versions, that is, without any
- Security fix. There was a privilege check missing in a
callback that the helper service uses to callback into the
driver when a proxy connection has been established and is ready
to be used by the driver. Without this privilege check there is
a backdoor into privileged kernel space. This has now been
Update 7 Dec 2009
- 64-bit versions of Zero and
Random Device Driver now uses a new faster kernel API
for generating random characters.
Update 23 Nov 2009
- Release 1.1.6 of ImDisk
Virtual Disk Driver.
- Added further support for dismounting virtual disks without
administrative privileges. Previously ordinary users could not
force dismount of "fixed" virtual hard disks. This has now been
changed so that any user can force a dismount.
- Changed the routine that removes virtual disks so that in case
of RAM disks the drive letter and used memory are freed first
before it waits for handles to close and actually removes the
device object. This means that RAM can now be freed immediately
when a RAM disk is deleted even if the device cannot be
- Changed rawcopy so
that parameters accept K, M and G suffixes for kilobytes,
megabytes and gigabytes.
- Added 64-bit versions of regrepl,
strarc and winlogoncfg for better
compatibility with 64-bit versions of Windows.
Update 21 Apr 2009
- Release 1.1.5 of ImDisk
Virtual Disk Driver. Corrected a few things regarding
creating and removing drive letters. Sometimes drive letters
were not successfully removed when non-privileged users
unmounted a virtual disk. This seems to be fixed now. Also
corrected shell notifications when drives are mounted and
dismounted so that applications get correct notifications.
Earlier, for example, notifications where sent out for drive
letter X when drive Y was created or removed. A confirmation
dialog has also been added where user has to confirm mounting a
virtual disk over a drive letter that is already in use.
Minor update 28 Jan 2009
- Release 1.1.4 of ImDisk
Virtual Disk Driver. Automatic partition recognition
was not successful with other sector size than 512 bytes. This
is now fixed.
Update 27 Jan 2009
- Release 1.2.1 of rawcopy.
The behaviour when -s
switch is used has changed. It now skips writing blocks
containing all zeroes and instead just moves the file pointer
Update 5 Dec 2008
- Release 1.2.0 of rawcopy.
There is now a -s
switch that creates output files as sparse files.
Minor update 2 Dec 2008
- Release 1.1.3 of ImDisk
Virtual Disk Driver. Corrected one additional problem
with the auto-detection of master boot records in image files.
Corrected a serious problem with proxy-type virtual disks where
a malformed I/O message from the proxy server could cause
blue-screens in some cases. The install package now also
includes binaries for 64-bit AMD and Intel architectures.
- The server-end program for ImDisk in proxy-mode, devio.exe has been updated.
Auto-detection of file sizes now works under both Windows and
*nix and it also supports auto-detection of master boot records
and selecting parameters for a partition read from the master
boot record. Support has also been added for dynamically
expanding Microsoft .vhd files used with Virtual PC and Virtual
Server. Fixed size .vhd files have been possible to mount
directly with ImDisk before but this adds support for
dynamically expanding .vhd files via devio.exe as a I/O proxy. The tool devio.exe is a command line
tool and can be downloaded here
or here (FreeBSD version).
Minor update 25 Nov 2008
- Release 1.1.2 of ImDisk
Virtual Disk Driver. Corrected some problems with the
auto-detection of master boot records in image files and added a
new feature where the driver sets a flag when a virtual disk has
been written to. This flag can be cleared with the imdisk -e -o saved command
and is shown for example with imdisk
-l -m R: or similar. This should make it possible to
script a solution where a RAM disk could be saved to an image
file if it has been modified. Thanks to "Zero3K" for suggesting
Update 23 Nov 2008
- Release 1.1.1 of ImDisk
Virtual Disk Driver. The driver now automatically
detects .iso, .nrg and .bin files as CD/DVD images.
Minor update 18 Nov 2008
- Release 1.1.0 of ImDisk
Virtual Disk Driver. The user interface now supports
auto-selecting values for offset and size by reading partition
table in raw hard disk images. This makes it a lot easier to
mount a partition within a hard disk image file. For the command
line tool a new switch -v has been added used to select which
partition to mount. The user interface also support
auto-selecting offset when mounting Nero .nrg and Microsoft .sdi
image files. With the command line tool imdisk.exe the switch -b
with parameter auto is
used for this.
Minor update 4 Nov 2008
- Updated error reporting in strarc
so that the name of any directory that cannot be created or
changed to is displayed in the error output. This could be
useful for example when error output from many strarc runs are
appended to the same error log file. The new version is 0.1.4a.
Minor update 7 Aug 2008
- Release 1.0.4 of ImDisk Virtual Disk Driver. Added an option
to force removal of ImDisk virtual disks from command line even
when devices are in use. Use a capital letter 'D' in the delete
switch to imdisk.exe to use this option, for example: imdisk -D -m R:
Minor update 28 May 2008
- Correction to the sector size in the geteltorito tool. The extracted boot images
were always four times larger than expected. Thanks to Jose
Acevedo for notifying me about this and for suggesting a fix.
Minor update 15 Feb 2008
- Changed the ImDisk
install script so that a fixed estimated size is used by the
Add/Remove Program Control Panel applet. This should fix the
problem with Windows 2000 calculating the entire size of the
system32 as the size of ImDisk. Thanks to Stefan Kanthak for
notifying me about this and for suggesting a fix.
Minor update 4 Feb 2008
- New ImDisk feature. It is now possible to type a negative size
value on the command line when creating a virtual disk. This
means that the size of the virtual disk will be the amount of
free physical memory minus this value. This is useful when
creating large RAM-disks where the size should depend on the
amount of free memory.
Minor update 18 Nov 2007
- Corrected some texts in ImDisk components, for example some
typos and errors in messages and source code comments.
Minor update 16 Oct 2007
- Changed the icons in the Control Panel applet and added a
context menu. It is now possible to right-click on a device in
the list and get a menu with commands for that device.
Minor update 6 Sept 2007
- Fixed an error in the ImDisk Control Panel Applet. The unit
selection radio buttons for offset in image files did not work
- Added broadcasting of WM_DEVICECHANGE messages when devices
are about to be removed as an attempt to resolve this issue: TortoiseSVN
Minor update 19 Jul 2007
- Minor layout changes to the "Mount new" dialog box in ImDisk
Control Panel Applet.
Minor update 13 Jul 2007
- Two errors in buffer-checking code found, one in ImDisk and the other in Zero and Random Device Driver.
I recommend all users to install the latest versions as these
bugs under some circumstances can blue-screen the system. Thanks
again to Sebastian Gottschalk for code reviewing.
Minor update 8 Jul 2007
- Two buffer-overrun bugs found and fixed in ImDisk. Special thanks to
Sebastian Gottschalk for code reviewing.
Update 13 Jun 2007
- Some minor changes to ImDisk.
The window style for the Control Panel applet has been changed
so that it shows up on the taskbar and can be minimized as well.
The image size visualization for some common floppy sizes are
now changed in the Control Panel applet to the more commonly
used "thousands of KB". This is done for the floppy sizes 2,880
KB, 1,722 KB, 1,680 KB, 1,440 KB and 1,200 KB.
Minor update 3 Jun 2007
- Some changes have been made to ImDisk. It is now possible to set or reset the
removable and read-only media characteristics of an existing
virtual disk. This means for example that a virtual memory
backed virtual disk now can be made read-only without first
saving an image of it and re-mount that image read-only. I/O
delays to virtual memory backed virtual disks has been removed
so the write performance should be much better now.
Minor update 29 May 2007
- Added a "Filesystem" column to the virtual disk list in the ImDisk Control Panel
- Corrected an error in the ImDisk
command line tool imdisk.exe. If the -p parameter was
used with a virtual disk without a drive letter the program
crashed. It now displays a message telling that a drive letter
is required for the -p parameter to work.
Minor update 25 May 2007
- Fixed a problem with ImDisk.
When the menu item "Save disk contents as image file" on a drive
icon in Windows Explorer was selected on a drive that was in use
a message box was displayed asking whether or not to continue
without dismounting the volume. The operation continued even if
"Cancel" was selected in the message box. That is now corrected.
Update 16 May 2007
- Added support for a couple of more floppy disk sizes to ImDisk.
- Fixed the character set used for file name reporting in the fileinfo tool.
Minor update 12 May 2007
- Release of version 1.0.3 of ImDisk
Virtual Disk Driver. The following are some of the new
features and changes.
- Corrected auto-selection of geometry so that sector size of
512 bytes is selected for virtual hd and fd and 2048 for virtual
cd. It is still possible to manually override the default
settings using the -S parameter on the command line.
- The buttons in the Control Panel applet have been re-ordered
and the 'Done' button is renamed to 'Close'.
- Corrected some very difficult-to-understand or just mistyped
texts in the help text displayed when imdisk.exe is run without
parameters (or when incompatible or bad syntax is used).
- All numeric parameters to imdisk.exe are now checked so that
they are really numeric. Earlier it was possible, although
confusing, to type for example imdisk -d -u F:. Because
-u takes a device number as parameter it translated F: into a
number and because F: is not a number it got zero and removed
device number zero even if that was not actually F:. There was a
risk that users removed the wrong device in such cases.
- It is now possible to extend the size of RAM-disks too.
However note that the resizing of RAM-disks may take a long time
because the driver needs to allocate a new block of memory with
the new size, copy the contents of the old memory block to the
new one and then release the old block. This means that RAM and
CPU usage may be very high during the resize operation.
- The behaviour when creating a RAM-disk pre-loaded with an
image file has changed so that the loading of the image file
into the RAM-disk memory block is done after control has
returned to the caller but before the driver actually starts
service I/O requests for the virtual disk. This means that when
a RAM-disk with pre-loaded image file is created from for
example a batch file the batch file does no longer hang waiting
for the RAM-disk to be completely loaded with the image file.
- It is now possible to format virtual disks directly from the
Control Panel applet.
- When a new virtual disk is created using the command line tool
imdisk.exe it is now possible to have the newly created virtual
disk automatically formatted. This is implemented by imdisk.exe
calling format.com after virtual disk creation. The new -p
command line option is used for specifying additional parameters
to the format.com command line, such as switches for specifying
filesystem, volume label etc. Type imdisk.exe without parameters
for more information about this new option.
- Support has been added for mounting image files and specifying
offset where the disk partition image begins within the image
file. The new -b command line option is used for this.
- It is now possible to double-click on a virtual disk in the
list in the Control Panel applet to open the virtual disk root
folder in a Windows Explorer window.
- It is now possible to specify a per cent sign % as a
suffix to the size parameter, -s on the command line. It
means percentage of free physical memory which could be useful
when creating RAM-disks. For example -s 20% creates a
RAM-disk of 20 per cents of the size of currently free physical
memory. (Note that you will need double per cent signs if you
are using this syntax in a batch file.)
- A refresh command has been added to the Control Panel applet.
While the list of current virtual disks has keyboard focus it is
now possible to press F5 to refresh the list. This is useful
when virtual disks are added or removed from the command line or
directly from Windows Explorer while the Control Panel applet is
- Corrected and added virtual disk geometries for some old
- Added a new item to the context menu that is displayed when
right-clicking a drive in Windows Explorer. The new menu is used
to save the contents of a disk as an image file.
- Most of the these changes come from ideas discussed at forums
forum. If you have any ideas you would like to share you
are welcome to discuss the development of my open source tools
Minor update 11 May 2007
- Fixed a command line parsing bug in the imdisk.exe command line
tool for ImDisk Virtual Disk
Driver. Any string was accepted as a device number with
the -u parameter and in case it was not a number it was
translated to zero. This was confusing and misleading and is now
corrected so that only numbers are accepted with the -u
- Changed enumwinw.exe
(the graphical tool for finding and manipulating windows) so
that it now uses ShowWindowAsync() instead of ShowWindow() when
showing or hiding windows. This fixes the problem that caused enumwinw.exe to hang when
trying to show/hide a window that belonged to a hung
Minor update 24 Apr 2007
- I have tried to clarify the license for ImDisk Virtual Disk Driver
and there is now a discussion forum about ImDisk and other tools here
on the boot-land
forum. More about that in the section about ImDisk.
- It is now possible to use the first unused drive letter even
when mounting virtual disks from the command line with ImDisk. Specify #: as drive letter for this
- Changed the behaviour of the context menu items in Windows
Explorer. There is now only one menu item and that one brings up
the "create new virtual disk" dialog before doing anything. This
way I hope to reduce the risk of mounting files as a virtual
disks by mistake as that could be dangerous and lead to
destroyed contents of mounted files.
Update 23 Apr 2007
- Updated strarc so
that it now correctly restores the sparse file attribute (unless
the -s:c option is specified).
- Small fixes to ImDisk,
mainly to the install routine. It now adds two context menu
items for file objects in Windows Explorer, one for read-only
and one for read/write mounting and it adds one menu item for
drive objects to unmount them.
Update 14 Apr 2007
- Release of version 1.0.2 of ImDisk.
This version includes some new features and small fixes.
Formatting FAT/FAT32 on Windows 2000 now works again. Faster
TCP/IP forwarded I/O through a modified helper service.
Removable and hot-plug device properties with the -o rem switch.
Better handling of removal of devices where I/O to underlying
device have failed. It is now possible to extend the size of
mounted virtual disks with the new -e switch. First free drive
letter is now automatically suggested in the "Mount new virtual
disk" dialog box. When removing virtual disks it is now possible
to force dismounting of the filesystem if it cannot be
gracefully dismounted. A right-click menu item for mounting
files as a virtual disks is now added for Windows Explorer file
- Also added some new features to the devioctl tool. It can now be used to extend
the size of partitions and filesystems and also display more
detailed geometry and size information about disk drives.
- Adjusted the default I/O buffer size in strarc. Should be more
cache-effective and reasonable now.
Update 19 Mar 2007
- Release of version 1.0.1 of ImDisk.
Corrected the driver so that the auto-selection of device type
never overrides the device type selected manually on the command
line (like it should have worked). Also updated the format the
user interface applications and the driver use to send
information about the virtual device geometry and volume length
so that the volume length (from existing file size or specified
by user) is always preserved and the number of cylinders rounded
down if necessary. This was only a problem when mounting a
volume that was meant to be later written out as a physical
partition and the virtual geometry has to be equal to that of
the future physical volume when filesystem is created or
Update 17 Mar 2007
- Added a new tool called geteltorito.
More information by the link to geteltorito.zip.
Minor update 14 Mar 2007
- Several fixes and changes in ImDisk Virtual Disk Driver.
- There have been some issues with using subdirectories as mount
points for virtual drives, for example related to file listing
etc. That should be fixed now.
- On most Windows NT 3.51 or 4.0 systems it has not been
possible to dismount virtual CD/DVD-ROM drives. Even though
there still seem to be some problems, especially in combination
with some filesystem drivers, it now seem to work at least in
- The behaviour of the driver is now changed so that it keeps
information about associated drive letter even on Windows NT
3.51 or 4.0. This was changed mainly because it simplified the
development of GUI control tools.
- Developed a small Control Panel applet for controlling the
ImDisk Virtual Disk Driver. The default install package installs
it and adds an ImDisk
icon to the Control Panel. The applet can be used for the basic
tasks with ImDisk,
mounting/dismounting virtual disks, but it does not have the
full functionality the command line interface has.
- Also fixed a problem in the devioctl
tool so that it now can eject CD/DVD-ROM drives in Windows NT
3.51 or NT 4.0.
Minor update 11 Mar 2007
- Fixed the ImDisk
install package. The old .inf file seems to have been packaged with
the new version from 11 march (incompatible). Should be fixed
- Fixed a problem with strarc.
If a file read operation fails during a backup job, the restore
routine could get confused about the data stream and not
restoring any files until the size of the failed file was
streamed to it, which means that it could skip restoring files
under these circumstances. The behaviour of the restore routine
is now changed so that if a file restore fails it immediately
returns to scanning the stream for new file headers, which
should solve most of these problems.
Minor update 4 Feb 2007
- Fixed a bug in the ImDisk
driver. If the system would run out of kernel pool memory during
driver initialization in combination with registry settings for
creating virtual drives while the driver was loaded, it could
attempt to free other drivers memory and possibly blue screen.
Also rebuilt ImDisk
with the new
Windows Driver Kit (WDK).
Minor update 13 Dec 2006
- Modified the way ImDisk
emulates multi-session CD/DVD. Images of multi-session CD/DVD
were not handled correctly which confused some UDF filesystem
drivers which made it very difficult to read for example the WDK
images from Microsoft with some UDF filesystem drivers
installed. This seems to be fixed with this modification. Thanks
very much to Federico Bianchi for notifying me about this
Minor update 1 Dec 2006
- Fixed a problem with ImDisk.
Write permission was required for the image file unless the -o
command line option specified ro
for a read-only virtual disk. This was true even for virtual
CD-ROM drives even though they are always read-only and never
make any use of the write permission for the image file. This is
now corrected so that only read permission for the image file is
required to create virtual CD-ROM drives.
Minor update 23 Nov 2006
- Fixed a problem with ImDisk.
The command line tool imdisk.exe
did not accept multiple options separated by commas as the
documentation stated. This is now corrected.
Minor update 21 Nov 2006
- Fixed a problem with ImDisk.
The command line tool imdisk.exe
had a misleading help text telling that a b suffix to virtual disk
sizes meant bytes and that sizes without suffixes meant number
of 512-byte blocks. Actually, the b suffix was not accepted and sizes without a
suffix was taken as bytes. Now, added a b suffix that takes the
size as number of 512-byte blocks. Without suffix still means
bytes. Also corrected and updated the help text to reflect this.
Minor update 21 Sept 2006
- Changed sizdir32.exe
so that the summary now includes total used, total free and per
cent used and free.
Minor update 29 Jun 2006
- Fixed a problem with ImDisk.
The command line tool imdisk.exe
did not accept the cd
parameter to the -o option.
Minor update 27 Jun 2006
- Corrected the link to dosdev.zip.
Minor update 26 Jun 2006
- Revision 0.1.3c of strarc.
Corrected a mistake from yesterday. Extended characters were not
displayed correctly in file listings (converted to OEM charset
Minor update 18 Jun 2006
- Revision 0.1.3b of strarc.
Changed the file listing with the -l switch to not attempt to
break lines at spaces in paths. The reason to this change is to
make it possible to write the backup listing to a log file
without having the paths modified for console display.
Minor update 27 Apr 2006
- Fixed several broken links on this page.
Minor update 10 Mar 2006
- Fixed a problem with popdump
that caused it to not receive messages from some servers. Thanks
to Joseph Brown for notifying me about this bug.
Serious bugfix 8 Mar 2006
- Small change of the install routine for the Zero And Random Device Driver.
The driver will now load automatically when install is finished.
Minor update 7 Mar 2006
- Revision 0.1.3a of strarc.
Fixed a problem when restoring over existing files with more
than one hard link. The bug caused existing file to be truncated
to zero bytes. Update your strarc.exe
to the latest version before restoring over existing files with
more than one hard link.
Minor update 5 Mar 2006
- Still some problems with displaying error messages with
correct line breaks etc. Seem to be fixed now.
Minor update 2 Mar 2006
- Added some new features to txtcnv32.
It is now possible to specify codepages to convert from and to,
or to convert from or to 16-bit Unicode from or to a specific
Update 1 Mar 2006
- Fixed an error in my CRT that caused error messages with file
names to be displayed with the wrong character set for the file
name but the correct one for the error message string. At least
it is now consequent after this fix...
Minor update 21 May 2005
- Added a new section called Device
driver projects on this page. Here I will publish the
open-source driver projects I am working on.
- Introducing a new device driver project called ImDisk. This is basically a
virtual disk driver for Windows NT/2000/XP/Server 2003 that can
use disk files, virtual memory or a device on another computer
on the network to emulate disk drives. It is even possible to
boot a machine with NTFS partitions using a Unix 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 Unix Live-CD. This
way you can recover information and even run chkdsk on drives on
machines where Windows does not boot.
- Fixed an issue with fdf.
Previously when the -c switch were used to split links, fdf did
not check if two links found actually were the same link which
could cause it to delete the last link to the file. This
happened when the -j switch was not used and the same link was
found following two paths where one included a junction point
that pointed to the other path. When following the directory
trees fdf did not check if the two paths followed actually were
the same. With this fix, fdf no longer deletes the last link to
a file when running with the -c switch.
- Release 0.1.3 of strarc.
With the new switch -r is now possible to include the registry
database files of a running Windows system in a backup. This
makes it much easier to create a complete backup of a running
system. For more information read the strarc.txt file in the zip
file. The default buffer size is now changed from 512 KB to 2
MB. After some benchmark tests I have realized that 512 KB was
not an optimal size for speed, but of course for memory usage.
It is still possible to specify on the command line a smaller or
bigger buffer size than the default.
- Added a new device driver called Zero And Random Device Driver. It creates two
device objects called \\.\zero
and \\.\random that
works like /dev/zero and /dev/random in *nix environments. This
makes it possible to create a file filled with zeros using dd, example: dd if=\\.\zero of=zerofile
- Added some new features to devioctl.
It is now possible to query disk geometry and partition length
- Added a new check box in winlogoncfg.
It is now possible to enable/disable the requirement of pressing
Ctrl+Alt+Delete to log on to Windows.
- Rewrote some CRT stuff again and rebuilt most of the programs.
The change made many of the larger exe files smaller and some of
the smaller files got slightly bigger but in many other ways
more optimized for speed and memory usage. I also corrected the
way Windows error messages are displayed in console applications
so that line breaks now works correctly.
Minor update 15 May 2005
- Added a new feature to fdf.
It is now possible to skip certain bytes at the beginning of
each file when comparing their contents. This is good if you
e.g. want to search your mp3 archive and find similar files
where only the header is different.
- Rebuilt some "Windows NT only" tools as fixed
(non-relocatable) exe files. This saved some file size.
Minor update 11 May 2005
- Fixed a problem in strarc.
The problem occurred when restoring hard links to files with
read-only attribute set.
Update 19 Apr 2005
- Found and fixed a small memory leak in strarc and fdf when the utilities
created new hard links to files.
- Rewrote some CRT stuff and rebuilt some of the programs. The
change made some of the exe files smaller and in other ways more
optimized, nothing else.
- Added some new switches to the movent tool.
- Added some better error reporting in logonwrap.
Update 10 Apr 2005
- Release 0.1.2b of strarc.
I have received reports about an error in strarc that causes
hard links not to be restored in some directories and I have
only been able to reproduce the error on Windows NT 4.0. I have
changed the restore code so that the hard link restore code now
uses the NtSetInformationFile() API directly and does not use
BackupWrite() API at all and that seems to have corrected the
error. I also made a correction so that an error message is
displayed when hard links cannot be restored and files are
copied instead, unless of course hard link restore is disabled
by command line parameters.
Update 18 Mar 2005
- Release 0.1.2 of strarc
with some new features, e.g. an extract option that only
freshening existing files.
- Added winlogoncfg.
Update 25 Jan 2005
- Fixed a bug in the CRT library that could cause exception when
no command line parameters were sent from some shells. Rebuilt
most of the files here.
- Release 0.1.1b of strarc
with some new features.
- Finally got some time to rebuild the old regrepl and fsplitw tools so that they
linked with my CRT library. The size of regrepl.exe is now 15 360
bytes instead of 396,288 bytes as it was with the old
Borland CRT. I added some new features to regrepl too, like
connecting to remote computers and selecting subkeys.
- Added enumproto and
Update 21 Jan 2005
- Fixed some bugs in the CRT library and rebuilt most of the
- Release 0.0.7 of strarc
with lots of new features and a strarc.txt with usage description and
Update 2 Dec 2004
- Fixed some minor bugs in different applications and libraries,
especially one in the CRT library that caused Unicode
applications to crash on Win 9x/ME platforms.
- One of my archive/backup tools from the old Windows NT
3.51/4.0 days is now released on this page as open source under
the name strarc,
"Stream Archiver". This will replace the old xcopynt which was
unable to completely backup all meta data on NTFS volumes. I now
stop development except bugfixes for xcopynt and recommend all
users of xcopynt to use strarc instead.
- Added some new features to fdf.
- Added a small tool called junc
that is used to manage junction points. This one creates
junctions to native paths,
such as \Device\Floppy0\ or \??\C:\Directory and may therefore
be used to create junctions to volumes or directories not
available through a drive letter under Win32.
- Added a small tool called psmod
to this list.
Update 28 Sept 2004
- Added link to RegMagik
- Added a port of bzip2 optimized for Pentium 4 processors.
- Added a new utility called logonwrap
used to run an application and automatically log off the user
session when that application terminates.
- Also added some new features to fdf and fileinfo.
Update 18 Sept 2004
- Fixed some bugs in fdf.
with updated unicode CRT library.
- Changed free space and total space report in sizdir32 and it now also
displays used percentage of total space and displays statistics
for the correct volume when the current directory is under a
- Added fileinfo to
- Added a new utility called fdf,
"find duplicate files".
- Also corrected OEM codepage display of filenames on the
console for many of my console based tools.
- Rebuilt some other programs due to minor corrections in my
Click to recommend this site:
Back to Tools and utilities for Windows