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.