Get rid of those orphan Virtual Machines.

Due to the persistant bug in Windows 3.x implementation of SHELL VxD, more specifically in its SHELL_PostMessage service, sometimes you might witness the debugger or some special system-level utility reports that the Windows system runs more Virtual Machines than it actually does. If you didn't know or see this before, here is the hundred persent reproduceable experiment for you. In Windows 3.x make sure at least one DOS box window (or icon) is running. Obtain the VM list. If you happen to run kernal debugger such as SoftICE/W, check its VM command, alternatively run REMOVEVM with no parameters. Memorize the number if currently running Virtual Machines. Start the 16-bit MSVC, and build some program from its IDE. After the build has finished, close MSVC. Check the number of VMs again. You should find that this time it's 1 greater than before. As long as the DOS box window or icon is on your desktop, every time you repeate this experiment will add another VM to the list.

All these Virtual Machines are not actually running in any way. They are orphans left in the non-executable state. This can be verified either by checking the VM flags with the debugger, or again by running RemoveVM with no parameters, in which case it will mark such VMs as not executable. While these orphan Virtual Machines don't receive any time slice, they still retain some resources. You can really clean up you system by running RemoveVM with '-r' switch.

RemoveVM's implementation is simple. It is the DOS program linked with the DPMI version of Ringo. As such, it's also a tiny VxD. Therefore, it has an access to the operating system services devoted to destroying Virtual Machines.

download REMOVEVM.ZIP

 

This page has been visited times since Mar-24-1998

Last updated: October 28, 1997.
Copyright @ 1997 Alex Shmidt. All rights reserved.