NDIS_BIND_PARAMETERS structure (ndis.h)

NDIS initializes an NDIS_BIND_PARAMETERS structure with information that defines the characteristics of a binding and passes it to a protocol driver.

Syntax

typedef struct _NDIS_BIND_PARAMETERS {
  NDIS_OBJECT_HEADER                Header;
  PNDIS_STRING                      ProtocolSection;
  PNDIS_STRING                      AdapterName;
  PDEVICE_OBJECT                    PhysicalDeviceObject;
  NDIS_MEDIUM                       MediaType;
  ULONG                             MtuSize;
  ULONG64                           MaxXmitLinkSpeed;
  ULONG64                           XmitLinkSpeed;
  ULONG64                           MaxRcvLinkSpeed;
  ULONG64                           RcvLinkSpeed;
  NDIS_MEDIA_CONNECT_STATE          MediaConnectState;
  NDIS_MEDIA_DUPLEX_STATE           MediaDuplexState;
  ULONG                             LookaheadSize;
  PNDIS_PNP_CAPABILITIES            PowerManagementCapabilities;
  ULONG                             SupportedPacketFilters;
  ULONG                             MaxMulticastListSize;
  USHORT                            MacAddressLength;
  UCHAR                             CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  NDIS_PHYSICAL_MEDIUM              PhysicalMediumType;
  PNDIS_RECEIVE_SCALE_CAPABILITIES  RcvScaleCapabilities;
  NET_LUID                          BoundIfNetluid;
  NET_IFINDEX                       BoundIfIndex;
  NET_LUID                          LowestIfNetluid;
  NET_IFINDEX                       LowestIfIndex;
  NET_IF_ACCESS_TYPE                AccessType;
  NET_IF_DIRECTION_TYPE             DirectionType;
  NET_IF_CONNECTION_TYPE            ConnectionType;
  NET_IFTYPE                        IfType;
  BOOLEAN                           IfConnectorPresent;
  PNDIS_PORT                        ActivePorts;
  ULONG                             DataBackFillSize;
  ULONG                             ContextBackFillSize;
  ULONG                             MacOptions;
  NET_IF_COMPARTMENT_ID             CompartmentId;
  PNDIS_OFFLOAD                     DefaultOffloadConfiguration;
  PNDIS_TCP_CONNECTION_OFFLOAD      TcpConnectionOffloadCapabilities;
  PNDIS_STRING                      BoundAdapterName;
  PNDIS_HD_SPLIT_CURRENT_CONFIG     HDSplitCurrentConfig;
  PNDIS_RECEIVE_FILTER_CAPABILITIES ReceiveFilterCapabilities;
  PNDIS_PM_CAPABILITIES             PowerManagementCapabilitiesEx;
  PNDIS_NIC_SWITCH_CAPABILITIES     NicSwitchCapabilities;
  BOOLEAN                           NDKEnabled;
  PNDIS_NDK_CAPABILITIES            NDKCapabilities;
  PNDIS_SRIOV_CAPABILITIES          SriovCapabilities;
  PNDIS_NIC_SWITCH_INFO_ARRAY       NicSwitchArray;
} NDIS_BIND_PARAMETERS, *PNDIS_BIND_PARAMETERS;

Members

Header

The NDIS_OBJECT_HEADER structure for the NDIS_BIND_PARAMETERS structure. NDIS sets the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_BIND_PARAMETERS.

To indicate the version of the NDIS_BIND_PARAMETERS structure, NDIS sets the Revision member to one of the following values:

NDIS_BIND_PARAMETERS_REVISION_4

Added various members for NDIS 6.30.

NDIS sets the Size member to NDIS_SIZEOF_BIND_PARAMETERS_REVISION_4.

NDIS_BIND_PARAMETERS_REVISION_3

Added the ReceiveFilterCapabilities, PowerManagementCapabilitiesEx, and NicSwitchCapabilities members for NDIS 6.20.

NDIS sets the Size member to NDIS_SIZEOF_BIND_PARAMETERS_REVISION_3.

NDIS_BIND_PARAMETERS_REVISION_2

Added the HDSplitCurrentConfig member for NDIS 6.1.

NDIS sets the Size member to NDIS_SIZEOF_BIND_PARAMETERS_REVISION_2.

NDIS_BIND_PARAMETERS_REVISION_1

Original version for NDIS 6.0.

NDIS sets the Size member to NDIS_SIZEOF_BIND_PARAMETERS_REVISION_1.

ProtocolSection

A pointer to a Unicode string that contains a registry path. The path starts from the protocol driver's service key and continues down the registry hierarchy to the miniport adapter name (for example, Tcpip\Parameters\Adapters\<miniport adapter name>). The miniport adapter name is the name of the bottom-most miniport adapter in the driver stack. If there is a MUX intermediate driver in the stack, the bottom-most miniport adapter is a virtual miniport. Otherwise, the bottom-most miniport adapter is a miniport adapter for a physical device.

