Network Class Installer

Network components are installed by the network class installer. A class installer is a dynamic-link library (DLL) that installs, configures, or removes devices of a particular class in the system. If the network class installer does not provide all the features that a vendor requires, a vendor can customize the installation process by writing a device co-installer. Each network component must have an information (INF) file that the network class installer uses to install the component.

A vendor supplies one or more drivers for the device, which typically consists of a driver image (.sys) file and a driver library (.dll) file. A vendor may also supply an optional driver catalog file. A vendor gets a digital signature by submitting its driver package to the Windows Hardware Quality Lab (WHQL) for testing and signing. WHQL returns the package with a catalog (.cat) file. The vendor must list the catalog file in the INF file for the device.

A software component, such as a network protocol, client, or service, can have a notify object. A notify object can display a user interface, notify the component of binding events so that the component can exercise some control over the binding process, and conditionally install or remove software components.A network adapter cannot have a notify object. It can have co-installers.

The hw-id (also known as the device, hardware, or component ID) for a network adapter must match the hardware ID supplied by the adapter to the PnP manager. The hw-id for a network software component should consist of a provider name, followed by an underscore, and a manufacturer name or the product name

Each DDInstall section in a network INF file must have a Characteristics entry one or more of the following values:

Hex value Name Description
0x1 NCF_VIRTUAL Component is a virtual adapter. The device is not on a physical bus, such as the PCI bus or USB, but is on the root bus.
0x2 NCF_SOFTWARE_ENUMERATED Component is a software-enumerated adapter.
0x4 NCF_PHYSICAL Component is a physical adapter that the driver communicates with directly (for example, through the PCI bus) or indirectly (for example, through USB).
0x8 NCF_HIDDEN Component should not be shown in any user interface.
0x10 NCF_NO_SERVICE Component does not have an associated service (device driver).
0x20 NCF_NOT_USER_REMOVABLE Component cannot be removed by the user (for example, through Control Panel or Device Manager).
0x40 NCF_MULTIPORT_INSTANCED_ADAPTER Component has multiple ports, each of which is installed as a separate device. Each port has its own hw-id (component ID) and can be individually installed. This is applicable only to EISA adapters. Windows XP and later operating systems do not support EISA adapters.
0x80 NCF_HAS_UI Component supports a user interface (for example, the Advanced Page or a custom properties sheet).
0x400 NCF_FILTER Component is a filter.
0x4000 NCF_NDIS_PROTOCOL Component requires the unload event that is provided by the binding engine to the NetTrans device setup class (typically used by filter Intermediate drivers which use the NetService device setup class).