Co-installer Functionality
Note
Features described in this section are not supported and driver packages containing them will no longer receive a Microsoft signature. See Using a Universal INF File.
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:
Handle one or more of the device installation function codes (DIF codes) received by the co-installer entry point function.
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.
Starting with Windows Vista, provide finish-install actions (in response to a DIF_FINISHINSTALL_ACTION request) to install applications.
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.