The protocol driver can use this registry path to read configuration parameters that are specific to the binding between the driver and the underlying miniport adapter.

AdapterName

A pointer to a Unicode string that contains the name of the underlying miniport adapter to which ProtocolBindAdapterEx should bind.

PhysicalDeviceObject

The physical device object for the underlying miniport adapter.

MediaType

The NdisMediumXxx type that the underlying miniport adapter supports. For more information about NdisMediumXxx types, see NDIS_MEDIUM.

MtuSize

The maximum transfer unit (MTU) size. For more information, see OID_GEN_MAXIMUM_FRAME_SIZE.

MaxXmitLinkSpeed

The maximum transmit link speed of the underlying adapter in bits per second. For more information, see OID_GEN_MAX_LINK_SPEED.

XmitLinkSpeed

The current transmit link speed of the underlying adapter in bits per second. For more information, see OID_GEN_LINK_SPEED_EX.

MaxRcvLinkSpeed

The maximum receive link speed of the underlying adapter in bits per second. For more information, see OID_GEN_MAX_LINK_SPEED.

RcvLinkSpeed

The current receive link speed of the underlying adapter in bits per second. For more information, see OID_GEN_LINK_SPEED_EX.

MediaConnectState

The media connect state for the underlying miniport adapter. For more information, see OID_GEN_MEDIA_CONNECT_STATUS_EX.

MediaDuplexState

The media duplex state for the underlying miniport adapter. For more information, see OID_GEN_MEDIA_DUPLEX_STATE.

LookaheadSize

The lookahead size for the underlying miniport adapter. For more information, see OID_GEN_CURRENT_LOOKAHEAD.

PowerManagementCapabilities

The Plug and Play capabilities of the underlying miniport adapter. For more information, see OID_PNP_CAPABILITIES. NDIS 6.20 and later drivers must use the PowerManagementCapabilitiesEx member instead.

SupportedPacketFilters

A set of flags that identify the types of network packets that the underlying miniport adapter can filter.

MaxMulticastListSize

The multicast address list size for the underlying miniport adapter. For more information, see OID_802_3_MAXIMUM_LIST_SIZE.

MacAddressLength

The MAC address length, in bytes. The MAC address length is specific to the type of media.

CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

The current MAC address. For example, the OID_802_3_CURRENT_ADDRESS OID specifies the current MAC address for IEEE 802.3 drivers.

PhysicalMediumType

The physical medium type for the miniport adapter. For more information, see OID_GEN_PHYSICAL_MEDIUM.

RcvScaleCapabilities

The receive side scaling (RSS) capabilities of the NIC. For more information, see OID_GEN_RECEIVE_SCALE_CAPABILITIES.

BoundIfNetluid

The NDIS NET_LUID value, that is also the network interface name ( ifName in RFC 2863), of the highest level interface that is stacked on the miniport adapter. That is, if there are virtual miniports or filter modules that are installed over the miniport adapter, this is the NET_LUID value of the highest level virtual miniport or filter module.

BoundIfIndex

The NDIS network interface index of the highest level interface that is stacked on the miniport adapter. That is, if there are virtual miniports or filter modules that are installed over the miniport adapter, this is the ifIndex of the highest level virtual miniport or filter module.

LowestIfNetluid

The NDIS NET_LUID value, that is also the network interface name ( ifName in RFC 2863), of the lowest level interface on a binding. That is, the NDIS network interface of the miniport adapter at the bottom of a filter stack.

LowestIfIndex

The NDIS network interface index of lowest level interface on a binding. That is, the NDIS network interface of the miniport adapter at the bottom of a filter stack.

AccessType

A NET_IF_ACCESS_TYPE NDIS network interface access type.

DirectionType

A NET_IF_DIRECTION_TYPE NDIS network interface direction type.

ConnectionType

The NDIS network interface connection type. Use NET_IF_CONNECTION_DEDICATED for a typical Ethernet adapter. The following valuse are valid:

NET_IF_CONNECTION_DEDICATED

Specifies the dedicated connection type. The connection comes up automatically when media sense is TRUE. For example, an Ethernet connection is dedicated.

NET_IF_CONNECTION_PASSIVE

Specifies the passive connection type. The other end must bring up the connection to the local station. For example, the RAS interface is passive.

NET_IF_CONNECTION_DEMAND

Specifies the demand-dial connection type. A demand-dial connection comes up in response to a local action--for example, sending a packet.

IfType

The Internet Assigned Numbers Authority (IANA) interface type. For example, IF_TYPE_ETHERNET_CSMACD (6) is the value for IfType that is assigned to any Ethernet-like interface. For a list if interface types, see NDIS Interface Types.

IfConnectorPresent

A Boolean value that indicates if a connector is present. NDIS sets this value to TRUE if there is a physical adapter.

ActivePorts

To be determined.

DataBackFillSize

The required data backfill size, in bytes, of the underlying driver stack.

ContextBackFillSize

