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. |
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). |
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 aDDInstall 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 DDInstallsection should specify the appropriate bus type for that section as follows:
[a1.isa] BusType=1 [a1.pnpisa] BusType=14
EisaCompressedId and AdapterMask
EisaCompressedId and AdapterMask are obsolete for Windows XP and later operating systems. Windows XP and later operating systems do not support EISA NICs.
The DDInstall section of an INF file that installs an EISA network adapter must include an EisaCompressedId entry that specifies both an EISA Compressed ID and an adapter mask for the adapter. The following example illustrates this case:
EisaCompressedId = 0x24322432 AdapterMask = 0xfffff
Port1DeviceNumber and Port1FunctionNumber
The DDInstall section of an INF file that installs a multiport network adapter must include either aPort1DeviceNumber 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 andDial-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. SetPort1DeviceNumber 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.
MaxInstance
MaxInstance is a Windows 98/Me specific directive that limits the number of instances of a network component that a user can install. An example of this directive follows:
MaxInstance=6
When a user adds a network component to their computer, they will receive the following error message if theMaxInstance value is exceeded:
Your system allows only <number> instances of <component>
The <number> field is the number of the components that are installed on the system plus one and <component> is the name of the component that the user installed.
If MaxInstance is exceeded while installing a network adapter, protocols will not be able to bind to that adapter.