NDIS_FILTER_ATTACH_PARAMETERS structure (ndis.h)

The NDIS_FILTER_ATTACH_PARAMETERS structure defines the initialization parameters for the filter module.

Syntax

typedef struct _NDIS_FILTER_ATTACH_PARAMETERS {
  NDIS_OBJECT_HEADER                Header;
  NET_IFINDEX                       IfIndex;
  NET_LUID                          NetLuid;
  PNDIS_STRING                      FilterModuleGuidName;
  NET_IFINDEX                       BaseMiniportIfIndex;
  PNDIS_STRING                      BaseMiniportInstanceName;
  PNDIS_STRING                      BaseMiniportName;
  NDIS_MEDIA_CONNECT_STATE          MediaConnectState;
  NET_IF_MEDIA_DUPLEX_STATE         MediaDuplexState;
  ULONG64                           XmitLinkSpeed;
  ULONG64                           RcvLinkSpeed;
  NDIS_MEDIUM                       MiniportMediaType;
  NDIS_PHYSICAL_MEDIUM              MiniportPhysicalMediaType;
  NDIS_HANDLE                       MiniportMediaSpecificAttributes;
  PNDIS_OFFLOAD                     DefaultOffloadConfiguration;
  USHORT                            MacAddressLength;
  UCHAR                             CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  NET_LUID                          BaseMiniportNetLuid;
  NET_IFINDEX                       LowerIfIndex;
  NET_LUID                          LowerIfNetLuid;
  ULONG                             Flags;
  PNDIS_HD_SPLIT_CURRENT_CONFIG     HDSplitCurrentConfig;
  PNDIS_RECEIVE_FILTER_CAPABILITIES ReceiveFilterCapabilities;
  PDEVICE_OBJECT                    MiniportPhysicalDeviceObject;
  PNDIS_NIC_SWITCH_CAPABILITIES     NicSwitchCapabilities;
  BOOLEAN                           BaseMiniportIfConnectorPresent;
  PNDIS_SRIOV_CAPABILITIES          SriovCapabilities;
  PNDIS_NIC_SWITCH_INFO_ARRAY       NicSwitchArray;
} NDIS_FILTER_ATTACH_PARAMETERS, *PNDIS_FILTER_ATTACH_PARAMETERS;

Members

Header

The NDIS_OBJECT_HEADER structure for the NDIS_FILTER_ATTACH_PARAMETERS structure. NDIS sets the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_FILTER_ATTACH_PARAMETERS.

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

NDIS_FILTER_ATTACH__PARAMETERS_REVISION_4

Added various members for NDIS 6.30.

NDIS sets the Size member to NDIS_SIZEOF_FILTER_ATTACH_PARAMETERS_REVISION_4.

NDIS_FILTER_ATTACH_PARAMETERS_REVISION_3

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

NDIS sets the Size member to NDIS_SIZEOF_FILTER_ATTACH_PARAMETERS_REVISION_3.

NDIS_FILTER_ATTACH_PARAMETERS_REVISION_2

Added the HDSplitCurrentConfig member for NDIS 6.1.

NDIS sets the Size member to NDIS_SIZEOF_FILTER_ATTACH_PARAMETERS_REVISION_2.

NDIS_FILTER_ATTACH_PARAMETERS_REVISION_1

Original version for NDIS 6.0.

NDIS sets the Size member to NDIS_SIZEOF_FILTER_ATTACH_PARAMETERS_REVISION_1.

IfIndex

The NDIS interface index of the filter module that NDIS is attaching to the driver stack.

NetLuid

The NDIS network interface NET_LUID value for the filter module that NDIS is attaching to the driver stack. The NET_LUID is equivalent to the interface name (ifName in RFC 2863 ).

FilterModuleGuidName

The GUID name of the filter module that NDIS is attaching.

BaseMiniportIfIndex

The NDIS network interface index of the base miniport adapter. That is, if there are virtual miniports or filter modules that are installed over a physical miniport adapter, the value of this member is the interface index of the physical miniport adapter or a virtual miniport of the highest-level MUX intermediate driver.

BaseMiniportInstanceName

A pointer to an NDIS_STRING type value that contains a counted Unicode string. This string specifies the friendly name of the interface for the base miniport adapter. For Windows 2000 and later versions, NDIS defines the NDIS_STRING type as a UNICODE_STRING type.

BaseMiniportName

