A+ Certification / Beginners

win.com and vmm32

The win.com file can be called through autoexec.bat or from the command line. When called through autoexec.bat, you will be able to pass switches to win.com in order to disable certain features. win.com immediately turns control over to vmm32 (Virtual Memory Manager), which proceeds to load the Windows 9x Graphical User Interface (GUI). vmm32 starts by changing the memory model that is being used, and gives the OS direct access to all physical memory above 1MB, while still supporting any real-mode components that were loaded below 1MB. vmm32 then scans the system Registry and attempts to load any devices that are listed in there. One driver that will be listed in the Registry is vmm32.vxd.

During setup, all required drivers are merged into a single file named vmm32.vxd. If additional drivers are required or loaded after setup, then they are stored in the C:\windows\system\vmm32 directory. If setup is reexecuted later, then these files are merged into vmm32.vxd. Due to this handling of vmm32.vxd, it is a file that is specific to each workstation.

After vmm32 loads vmm32.vxd and the other drivers listed in the Registry, it then attempts to load any devices that are listed in the [386enh] section of system.ini. Once all of the hardware devices have been identified, vmm32 places the processor into Protected-Mode and loads the OS Kernel (krnl386.exe and kernel32.dll), followed by gdi.exe, gdi32.dll, user.exe, and user32.dll. Then system resources and fonts are initialized. The last step is to check the win.ini file to see if there are any additional settings that should be enforced on the system, and what the shell application is supposed to be. Table below examines each of these components.

Components Used When Loading Windows 9x
RegistryA registry is a place to record information. For example, at a university you can find out what students are attending which classes by consulting the Registrar's Office. The same is true with Windows 9x and Windows XP-based OSes. The Registry is used to store information that is used by other components on the system. In Windows 9x, the Registry is composed of two OS files: user.dat and system.dat. It is used by vmm32 to identify devices that are supposed to be loaded or initialized on the system. Settings for each device are also located in the Registry. Great care must be taken when editing the Registry.
system.inisystem.ini contains loading information for all real-mode devices. In most cases, you will find that this includes your mouse and video drivers.
kernel32.dllkernel32.dll is the core set of code that makes up the Windows 9x operating system. It takes over from vmm32 for managing the system. It schedules and manages all other processes or applications that are running on the system.
krnl386.exeThis component exists on the system for backward compatibility with older Windows 3.x programs that want to pass calls to krnl386.exe. Any calls that are passed to krnl386.exe are redirected to kernel32.dll.
gdi.exeThis is the 16-bit component that is responsible for handling the Graphic Device Interface. If there are graphics (such as windows) that must be presented on the screen or on a printer, then this is the component that is responsible for it.
gdi32.dllThis is the 32-bit version of gdi.exe. Functionality is not duplicated in these two GDI components; rather, some features are implemented in one or the other. Both components accept all of the component calls, but may pass the request to the other component. A program is able to call on a component using a 32-bit GDI call. If that feature is actually in gdi.exe, then gdi32.dll will pass the call to gdi.exe and process the response. This allows a programmer to program to one interface, regardless of where Microsoft actually stored the components.
user.exeThis is the 16-bit component that is responsible for user input. Most of the functionality of the user interface components is located in user.exe.
user32.dllThis is the 32-bit version of user.exe. Since most of the functionality has been implemented in user.exe, user32.dll passes most of its calls over to user.exe.
Resources and fontsSystem resources are reserved for most of the main system components. Fonts actually make up an integral part of the OS, so they are assigned system resources at this point, along with some other components.
win.ini valueswin.ini stores information on a number of shell-related settings. Some shell settings are stored in the Registry, but for compatibility with older applications, some of these settings are also found in win.ini.

Loading the shell

At this part in the boot process, Windows 9x will load the shell application. This part of the boot process is virtually identical to the loading of the shell for Windows XP, so you can refer back to the end of the Windows XP boot process to see what happens when the shell is loaded.

[Previous] [Contents] [Next]