The Device Manager sends requests to the installer whenever it needs the installer to carry out installation tasks, such as determining whether to install a detected device, selecting a device to install, and installing a selected device.
A DIF_SELECTDEVICE request directs the installer to choose a driver for a new device or a new driver for an existing device. The installer either makes the selection, prompts the user to make the selection, or directs the Device Manager to prompt the user (the default action).
A DIF_INSTALLDEVICE request directs the installer to install the given driver. The installer either installs the driver or directs the Device Manager to do it (the default action). In some cases, an installer may carry out pre-processing, such as copying support drivers and prompting for user input, before requesting the default action.
A DIF_PROPERTIES request directs the installer to display the properties sheet for the selected device. The Device Manager send this request when the user presses the "Properties..." button. The installer can display the property sheet or direct the Device Manager to display the default property sheet (the default action).
The Device Manager sends a DIF_REMOVE request to direct the installer to remove the given device. The installer typically removes the corresponding registry entries for the device.
A DIF_FIRSTTIMESETUP request directs the installer to carry out any class-specific installation tasks that need to be complete during initial installation of the operating system. The Device Manager sends this request only when the user installs Windows 95 for the first time.
A DIF_CALCDISKSPACE request directs the installer to calculate the disk space requirements for installing a driver for the given device. By default action, the Device Manager calculates the disk requirements based on the contents of the INF file.
A DIF_DESTROYPRIVATEDATA request directs the installer to free any memory or resources it has allocated and stored in the private data portion of the DEVICE_INFO structure. The Device Manager sends this function just before destroying the structure.
The Device Manager provides a set of requests (DIF_SELECTCLASSDRIVERS, DIF_VALIDATECLASSDRIVERS, AND DIF_INSTALLCLASSDRIVERS) that an installer can use to install a multiple set of drivers instead of a single driver. For example, a network installer may process these requests so that it can install the many different layers of drivers needed to support a network. An installer should process these requests only if it intends to carry out the complete installation on its own.
The DIF_SELECTCLASSDRIVERS request directs the installer to select the driver or drivers to install for the given class; DIF_VALIDATECLASSDRIVERS directs the installer to validate all settings for the given devices; and DIF_INSTALLCLASSDRIVERS directs the installer to install the selected and validated drivers. The default action for these requests is to do nothing.