0 out of 3 rated this helpful - Rate this topic

Enumeration Keywords

NDIS 6.0 and later versions of NDIS provide standardized enumeration keywords for miniport drivers of network devices. Enumeration keywords are associated with values that appear as a list in a menu.

The following example shows an INF file definition for an enumeration keyword.


HKR, Ndi\params\<SubkeyName>, ParamDesc, 0, "%<SubkeyName>%"
HKR, Ndi\params\<SubkeyName>, Type, 0, "enum"
HKR, Ndi\params\<SubkeyName>, Default, 0, "3"
HKR, Ndi\params\<SubkeyName>, Optional, 0, "0"
HKR, Ndi\params\<SubkeyName>\enum, "0", 0, "%Disabled%"
HKR, Ndi\params\<SubkeyName>\enum, "1", 0, "%Tx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "2", 0, "%Rx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "3", 0, "%Rx & Tx Enabled%"

The general enumeration keywords are:

*SpeedDuplex

Speed and duplex settings that a devices supports. The device INF file should list only the settings that the associated device supports. That is, for an Ethernet 10/100 device that can support only full-duplex mode, settings for Gigabit or higher speeds or half duplex should not be listed in the associated INF file.

*FlowControl

The ability for the device to enable or disable flow control in the send or receive path.

*PriorityVLANTag

A value that describes whether the device has enabled or disabled the ability to insert the 802.1Q tags for packet priority and virtual LANs (VLANs). This keyword does not describe whether the device enabled or disabled packet prioroty or VLAN tags from a functional perspective. Instead, it describes whether the device inserts 802.1Q tags during a send operation, if 802.1Q tag information is available in the NET_BUFFER_LIST out-of-band (OOB) information, and whether the device copies 802.1Q tags to OOB during receive operations.

Note that you should remove the 802.1Q header from all receive packets regardless of the *PriorityVLANTag setting. If the 802.1Q header is left in a packet, other drivers might not be able to parse the packet correctly.

Note  If the miniport driver supports NDIS quality of service (QoS), it must also read the *QOS keyword value. Based on the *QOS keyword value, the *PriorityVLANTag keyword values are interpreted differently. For more information, see Standardized INF Keywords for NDIS QoS.

*InterruptModeration

A value that describes whether the device enabled or disabled interrupt moderation. Interrupt moderation algorithms are device-dependent. The device manufacturer can use non-standardized keywords to support algorithmic settings. For more information about interrupt moderation, see Interrupt Moderation.

*RSS

A value that describes whether the device enabled or disabled receive-side scaling (RSS). For more information about RSS, see NDIS 6.0 Receive-Side Scaling.

*HeaderDataSplit

A value that describes whether the device enabled or disabled header-data split. For more information about header-data split, see Header-Data Split.

The following keywords are associated with connection offload services:

*TCPConnectionOffloadIPv4

*TCPConnectionOffloadIPv6

For more information about the connection offload keywords, see Using Registry Values to Enable and Disable Connection Offloading.

The following keywords are associated with task offload services:

*IPChecksumOffloadIPv4

*IPChecksumOffloadIPv6

*TCPChecksumOffloadIPv4

*TCPChecksumOffloadIPv6

*UDPChecksumOffloadIPv4

*UDPChecksumOffloadIPv6

*LsoV1IPv4

*LsoV2IPv4

*LsoV2IPv6

*IPsecOffloadV1IPv4

*IPsecOffloadV2

*IPsecOffloadV2IPv4

*TCPUDPChecksumOffloadIPv4

*TCPUDPChecksumOffloadIPv6

For more information about the TCP/IP offload keywords, see Using Registry Values to Enable and Disable Task Offloading.

The columns in the table at the end of this topic describe the following attributes for enumeration keywords:

SubkeyName

The name of the keyword that you must specify in the INF file and that appears in the registry.

ParamDesc

The display text that is associated with SubkeyName.

Value

The enumeration integer value that is associated with each option in the list. This value is stored in NDI\params\ SubkeyName\Value.

EnumDesc

The display text that is associated with each value that appears in the menu.

Default

The default value for the menu.

The following table lists all of the keywords and describes the values that a driver must use for the preceding attributes. For more information about a keyword, search for the keyword in the WDK documentation.

SubkeyNameParamDescValueEnumDesc

*SpeedDuplex

Speed & Duplex

0 (Default)

Auto Negotiation

1

10 Mbps Half Duplex

2

10 Mbps Full Duplex

3

100 Mbps Half Duplex

4

100 Mbps Full Duplex

5

1.0 Gbps Half Duplex

6

1.0 Gbps Full Duplex

7

10 Gbps Full Duplex

*FlowControl

Flow Control

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Rx & Tx Enabled

*PriorityVLANTag

Packet Priority & VLAN

0

Packet Priority & VLAN Disabled

1

Packet Priority Enabled

2

VLAN Enabled

3 (Default)

Packet Priority & VLAN Enabled

*InterruptModeration

Interrupt Moderation

0

Disabled

1 (Default)

Enabled

*RSS

Receive-Side Scaling

0

Disabled

1 (Default)

Enabled

*HeaderDataSplit

Header-Data Split

0

Disabled

1 (Default)

Enabled

*TCPConnectionOffloadIPv4

TCP Connection Offload (IPv4)

0

Disabled

1 (Default)

Enabled

*TCPConnectionOffloadIPv6

TCP Connection Offload (IPv6)

0

Disabled

1 (Default)

Enabled

*IPChecksumOffloadIPv4

IPv4 Checksum Offload

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Rx & Tx Enabled

*TCPChecksumOffloadIPv4

TCP Checksum Offload (IPv4)

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Rx & Tx Enabled

*TCPChecksumOffloadIPv6

TCP Checksum Offload (IPv6)

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Rx & Tx Enabled

*UDPChecksumOffloadIPv4

UDP Checksum Offload (IPv4)

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Rx & Tx Enabled

*UDPChecksumOffloadIPv6

UDP Checksum Offload (IPv6)

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Rx & Tx Enabled

*LsoV1IPv4

Large Send Offload Version 1 (IPv4)

0

Disabled

1 (Default)

Enabled

*LsoV2IPv4

Large Send Offload Version 2 (IPv4)

0

Disabled

1 (Default)

Enabled

*LsoV2IPv6

Large Send Offload Version 2 (IPv6)

0

Disabled

1 (Default)

Enabled

*IPsecOffloadV1IPv4

IPsec Offload Version 1 (IPv4)

0

Disabled

1

Auth Header Enabled

2

ESP Enabled

3 (Default)

Auth Header & ESP Enabled

*IPsecOffloadV2

IPsec Offload

0

Disabled

1

Auth Header Enabled

2

ESP Enabled

3 (Default)

Auth Header & ESP Enabled

*IPsecOffloadV2IPv4

IPsec Offload (IPv4 only)

0

Disabled

1

Auth Header Enabled

2

ESP Enabled

3 (Default)

Auth Header & ESP Enabled

*TCPUDPChecksumOffloadIPv4

TCP/UDP Checksum Offload (IPv4)

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Tx and Rx Enabled

*TCPUDPChecksumOffloadIPv6

TCP/UDP Checksum Offload (IPv6)

0

Disabled

1

Tx Enabled

2

Rx Enabled

3 (Default)

Tx and Rx Enabled

 

 

 

Send comments about this topic to Microsoft

Build date: 4/3/2012

Did you find this helpful?
(1500 characters remaining)