ImDisk Virtual Disk   Driver
Latest version 1.5.7 built   30 July 2012
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, typeimdisk 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 ofimdisk.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.
An   additional driver, awealloc, in this install package supports memory allocation   beyond 4 GB limit on 32 bit Windows through address window extension,   AWE.
The   ImDisk driver supports forwarding I/O requests to third-party image file format   handlers or to services on other computers on the network. This makes it   possible to boot a machine with NTFS partitions with a 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 with a faulty NTFS   partition. This way you can recover information and even run chkdsk on drives on   machines where Windows does not boot. There are also instructions about how to   use devio under Windows on Claus   Valca's blog.
- Download     screenshot - 43.5   KB
- Download ImDisk install package - 313.5 KB, works on both 32-bit and 64-bit versions of Windows.
- Download devio tool for FreeBSD - 79.8 KB.
- Download devio tool for Windows - 21.5 KB.
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 4.0, Windows 2000, Windows XP, Windows Server 2003,   Windows Vista, Windows Server 2008 and Windows 7 and on both 32-bit and 64-bit   versions.
The   install package now automatically starts the driver at end of setup
This   means that no additional actions should be required before using ImDisk, even on   Windows Vista, Windows Server 2008 and Windows 7 with UAC turned on.
64   bit compatibility
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 and .NET/COM API library, is   available as a 7-zip compressed file here (163.6 KB).   The Windows driver, command line tool and Control Panel applet parts of the   source code can be built in the Windows 2000 build environment in the latest WDK   and the *nix parts can be built with for example gcc. .NET components are built   in Visual Studio 2010, you can use Visual Basic Express 2010 if you want to view   and modify the source code in a free version of Visual Studio.
API
API   functions are available for C/C++, COM and .NET clients. 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. Read inc\imdisk.h in source archive for   documentation about C/C++ usage. If you would like information about how to   write compatible server-end software in C/C++ you can take a look at the I/O   packet structures in inc\imdproxy.h.
A   class library DLL for COM and .NET developers is available as a separate wrapper   DLL. You can download that DLL   here or an archive including the actual   DLL along with import libraries and registry files for COM usage here. Look   here for on-line documentation about .NET   API. There are also, as usual, xml files with method/parameter descriptions   available to each assembly file.
License
I   have received some e-mails with questions whether 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.
Frequently   asked questions
Answers   to frequently asked questions are collected here.
Questions?
There   is a sub-forum at Reboot.pro for discussions about ImDisk Virtual   Disk Driver and other tools published here.
Known   bugs and problems
There   have been some reports about filesystem problems and possible loss of data with   ImDisk memory backed virtual disks that are very large, about 1 GB or larger.   Hopefully these problems are solved now with a few bugfixes included in 1.4.1   version.
Zero and Random device driver - updated 30 July   2012
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   automatic load when Windows starts up. The driver can be uninstalled using   Add/Remove programs applet in the Control Panel.
- Download the install package - 104.8 KB. Works on both 32-bit and 64-bit versions of Windows.
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 this driver 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 this   driver is available as a 7-zip compressed file here (3.0 KB).   The source code can be built in the Windows 2000 build environment in the latest   WDK.
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.
- bzip2.zip - 29.5 KB - compiled 2007-02-27 - The     very space efficient bzip2 compression utility with huffman/deflate     algorithms. This port is from the XMILL     project. The binary here is optimized for Pentium 4 processors but will     run on other x86 processors as well and is linked with the minwcrt library so     the exe file is smaller and does not require msvcrt.dll like many other Win32     ports of the GNU version does.
- calldll.zip - 2.4 KB 32-bit / calldll64.zip - 4.0 KB 64-bit - compiled 2012-02-14     - Calls a function in a dll file. The function must use the stdcall calling     convention and accept only one single parameter, a pointer to a character     string as or a NULL pointer. If you e.g. want to connect to a network printer     from a batch file you can write: "calldll winspool.drv AddPrinterConnectionA     \\server\printerq". The ZIP file also contains calldllw.exe which is exactly     the same except that it passes a unicode string instead of ansi. That version     can only be used in Windows NT/2000/XP/2003.
- chsize32.zip - 2.7 KB - compiled 2011-06-18 - Changes file size of existing file or creates a new file with specified size.
- copyacls.zip - 1.8 KB - compiled 2009-12-07 - Copies access lists (permissions and ownership) from one file or directory to a list of others.
- cut.zip - 6.0 KB - compiled 2007-02-27 - My Win32 port of the BSD cut utility. This version is a much smaller exe file than e.g. K M Syring's Win32 port of the GNU cut utility. Additionally, because this version does not require msvcrt.dll it will run without additional files even on very old versions of Windows NT.
- devioctl.zip - 4.5 KB - compiled 2012-09-22 - Command line interface to the basic disk device functions of DeviceIoControl() API. Used to unmount a filesystem, load or eject e.g. a CD. Requires Windows NT/2000/XP/2003.
- dosdev.zip - 2.8 KB - compiled 2009-12-07 - Command line interface to the DefineDosDevice() and QueryDosDevice() API functions. Defines, redefines and prints information about the emulated DOS devices in Windows NT. Very useful if you want to use any object in Windows NT object namespace from ordinary Win32 applications. (In Windows 95/98/ME this utility is equivalent to the SUBST command.)
- enumproto.zip - 2.4 KB - compiled 2007-03-19 -     Utility to display and optionally remove installed Winsock LSP modules Layered Service Providers. Today many     spyware/adware/malware install LSP modules to capture network traffic and send     statistics to some company. After removing such spyware Winsock APIs may fail     for all applications because there are registry references to LSP modules that     no longer exists. In Windows XP SP2 you can reset LSP chain using the     command netsh winsock reset but with earlier versions it was     almost impossible without reinstalling the TCP/IP protocol, as described     in KB892350 or KB817571. The enumproto simplifies the procedure of removing     LSP modules from the chain and can run on Windows 95 (with Winsock 2.x), 98,     ME, NT 4.0, 2000, XP and Server 2003.
- enumps.zip - 2.9 KB 32-bit / enumps64.zip - 5.0 KB 64-bit - compiled 2012-02-14     - Utility to display names of running processes, which dll modules are loaded     into different processes and numbers and owner processes of running threads.     Requires Windows 95/98/ME/2000/XP/2003. It does not work on Windows NT 4.0 or     earlier, use psmod instead to enumerate loaded dll files     or the pslist tool by SysInternals to enumerate     running processes.
- exelist.zip - 5.2 KB 32-bit / exelist64.zip - 6.4 KB 64-bit - compiled 2012-02-14 - Displays information about exe files (and dll and other executable formats loadable in Windows). The utility reads the version resource linked into the exe files and also displays which executable format the image is.
- fdf.zip - 9.8 KB 32-bit / fdf64.zip - 10.5 KB 64-bit - compiled 2012-02-14 - Utility to search for duplicate files and optionally delete or hard link them to save disk space.
- fileinfo.zip - 2.8 KB - compiled 2010-04-13 - Displays information about file attributes, creation, modification and last access time, index serials (posix i-node number and sequence number) and number of hard links.
- finger.zip - 2.2 KB - compiled 2007-03-19 - Finger service client. The source also compiles fine on most *nix like systems.
- getcp.zip - 1.2 KB - compiled 2007-02-27 - Includes getacp.exe and getoemcp.exe. Returns the ANSI codepage number or the OEM codepage number respectively. Useful in batch files where you want to use chcp command to set the codepage to one of the system default.
- geteltorito.zip - 2.2 KB - compiled 2009-12-07 -     Utility to extract an El Torito default boot image from an ISO CD/DVD image.     Useful if you for example want to create a bootable Windows installation CD     with an integrated Service Pack and you want it to boot with the El Torito     image from the original CD.
- gethost.zip - 1.4 KB - compiled 2009-12-07 - Displays host name and IP address for the local host or specified host name or IP address. This utility uses the gethost*() functions so it displays exactly what response other applications get when they ask e.g. for the IP address of a given host name.
- getkey.zip - 1021 bytes - compiled 2007-02-27 - Waits for a keystroke, converts it to upper case and returns the ascii value for that key. Useful in batch files where you want the user to press a key to select something.
- joindomain.zip - 1.4 KB - compiled 2009-12-07 - Join a computer to a domain from the command line. Requires Windows 2000/XP/2003.
- junc.zip - 2.7 KB - compiled 2009-12-07 -     Creates/displays/deletes junctions of empty NTFS directories to another NTFS     directory given a native path, possibly on another volume. Works on Windows     2000/XP/2003.
- killwin.zip - 5.9 KB - compiled 2009-12-07 - The kill.exe, enumwin.exe and showwin.exe utilities used to find, manipulate, close or destroy windows on the current desktop. Useful to kill hung applications by giving window title. kill.exe can also force application to terminate within a given number of seconds by first trying to close the application's window and then if it has not terminated within the given time it terminates the process.
- movent.zip - 2.2 KB - compiled 2009-12-07 - Command line interface to the MoveFileEx() API function. Moves files, possibly delay the actual move until next reboot if you want. Can be used to rename or remove files not movable while the system is running. Reduced functionality when run in Windows 95/98/ME, does not run under Win32s in Windows 3.x.
- popdump.zip - 4.8 KB - compiled 2011-06-18 - Retrieves all e-mail messages from a POP3 mailbox and dumps them as eml files. The eml files can be opened in e.g. Outlook Express.
- popman.zip - 5.1 KB - compiled 2011-06-18 - Useful to list messages in a POP mailbox and delete a message you don't want to receive directly on the server. Useful e.g. if you have a low bandwidth connection and can't receive the e-mail you want just because there is a really big e-mail first at the server...
- psmod.zip - 2.7 KB 32-bit / psmod64.zip - 3.2 KB 64-bit - compiled 2012-02-14     - Utility to display which dll modules are loaded into different processes.     Requires Windows NT 4.0 or 2000/XP/2003. On Windows NT 4.0 the psapi package     is required, if you don't have it, i.e. the program complains about psapi.dll,     you can get it here.     For Windows 95/98/ME platforms, use the enumps tool instead.
- rawcopy.zip - 7.9 KB 32-bit / rawcopy64.zip - 8.1 KB 64-bit - compiled 2012-02-14     - Reads and writes files and devices. (Cannot read/write disk devices in     Windows 95/98/ME or Win32s.) For example useful to write a floppy image file     on a hard disk to a physical floppy in Windows NT. (This can also be done by     using various Win32 ports of the *nix dd program. But unlike my rawcopy, they     usually do not unmount/lock physical devices or partitions during the     read/write which makes them quite dangerous to use if anything else is using     the device meanwhile...) From version 1.2.1 it can also create sparse output     files with a new -s command line switch. Version 1.3.0 supports differential     copying.
- reptxt32.zip - 4.4 KB - compiled 2010-11-09 - Replaces a text string in any file. Can e.g. be used to change a text string in binary files or make the same text string change in a number of files at a time.
- setprio.zip - 3.3 KB - compiled 2009-12-07 - Displays information about and optionally changes the priority class for a given process id. (Same function as the priority change option in Task Manager, but this is a command line tool that works in Windows 95/98/ME too.) This program does nothing when run in Win32s on Windows 3.x (because there is no process and thread scheduler in Windows 3.x).
- shortren.zip - 2.0 KB 32-bit / shortren64.zip - 2.2 KB 64-bit - compiled 2012-02-14 - Changes the short filename (MS-DOS compatible 8.3) alias of a file or directory with a long name or a name with characters not allowed in MS-DOS filenames. Requires Windows XP, Server 2003 or later.
- sizdir32.zip - 7.7 KB - compiled 2010-02-16 - Lists all files in a given size interval in current directory and all subdirectories and then displays how much disk space the files use and how much they would use if the allocation block size where changed.
- strarc.zip - 25.2 KB 32-bit / strarc64.zip - 26.9 KB 64-bit - compiled 2012-02-14 - A console backup/archive tool for Windows NT/2000/XP/2003/Vista/2008/7. It uses the same backup methods as the ntbackup or robocopy programs and thus backs up all information and meta data on an NTFS volume. The main difference is that strarc is free and open source and produces stream archives you can store on tapes, disks or anywhere else or it can create the archive stream to stdout so that it can be compressed easily using stream compression tools like gzipor bzip2. The command line switches and parameters are quite similar to the *nix tar utility and it can easily be used to clone an entire NTFS volume including everything, files, directories, their time stamps, attributes and security information, compression attribute, alternate data streams, junctions, hard links etc. With this new 0.1.3 release it is even possible to backup the registry database files of a running Windows system. An information file called strarc.txt describing usage and including how-to:s and other documentation is included in this zip file. The documentation is also available here.
- swapadd.zip - 2.4 KB 32-bit / swapadd64.zip - 2.4 KB 64-bit - compiled 2012-02-14     - Adds a swap file on a running Windows system or displays usage of current     swap files.
- tickcount.zip - 1.6 KB - compiled 2009-12-07 - Displays information about how long time the system has been up. (Weeks, days, hours, minutes, seconds and milliseconds.)
- txtcnv32.zip - 2.9 KB - compiled 2012-02-15 - Converts text files or text streams from ANSI codepage to OEM codepage or vice versa. It is also possible to specify codepages to convert from and to, or to convert from or to 16-bit Unicode (UTF16) from or to a specific codepage.
- w32ver.zip - 2.1 KB - compiled 2007-02-27 - Displays the current version number, build number and service pack level for the current Win32 environment. w32verc.exe displays the information in the console window and w32ver.exe displays it in a dialog box making it compatible with Win32s on Windows 3.x.
- whois.zip - 14.9 KB - compiled 2011-06-18 - My     Win32 port of the GNU whois client. Automatically directs the query to the     right whois server by using tables and following redirections. Now updated to     support the new .eu domains.
- xcopynt.zip - 3.7 KB - compiled 2009-12-07 -     Copies a complete directory tree to another location. This tools copies files,     directories (even empty ones), all attributes, extended attributes, time     stamps, security information including access permissions (except in some     cases owner and auditing information). Requires Windows NT 4.0, Windows 2000,     XP or Server 2003. The Windows NT 4.0 version of xcopy.exe did not have all     this functionality. Note! The development of this tool has now     come to an end. It has several limitations, especially under newer Windows     versions (it lacks correct support for hard links, compression attribute,     junction points, etc) and it does not work at all under Windows NT version     prior to 4.0. I recommend all users of this tool to use the new strarc instead. If you previously typed xcopynt d:\dir\ you may now use strarc and type strarc -c | strarc -x -d:d:\dir\ instead.
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.
- enumwinw.zip - 10.4 KB - compiled 2007-05-13 - Like the utilities in killwin.zip above, but this one is a graphical interface tool to view information about windows and other graphical objects on the current desktop and possibly show, hide, minimize or close them if you want. This tool requires Windows NT 4.0 Service Pack 3 or later or Windows 95 or later. It is written in Visual Basic 6 so if it does not work you probably don't have the VB run-time environment installed. You can get it here.
- fsplitw.zip - 6.8 KB - compiled 2007-03-19 - Splits a big file into smaller part files of specified size. Useful to split a large file to many floppies or CD:s. The file parts can be restored to the large file again using the copy /b command at the command line, like copy /b part1+part2+part3 bigfile.
- gethostw.zip - 1.6 KB - compiled 2009-12-07 - Like gethost.zip above, but displays the information in a dialog box instead, making it compatible with Win32s on Windows 3.x (or good if you don't like the console anyway...).
- logonwrap.zip - 1.5 KB - compiled 2009-12-07 - Runs     the application specified on command line and waits for it to terminate and     then logs out the user session. Particularly useful on Terminal Servers in     cases where you want only one single application to run when user logs on and     make sure the session is closed properly when that application is     terminated.
- logout.zip - 1.9 KB - compiled 2009-12-07 - Command line interface for the ExitWindowsEx() API function. Useful to log out the current user or shutdown or restart the system in the way you want.
- regrepl.zip - 6.8 KB 32-bit / regrepl64.zip - 9.2 KB 64-bit - compiled 2012-01-14 - Registry Replace Tool. This program is useful if you have missed a "replace all"-function in the Registry Editor. The new version also supports remote operation on other computers on the network and selecting subkey where the search and replace should start. It supports replacing Ansi and Unicode texts in REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ and REG_BINARY type registry values. Download screenshot here (9.4 KB).
- synctime.zip - 2.8 KB - compiled 2009-12-07 - Synchronizes the local computer's time with the nist.gov time servers.
- tickcntw.zip - 1.4 KB - compiled 2009-12-07 - Displays a dialog box with information about how long the system has been up. (Weeks, days, hours, minutes, seconds and milliseconds.)
- w32ver.zip - 2.1 KB - compiled 2007-02-27 - Displays the current version number, build number and service pack level for the current Win32 environment. w32verc.exe displays the information in the console window and w32ver.exe displays it in a dialog box making it compatible with Win32s on Windows 3.x.
- winlogoncfg.zip - 18.7 KB 32-bit / winlogoncfg64.zip - 19.5 KB 64-bit - compiled     2012-01-14 - A small utility to view and change settings for the Winlogon     process. This includes settings up auto     logon feature, logon dialog options and settings for Windows File Protection. Operates on local     and remote computers. Requires Windows NT, 2000, XP or Server 2003. A help     file with some how-to instructions is included. Download     screenshot here (21.3 KB).
These applications have recently been rebuilt in Visual Basic 2010. 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 Microsoft's website.
- checksum.zip - 7.2 KB - compiled 2012-08-27 - A small utility to calculate MD5, SHA1 and RIPEMD160 checksums for file contents. Output is formatted in a way compatible with the GNU md5sum and sha1sum tools.
- coordtool.zip - 11.8 KB - compiled 2012-01-15 - Utility to convert between various coordinate systems and calculate distances between points etc.
- netcheck.zip - 11.2 KB - compiled 2012-02-15 - Displays assembly references (direct dependencies) for .NET assemblies. Includes netcheck20.exe for .NET 2.0/3.0/3.5 assemblies and netcheck40.exe for .NET 4.0 assemblies.
.NET tools with graphical user   interface
These   applications have recently been rebuilt in Visual Basic 2010. 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 Microsoft's website.
- GraphViewer - published 2011-04-30 - A math     application to view graphs of functions. It can also calculate and draw     derivative and anti-derivative graphs. The graphs can also be saved to a file     or printed on paper. Download     screenshot here (22.6 KB). This is an updated version that uses .NET     compiler instead of ScriptControl object which should gain     performance.
- ODBC Dataviewer - published 2007-03-25 - A small utility to make ODBC connections and send SQL queries. It shows the returned data in an updateable DataGridView so it can be used to edit data through any ODBC-compatible database connection.
 
0 件のコメント:
コメントを投稿