Windows 95 loads the IOS when it loads other static system virtual devices from the VMM32.VXD file. To initialize the IOS, Windows 95 sends SYS_CRITICAL_INIT and DEVICE_INIT messages to the IOS's control procedure. The IOS carries out all initialization tasks in response to these messages.
The IOS has a low initialization order value (IOS_INIT_ORDER), so it initializes before clients, such as the PAGEFILE and PAGESWAP virtual devices, and before virtual devices, such as INT13. This means the clients and virtual devices can call services in the IOS to register and carry out tasks.