A co-installer is a user-mode Win32 DLL that typically writes additional configuration information to the registry, or performs other installation tasks that require information that is not available when an INF is written.
A co-installer might do some or all of the following:
Perform operations before the associated class or device installer is called, after the class or device installer is called, or both, as described in Co-installer Operation.
Provide device property pages, which are displayed by Device Manager so users can modify device parameters.
When called for postprocessing, a co-installer must check the InstallResult member of the COINSTALLER_CONTEXT_DATA structure. If its value is not NO_ERROR, the co-installer must do any necessary clean up operations and return an appropriate value for InstallResult.
Co-installers can sometimes obtain information from the user. Such information might include additional device parameters, or whether the user wants device-specific applications installed. Co-installers can create user interfaces by providing "finish install" pages and device property pages. No other form of user interface is allowed. Windows displays "finish install" pages at the end of the installation (within the Found New Hardware or Hardware Update). Device Manager displays property pages, and allows users with administrator privilege to modify parameters displayed on these pages.