The required context backfill size, in bytes, of the underlying driver stack.

MacOptions

The MAC options for the miniport adapter. For more information, see OID_GEN_MAC_OPTIONS.

CompartmentId

The compartment to which the underlying interface belongs or one of the following values:

NET_IF_COMPARTMENT_ID_UNSPECIFIED

Specifies that the compartment identifier is not used or specified.

NET_IF_COMPARTMENT_ID_PRIMARY

Specifies the default compartment identifier. Third party interface providers must always specify NET_IF_COMPARTMENT_ID_PRIMARY. All other values are reserved for Microsoft internal use.

DefaultOffloadConfiguration

A pointer to an NDIS_OFFLOAD structure. This structure specifies the capabilities for a task-offload-capable miniport adapter. For more information, see OID_TCP_OFFLOAD_CURRENT_CONFIG.

TcpConnectionOffloadCapabilities

A pointer to an NDIS_TCP_CONNECTION_OFFLOAD structure that indicates the current offload capabilities that are provided by the underlying miniport adapter.

BoundAdapterName

A pointer to a Unicode string that contains the name of the highest-level miniport adapter that is stacked on the underlying miniport adapter. That is, if there are filter intermediate driver virtual miniports that are installed over the miniport adapter, this member is the name of the highest-level filter intermediate driver virtual miniport.

HDSplitCurrentConfig

A pointer to an NDIS_HD_SPLIT_CURRENT_CONFIG structure. This structure specifies the current header-data split configuration of the underlying miniport adapter. This value can be NULL if the miniport adapter does not support header-data split.

ReceiveFilterCapabilities

A pointer to an NDIS_RECEIVE_FILTER_CAPABILITIES structure. This structure specifies the generic filtering capabilities that are currently enabled on the underlying miniport adapter. This value can be NULL if the miniport adapter does not support receive filtering.

PowerManagementCapabilitiesEx

A pointer to an NDIS_PM_CAPABILITIES structure. This structure specifies power management capabilities of the miniport adapter. This member is mandatory for NDIS 6.20 and later drivers.

NicSwitchCapabilities

A pointer to an NDIS_NIC_SWITCH_CAPABILITIES structure. This structure specifies the NIC switch capabilities of the underlying miniport adapter. This value can be NULL if the miniport adapter does not support NIC switch features.

NDKEnabled

NDIS sets this value to TRUE if the network direct kernel provider interface (NDKPI) is currently enabled on the underlying miniport adapter.

NDKCapabilities

A pointer to an NDIS_NDK_CAPABILITIES structure. This structure specifies the NDKPI capabilities that are currently enabled on the underlying miniport adapter. This value can be NULL if the miniport adapter does not support NDKPI.

SriovCapabilities

A pointer to an NDIS_SRIOV_CAPABILITIES structure. This structure specifies the single root I/O virtualization (SR-IOV) capabilities that are currently enabled on the underlying miniport adapter. This value can be NULL if the miniport adapter does not support SR-IOV features.

NicSwitchArray

A pointer to an NDIS_NIC_SWITCH_INFO_ARRAY structure. This array enumerates the NIC switches that have been created on the miniport adapter. NIC switches can only be created if SR-IOV is supported and enabled on the adapter.

Note  Starting with Windows Server 2012, Windows supports only the default NIC switch on the miniport adapter. Therefore, this array can contain only one element.
 

Remarks

NDIS passes a pointer to an NDIS_BIND_PARAMETERS structure in the BindParameters parameter of the ProtocolBindAdapterEx function.

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.0 and later.
Header ndis.h (include Ndis.h)

See also

NDIS_HD_SPLIT_CURRENT_CONFIG

NDIS_MEDIUM

NDIS_NIC_SWITCH_CAPABILITIES

NDIS_NIC_SWITCH_INFO_ARRAY

NDIS_OBJECT_HEADER

NDIS_OFFLOAD

NDIS_PM_CAPABILITIES

NDIS_RECEIVE_FILTER_CAPABILITIES

NDIS_SRIOV_CAPABILITIES

NDIS_TCP_CONNECTION_OFFLOAD

NET_IF_ACCESS_TYPE

NET_IF_DIRECTION_TYPE

NET_LUID

OID_802_3_CURRENT_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_802_3_PERMANENT_ADDRESS

OID_GEN_CURRENT_LOOKAHEAD

OID_GEN_LINK_SPEED_EX

OID_GEN_MAC_OPTIONS

OID_GEN_MAXIMUM_FRAME_SIZE

OID_GEN_MAX_LINK_SPEED

OID_GEN_MEDIA_CONNECT_STATUS_EX

OID_GEN_MEDIA_DUPLEX_STATE

OID_GEN_PHYSICAL_MEDIUM

OID_GEN_RECEIVE_SCALE_CAPABILITIES

OID_PNP_CAPABILITIES

OID_TCP_OFFLOAD_CURRENT_CONFIG

ProtocolBindAdapterEx