DDInstall Section in a Network INF File
A DDInstall section in a network INF file is based on the generic INF DDInstall section.
A DDInstall section in a network INF file has the following network-specific entries:
Characteristics
Each DDInstall section in a network INF file must have a Characteristics entry. The Characteristics entry specifies certain characteristics of the network component being installed and may limit the user's actions regarding that component. For example, the Characteristics entry can specify whether the component supports a user interface, whether it can be removed, or whether it is hidden from the user.
The Characteristics entry can have one or more of the following values (multiple values are summed together):
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. This flag is only applicable to drivers which use the Net device setup class. |
0x2 |
NCF_SOFTWARE_ENUMERATED |
Component is a software-enumerated adapter. This flag is only applicable to drivers which use the Net device setup class. |
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). Select this option if the driver supports a physical network interface.¹ This flag is only applicable to drivers which use the Net device setup class. |
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). |
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 Intermediate driver. Filter Intermediate drivers are not supported in Windows 10 or later. |
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). |
0x40000 |
NCF_LW_FILTER |
Component is a lightweight filter driver. This flag is only applicable to drivers which use the NetService device setup class. |
¹When using Windows Server 2012 R2, at least one network interface on the system must be marked with NCF_PHYSICAL in order to be eligible for DHCPv6 client.
The following combinations of Characteristics values are not allowed:
NCF_VIRTUAL, NCF_SOFTWARE_ENUMERATED, and NCF_PHYSICAL are mutually exclusive.
NCF_NO_SERVICE cannot be used with NCF_VIRTUAL, NCF_SOFTWARE_ENUMERATED, or NCF_PHYSICAL. A virtual, software-enumerated, or physical adapter must always have an associated service (device driver).
The following is an example of a Characteristics entry for a physical adapter that supports a user interface:
Characteristics = 0x84; NCF_PHYSICAL, NCF_HAS_UI
BusType
A DDInstall section for a physical network adapter must contain a BusType entry that specifies the type of bus (such as PCI or ISA) on which the adapter can function. The possible values for the BusType entry are specified by the INTERFACE_TYPE enumeration in the NDIS header file (ndis.h) as follows:
BusType Entry | Value |
---|---|
ISA |
1 |
EISA |
2 |
MicroChannel |
3 |
TurboChannel |
4 |
PCIBus |
5 |
VMEbus |
6 |
NuBus |
7 |
PCMCIABus |
8 |
Cbus |
9 |
MPIBus |
10 |
MPSABus |
11 |
PNPISABus |
14 |
PNPBus |
15 |
Note If an adapter can function on more than one type of bus, the INF file that installs that adapter should contain a DDInstall section for each bus type.
For example, if an adapter can function on both the ISA bus and the PnPISA bus, the INF file for that adapter should contain a DDInstall section for ISA and a DDInstall section for PnPISA. The BusType entry in each such DDInstall section should specify the appropriate bus type for that section as follows:
[a1.isa]
BusType=1
[a1.pnpisa]
BusType=14
Port1DeviceNumber and Port1FunctionNumber
The DDInstall section of an INF file that installs a multiport network adapter must include either a Port1DeviceNumber entry or a Port1FunctionNumber entry. Specifying such an entry causes the adapter's port information to be displayed in the Connection Properties dialog box (which is accessed through the Network and Dial-Up Connections folder) when you select the adapter name or icon.
If an adapter's port numbers map sequentially to PCI device numbers, use the Port1DeviceNumber entry. Set Port1DeviceNumber to the first PCI device number in the sequence. For example, if PCI device number 4 maps to port 1, PCI device number 5 maps to port 2, PCI device number 6 maps to port 3, and so forth, use the following entry:
Port1DeviceNumber = 4
If an adapter's port numbers map sequentially to PCI function numbers, use the Port1FunctionNumber entry. Set Port1FunctionNumber to the first PCI function number in the sequence. For example, if PCI function number 2 maps to port 1, PCI function number 3 maps to port 2, PCI function number 4 maps to port 3, and so forth, use the following entry:
Port1FunctionNumber = 2
Note It is assumed that the mapping of PCI device numbers or PCI functions to port numbers is static. It is also assumed that the adapter's ports are numbered sequentially.
The Port1DeviceNumber and Port1FunctionNumber entries are mutually exclusive. If both entries are present in a given DDInstall Section, only the Port1DeviceNumber entry is used.