Device Installation Types
Windows defines two types of device installations: those that occur on the "server side" and those that occur on the "client side". Because they do not require user intervention by an administrator, server-side installations are more desirable than client-side installations.
Server-side Installations
A server-side installation is a device installation that can be handled entirely by the system's user-mode and kernel-mode PnP Manager components. A server-side installation can occur only if:
- The device can be detected by a bus driver, which then must notify the PnP Manager.
- The PnP Manager can find an INF file containing a hardware ID that matches that of the device.
- The device's INF file and drivers are signed (see WHQL Digital Signatures ).
- SetupAPI can locate all of the device's drivers without prompting the user for media locations. (This means the drivers are included "in-box" with the operating system, a vendor-supplied driver was previously installed, or vendor-supplied driver files have been "preinstalled" so SetupAPI can locate them during the actual installation (see Pre-installing Driver Files).
- The device's class installer and co-installers do not display property pages at the end of the installation operation.
- The device's INF file has not marked the device as requiring an interactive installation (by specifying InteractiveInstall in an INF ControlFlags section).
- RunOnce registry entries consist only of calls to rundll32.exe.
Server-side installations do not display any user interface and do not require an administrator to be logged on. (The term "server-side" is used because installation can be accomplished by the system's PnP Manager without a user-mode "client" making calls into the PnP Manager.)
Client-side Installations
A client-side installation is a device installation that requires communication with a user. A client-side installation occurs if any of the following are true:
- The PnP Manager cannot find an INF file containing a hardware ID that matches that of the device.
- The PnP Manager cannot locate all the required driver files.
- The device's INF or driver files are not signed.
- SetupAPI has to display any form of user interface, such as prompting the user for media locations.
- A class installer or co-installer displays property pages at the end of the installation operation.
- The device, bus, or bus driver does not support Plug and Play.
Client-side installations require use of installation "client" software, such as the Add Hardware wizard, the New Device DLL, or a vendor-supplied device installation application. This client software installs the device by making calls to SetupAPI, which in turn calls the PnP Manager when necessary. (The PnP Manager is considered to be the installation operation's "server side.")