The name of the base miniport adapter.

MediaConnectState

The NET_IF_MEDIA_CONNECT_STATE connection state type.

MediaDuplexState

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

XmitLinkSpeed

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

RcvLinkSpeed

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

MiniportMediaType

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

MiniportPhysicalMediaType

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

MiniportMediaSpecificAttributes

A pointer to an NDIS_OBJECT_HEADER structure that identifies a structure that contains miniport media-specific attributes, or NULL if there are no such attributes. The Type member of the NDIS_OBJECT_HEADER structure identifies the type of the attributes structure. For example, if the underlying miniport adapter's media type is NdisMediumNative802_11, then the Type member should be NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES, and the MiniportMediaSpecificAttributes member points to an NDIS_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES structure.

DefaultOffloadConfiguration

A pointer to an NDIS_OFFLOAD structure which defines task offload attributes. The filter driver should review these attributes to obtain the task offload capabilities of the underlying drivers. The filter driver should modify these attributes, if necessary, to reflect any changes in the task offload support that it requires.

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.

BaseMiniportNetLuid

The NDIS network interface NET_LUID of the base miniport adapter. That is, if there are virtual miniports or filter modules that are installed over a physical miniport adapter, the value of this member is the NET_LUID of the physical miniport adapter or a virtual miniport of the highest-level MUX intermediate driver.

LowerIfIndex

The NDIS network interface index of the interface just below the current filter module. That is, if there are filter modules or NDIS 5. x filter intermediate drivers that are installed over a physical miniport adapter or the highest-level MUX intermediate driver, this member contains the interface index of the filter module interface or filter intermediate driver interface that is just below the current filter module. If there are no filter module or filter intermediate driver interfaces installed over the physical miniport adapter or the highest-level MUX intermediate driver, this member contains the interface index of the underlying physical miniport adapter or the highest-level MUX intermediate driver virtual miniport.

LowerIfNetLuid

The NDIS network interface NET_LUID value of the interface just below the current filter module. That is, if there are filter modules or NDIS 5. x filter intermediate drivers that are installed over a physical miniport adapter or the highest-level MUX intermediate driver, this member contains the network interface NET_LUID of the filter module interface or filter intermediate driver interface that is just below the current filter module. If there are no filter module or filter intermediate driver interfaces installed over the physical miniport adapter or the highest-level MUX intermediate driver, this member contains the network interface NET_LUID of the underlying physical miniport adapter or the highest-level MUX intermediate driver virtual miniport.

Flags

Reserved for future use.

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.

MiniportPhysicalDeviceObject

A pointer to a DEVICE_OBJECT structure. This structure represents the physical device for the underlying miniport adapter.

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.

BaseMiniportIfConnectorPresent

A Boolean value that, if set to TRUE, indicates whether a network interface (if) connector is present on the underlying network adapter. This value should be set to TRUE for a physical adapter.

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.

For more information, see Single Root I/O Virtualization (SR-IOV).

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 be created only if SR-IOV is supported and enabled on the adapter.

Note  Starting with Windows Server 2012, Windows supports only the default NIC switch that is created on the physical function (PF) miniport adapter. Therefore, this array can contain only one element.
 

Remarks

To define filter module attach parameters, NDIS passes a pointer to an NDIS_FILTER_ATTACH_PARAMETERS structure to the FilterAttach function.

Filter drivers should avoid issuing unnecessary OID queries. Instead, use the information in NDIS_FILTER_ATTACH_PARAMETERS, when available, to obtain information about underlying drivers.

Requirements

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

See also

DEVICE_OBJECT

FilterAttach

NDIS_HD_SPLIT_CURRENT_CONFIG

NDIS_MEDIUM

NDIS_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES

NDIS_NIC_SWITCH_CAPABILITIES

NDIS_NIC_SWITCH_INFO_ARRAY

NDIS_OBJECT_HEADER

NDIS_OFFLOAD

NDIS_RECEIVE_FILTER_CAPABILITIES

NDIS_SRIOV_CAPABILITIES

NET_IF_MEDIA_CONNECT_STATE

NET_LUID

OID_802_3_CURRENT_ADDRESS

OID_GEN_LINK_SPEED_EX

OID_GEN_MEDIA_CONNECT_STATUS_EX

OID_GEN_MEDIA_DUPLEX_STATE

OID_GEN_PHYSICAL_MEDIUM

UNICODE_STRING