NDIS_FILTER_INTERFACE structure (ndis.h)
The NDIS_FILTER_INTERFACE structure defines the attributes for an NDIS filter.
Syntax
typedef struct _NDIS_FILTER_INTERFACE {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG FilterType;
ULONG FilterRunType;
NET_IFINDEX IfIndex;
NET_LUID NetLuid;
NDIS_STRING FilterClass;
NDIS_STRING FilterInstanceName;
} NDIS_FILTER_INTERFACE, *PNDIS_FILTER_INTERFACE;
Members
Header
The NDIS_OBJECT_HEADER structure for the filter interface structure.
NDIS sets the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_DEFAULT.
If the handle passed to NdisEnumerateFilterModules belongs to an NDIS 6.30 or later object, then NDIS sets Revision to NDIS_FILTER_INTERFACE_REVISION_2 and Size to NDIS_SIZEOF_FILTER_INTERFACE_REVISION_2.
If the handle passed to NdisEnumerateFilterModules belongs to an NDIS 6.20 or earlier object, then NDIS sets Revision to NDIS_FILTER_INTERFACE_REVISION_1 and Size to NDIS_SIZEOF_FILTER_INTERFACE_REVISION_1.
Flags
A bit field that defines the type of NDIS driver that implements the filter. This member must be set to one of the following driver types:
NDIS_FILTER_INTERFACE_IM_FILTER
The filter is implemented in an NDIS 5.1 or earlier filter intermediate driver.
NDIS_FILTER_INTERFACE_LW_FILTER
The filter is implemented in an NDIS 6.0 or later filter driver.
NDIS_FILTER_INTERFACE_SEND_BYPASS
The filter is currently not attached to the send path. This flag is only set if Header.Revision is greater than or equal to NDIS_FILTER_INTERFACE_REVISION_2.
NDIS_FILTER_INTERFACE_RECEIVE_BYPASS
The filter is currently not attached to the receive path. This flag is only set if Header.Revision is greater than or equal to NDIS_FILTER_INTERFACE_REVISION_2.
FilterType
The behavior type for the filter. This type must be one of the following values:
NdisFilterTypeMonitoring = 1
A monitoring filter.
NdisFilterTypeModifying = 2
A modifying filter.
FilterRunType
The runtime attachment priority type for the filter. This type must be one of the following values:
NdisFilterRunTypeMandatory = 1
A mandatory filter. If the filter does not attach to the driver stack, NDIS will tear down the rest of the stack.
NdisFilterRunTypeOptional = 2
An optional filter. If the filter does not attach to the driver stack, NDIS will not tear down the rest of the stack.
IfIndex
The NDIS interface index of the filter module.
NetLuid
The NET_LUID value that is assigned to the filter module. The NET_LUID is equivalent to the interface name (ifName in RFC 2863).
FilterClass
A UNICODE string that specifies the filter class. This string is the same as the FilterClass INF file entry.
FilterInstanceName
The filter instance name.
Remarks
The NdisEnumerateFilterModules function returns one NDIS_FILTER_INTERFACE structure for each filter in the driver stack. The Flags member identifies the filter as an NDIS 5.1 or earlier filter intermediate driver or an NDIS 6.0 or later NDIS filter module.
A light-weight filter may dynamically insert or remove itself from the send or receive path by calling NdisFRestartFilter and providing a NDIS_FILTER_PARTIAL_CHARACTERISTICS structure to NdisSetOptionalHandlers.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.0 and later. |
Header | ndis.h (include Ndis.h) |
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for