Supplying a Co-Installer
A co-installer is a user-mode Microsoft Win32 DLL. Typically, a co-installer performs installation tasks that require dynamic information that is not available when the INF for its device or device class is written. For example, a co-installer is typically used when the user must supply information for device-specific settings through a property page.
A co-installer can perform installation operations for one particular device or for all the devices in a setup class.
A device co-installer handles custom installation requirements for a specific device or family of devices. For example, a hypothetical xyzcam.dll device co-installer could support all the still-image cameras that are shipped by the Xyz Company.
A class co-installer performs identical actions for every device in its class. For example, a hypothetical image.dll co-installer could support all the possible devices of the imaging class, such as still-image capture devices, digital cameras (including that of the Xyz Company), and scanners.
Microsoft supplies class co-installers for classes that require them; third parties seldom do. Do not supply a class co-installer with your device unless you can guarantee that every device in its setup class requires the actions of your class co-installer.
On the other hand, vendors often supply device co-installers. You should write a device co-installer if you have to display property pages or custom Finish pages during device or driver installation.
If your co-installer displays a custom Finish page or other user interface elements, make sure that those elements comply with the user interface guidelines that are described in the MSDN Library and the Wizard 97 section of the Microsoft Windows SDK.