Posted 21 April 2011 - 05:23 PM
* 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).
(No other changes.)
Posted 08 October 2011 - 06:02 PM
- 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. A completely rewritten MDL handling should also gain performance and provide better compatibility.
- 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.
- 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.
- When upgrading, please note that even if driver files can be updated successfully, Windows does not reload them until you either reboot or manually stop and start them. So, remove all existing virtual disks and type net stop imdisk and net start imdisk after upgrade if you want to reload driver without reboot. Do corresponding with awealloc driver if you use that one as well.
Previous version here: http://www.ltr-data....kinst_1.4.2.exe
-- Release 3.00 of "devio"
- Support for new shared memory communication with ImDisk driver described above.
- Support for loading third party DLL files implementing an API for handling I/O requests. DLL files could either support plain DLL function calls with specific function declaration, or a method in a .NET class library that returns an object of a class that derives from System.IO.Stream. Required API definition is described when you type devio --dll at command prompt. A DLL file called iobridge.dll is needed to support .NET class libraries. This DLL is a C++/CLI that bridges function calls from devio.exe to .NET.
- The above third-party DLL feature has been tested with DiscUtils Library (http://discutils.codeplex.com), a library that provides support for many disk image file formats. This practically adds support for lots of image file formats to ImDisk.
devio --dll=iobridge.dll;dllopen 9000 DiscUtilsStreamer.dll::DiscUtilsStreamer.ClassFactory::OpenDiskStream::C:test.img
...or use a simplified .NET exe called DiscUtilsDevio.exe that does all this conversion in one go:
DiscUtilsDevio /port=9000 /filename=C:test.img
New version is available:
Win32 version: http://www.ltr-data.se/files/devio.exe
(iobridge.dll for use with .NET based third-party libraries: http://www.ltr-data....es/iobridge.dll)
.NET DiscUtils version: http://www.ltr-data....cUtilsDevio.exe and http://www.ltr-data....s/DiscUtils.dll
FreeBSD version: http://www.ltr-data.se/files/devio.bz2 (no support for third-party libraries in this version)
Posted 15 October 2011 - 10:57 AM
- 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. No need to manually set driver to auto-start or start it manually any more.
- 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.
Previous version here: http://www.ltr-data....kinst_1.5.0.exe
-- Release 3.01 of "devio"
- Added checking to see 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.
- Sophia likes this
Posted 17 October 2011 - 07:20 PM
- 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.
Posted 15 November 2011 - 08:53 AM
- 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 modification.
- 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" for reporting a problem related to this.
- .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.
Posted 15 February 2012 - 11:32 AM
- API has been extended with new functions. Read inc\imdisk.h in source archive for documentation about C/C++ usage.
- New SandCastle documentation for .NET API. Documentation for ImDiskNet.dll is here: http://www.ltr-data....4c5c2efd549.htm Documentation for entire ImDisk .NET API library, such as Devio protocol implementation base classes, can be found here: http://www.ltr-data....rary/ImDiskNet/
Posted 15 February 2012 - 08:46 PM
- Control Panel applet: When a new virtual disk is created, it is automatically selected in device list.
Posted 16 February 2012 - 04:22 PM
- 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 does not apply to Windows NT 4.0 and earlier 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.
Posted 30 July 2012 - 07:12 PM
- 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.
- 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.
- 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.
- 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.
Posted 02 November 2012 - 11:39 PM
- 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 thread.
Posted 08 March 2013 - 07:51 PM
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 Explorer.
- 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.
- 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 applet.
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:
http://www.ltr-data....et/ImDiskNet.7z (.NET assemblies)
Comments? Questions? Please start a new thread!
Posted 15 March 2013 - 07:02 PM
Release 0.1.6 of strarc
- Fixed a problem with restoring sparse files. This bug caused data corruption when sparse files were written from archive to disk. The problem occurred during restore operation, so archives created with older versions will be restored correctly with this new version.
Latest 32 bit version: http://www.ltr-data....iles/strarc.zip
Latest 64 bit version: http://www.ltr-data....64/strarc64.zip
Remaining known bugs and limitations are mentioned in the docs: http://www.ltr-data....iles/strarc.txt
Posted 21 March 2013 - 06:30 PM
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.
Latest 32 bit version: http://www.ltr-data....iles/strarc.zip
Latest 64 bit version: http://www.ltr-data....64/strarc64.zip
Posted 28 March 2013 - 06:50 PM
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.
http://www.ltr-data....et/ImDiskNet.7z (.NET assemblies)
Posted 13 May 2013 - 10:05 AM
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.
Posted 27 May 2013 - 07:44 PM
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.
Posted 13 June 2013 - 07:36 PM
Release 1.7.4 of ImDisk Virtual Disk Driver.
Changed notifications when adding or removing drive letters. This is an attempt to avoid problems with "dead" drive letters remaining in Windows Explorer after dismount, or not-appearing new drive letters on mount. Thanks to user "v77" for suggestions.
Changed listview in Control Panel applet so that entire rows get selected instead of just drive letter.
Posted 14 June 2013 - 03:18 PM
Release 1.7.5 of ImDisk Virtual Disk Driver.
Added same device change notifications for 32 bit as for 64 bit version. Tested on Windows NT 3.51 up to Windows 8 and it seems to work as correctly as it possibly can now.
Posted 25 October 2013 - 05:40 PM
Release 1.7.6 of ImDisk Virtual Disk Driver.
API changed so that CreateDevice/Ex and RemoveDevice now handle directory mount points directly. This makes it possible for applications to call just one function for most common mount or dismount tasks. This also indirectly means that DiscUtilsDevio.exe now handle directory mount points as well, which it did not do before.
Uninstall script. Idea via e-mail from "kbh". When ImDisk is uninstalled from Add/Remove programs in Control Panel, it now checks first to see if there are any existing ImDisk virtual disks that need to be dismounted first. Otherwise, it goes on with stopping services and unloading drivers so that uninstall could finish without any need for reboot.
All exe, sys, dll, cpl and similar files are now signed with trusted certificate. Previously, only kernel level modules have been signed.
Correction to shared memory proxy client in ImDisk driver. This component now correctly split I/O requests that are too large for the supplied shared memory buffer.
Decimal numbers are now allowed in disk size / extend size fields in Control Panel applet.
Current 1.7.6: http://www.ltr-data..../imdiskinst.exe
Previous 1.7.5: http://www.ltr-data....kinst_1.7.5.exe
Comments are very welcome as new threads in the forum! Thank you!
- v77 likes this
Posted 31 January 2014 - 12:04 PM
Arsenal Image Mounter - Release 1.0.011.0
- MountTool can now handle disk signature conflicts and shows offline/online state in device list
When a virtual disk is mounted in offline mode because of a disk signature conflict with another disk, virtual or physical, MountTool now automatically displays a warning message. In case the virtual disk is mounted in read/write mode, MountTool asks whether user would like to forcefully online the disk and create a new disk signature.
These disk signature and offline/online state features in MountTool relies on PowerShell 3.0 and therefore requires Windows 8 or Server 2012 or later.
- MountTool is now "self-contained" and comes with Arsenal Image Mounter API libraries and driver setup files embedded.
This means that you simply download and launch the exe file. It will automatically install the driver if needed and use embedded versions of dll files, including DiscUtils.dll. Therefore, you will only need this single exe file to mount raw disk images or virtual machine images like vhd, vhdx, vmdk, vdi etc. This should make it easier to setup and use this tool to see what the driver and user mode library can do.
Download the Mount Tool here: https://github.com/A...ol.exe?raw=true (Tested on XP and Server 2003 up to 8.1 and Server 2012 R2. Requires .NET Framework 4.0.)
The only exception from this is libewf.dll, which for some technical and licensing reasons, need to be downloaded separately. So, to be able to mount ewf/enCase image formats, you need to download libewf.dll, zlib.dll and msvcr100.dll from the same directory: https://github.com/A...aster/MountTool (or from x86 libewf subdirectory if you are running on x86 architecture).
- There is now also a self-extracting archive to just install the driver without user-mode tools or libraries:
https://github.com/A...up.exe?raw=true (Tested on XP and Server 2003 up to 8.1 and Server 2012 R2. Requires .NET Framework 4.0.)
- And also a simple zip archive with just the driver setup files, that it sys, inf and cat files. Primarily intended for integration with other setup packages.
https://github.com/A...es.zip?raw=true (Tested on XP and Server 2003 up to 8.1 and Server 2012 R2. To be called from some other setup package that could use setupapi or similar to install drivers.)
Edited by Olof Lagerkvist, 04 February 2014 - 02:53 PM.
Added info about offline/online features
Posted 08 February 2014 - 03:38 AM
Release 0.2.0d of Stream Archiver, StrArc.
◦ Fixed several problems that caused archive attributes not to be cleared after full or incremental backups.
Posted 13 February 2014 - 01:53 PM
Release 0.2.0e of Stream Archiver, StrArc.
◦ Fixed a problem with include/exclude filter strings specified on command line. Only first specified string was used in versions 0.2.0 - 0.2.0d.
Latest version: http://ltr-data.se/files/strarc.zip (32 bit) or http://ltr-data.se/f...64/strarc64.zip (64 bit)
Posted 17 February 2014 - 07:44 PM
- MountTool previously crashed on start if any disk drive in the system was exclusively locked by another application. This problem has been corrected in this version.
- Driver now supports drives larger than 2 TB. This requires Windows Server 2003 or Windows Vista or later, there is still a 2 TB limit on Windows XP.
- MountTool now shows a "mount options" dialog after image file has been selected. This dialog shows different options depending on what kind of image file is opened.
- A new feature in the driver enables mounting VHD files from Windows Backup that have blank disk signature, even in read-only mode. It is done by reporting a random disk signature when Windows reads MBR data from the disk. This feature is activated from the "mount options" dialog in MountTool, or using an option flag when integrating with the API.
- Driver now supports up to 8 MB transfer size instead of old limit of 64 KB. For compatibility with existing proxy service providers, large I/O requests are automatically split into several smaller requests if proxy service uses smaller buffer size. This could severly degrade performance, so when developing proxy service providers, use at least 8 MB buffer size.
- Some users have experienced extremely bad performance on Windows XP. A possible reason has been identified and corrected. Please report if such problems are still seen!
Self-contained MountTool: https://github.com/A...ol.exe?raw=true
Posted 23 February 2014 - 06:39 PM
Release 0.3.0 of Stream Archiver, StrArc.
- Hard links between read-only files where impoissible to restore. Additionally, another problem caused the application to crash after such hardlink restore failures. Both problems are now corrected.
- A new switch, -s:8, can be used to skip storing short 8.3 names on backup, or to skip restoring such names on restore.
- A new switch, -w:8, can be used to suppress warnings when short 8.3 names cannot be restored during a restore operation.
- A new switch, -o, can be used to start writing at a specified offset. This can be useful to directly write a specific block on hard disk volume, for example.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users