OID_GEN_CURRENT_PACKET_FILTER

作为查询,OID_GEN_CURRENT_PACKET_FILTER OID 报告从微型端口驱动程序接收指示中的净数据包的类型。

作为一个集,OID_GEN_CURRENT_PACKET_FILTER OID 指定协议从微型端口驱动程序接收指示的净数据包的类型。

版本信息

Windows Vista 和更高版本的 Windows
支持。

NDIS 6.0 及更高版本的微型端口驱动程序
命令的。 (请参阅“备注”部分)

NDIS 5.1 微型端口驱动程序
命令的。

Windows XP
支持。

NDIS 5.1 微型端口驱动程序
命令的。

言论

对于 NDIS 6.0 及更高版本的微型端口驱动程序,不会请求查询,并且该集是必需的。 NDIS 处理微型端口驱动程序的查询。 微型端口驱动程序在初始化期间报告数据包筛选器信息。

微型端口驱动程序将其中等类型报告为系统为其提供筛选器库的类型。 数据包筛选器使用 OR作来非独占合并以下类型:

NDIS_PACKET_TYPE_DIRECTED
定向数据包。 定向数据包包含等于 NIC 的工作站地址的目标地址。

NDIS_PACKET_TYPE_MULTICAST
多播地址列表中发送到地址的多播地址数据包。

协议驱动程序可以通过指定多播或功能地址数据包类型来接收以太网(802.3)多播数据包。 设置多播地址列表或功能地址确定 NIC 驱动程序启用的多播地址组。

NDIS_PACKET_TYPE_ALL_MULTICAST
所有多播地址数据包,而不仅仅是多播地址列表中枚举的数据包。

NDIS_PACKET_TYPE_BROADCAST
广播数据包。

NDIS_PACKET_TYPE_PROMISCUOUS
指定所有数据包,无论是否启用 VLAN 筛选,以及 VLAN 标识符是否匹配。

NDIS_PACKET_TYPE_ALL_FUNCTIONAL
所有功能地址数据包,而不仅仅是当前功能地址中的数据包。

NDIS_PACKET_TYPE_ALL_LOCAL
由已安装的协议发送的所有数据包以及 NIC 指示的所有数据包,由给定的 NdisBindingHandle 标识。

NDIS_PACKET_TYPE_FUNCTIONAL
发送到当前功能地址中包含的地址的功能地址数据包。

NDIS_PACKET_TYPE_GROUP
发送到当前组地址的数据包。

NDIS_PACKET_TYPE_MAC_FRAME
令牌环 NIC 接收的 NIC 驱动程序帧。

NDIS_PACKET_TYPE_SMT
FDDI NIC 接收的 SMT 数据包。

NDIS_PACKET_TYPE_SOURCE_ROUTING
所有源路由数据包。 如果协议驱动程序设置此位,NDIS 库将尝试充当源路由桥。

对于媒体类型为 NdisMedium802_3NdisMedium802_5的微型端口适配器,NDIS 在调用 NdisOpenAdapterEx 函数时禁用数据包接收以及多播和功能地址。

对于具有所有其他媒体类型的微型端口适配器,协议驱动程序可以在 NdisOpenAdapterEx 调用期间随时开始接收数据包。 请注意,协议甚至可以在 NdisOpenAdapterEx 返回之前接收数据包。 通常,数据包筛选是尽最大努力的,即使数据包筛选器为零,协议驱动程序也必须准备好处理接收指示。

对于查询,NDIS 返回使用 OR 运算符组合的绑定筛选器。

对于集,指定的数据包筛选器将替换绑定的上一个数据包筛选器。 如果微型端口驱动程序以前启用了数据包类型,但协议驱动程序未在新筛选器中指定该类型,则协议驱动程序将不会接收此类型的数据包。

对于媒体类型为 NdisMedium802_3NdisMedium802_5的微型端口适配器,如果微型端口驱动程序未为此查询设置特定数据包类型的位,协议驱动程序将不会接收该类型的数据包。 因此,协议驱动程序可以通过使用零筛选器调用 NdisOidRequestNdisCoOidRequest 函数来禁用数据包接收。

对于具有所有其他媒体类型的微型端口适配器,NDIS 不会检查数据包类型。 对于这些媒体类型,协议驱动程序无法通过指定零的筛选器来禁用数据包接收。

调用微型端口驱动程序的 MiniportInitializeEx 函数时,微型端口驱动程序的数据包筛选器应设置为零。 当数据包筛选器为零时,将禁用接收指示。 在微型端口驱动程序的 MiniportInitializeEx 函数返回后,协议驱动程序可以将OID_GEN_CURRENT_PACKET_FILTER设置为非零值,从而使微型端口驱动程序能够指示接收的数据包到该协议。

如果使用 NDIS_PACKET_TYPE_PROMISCUOUS 位启用杂交模式,则即使发送网络节点不将其定向到数据包,协议驱动程序仍会继续接收数据包。 然后,NDIS 发送 NIC 接收的所有数据包的协议驱动程序。

设置特定的数据包筛选器不会更改绑定到相同 NIC 的其他协议驱动程序的数据包筛选器。 例如,如果一个绑定协议启用杂交模式,则其他绑定协议驱动程序不会接收未使用自己的数据包筛选器专门请求的数据包。

Native 802.11 数据包筛选器

Native 802.11 微型端口驱动程序必须仅支持以下标准数据包筛选器类型:

  • NDIS_PACKET_TYPE_DIRECTED

  • NDIS_PACKET_TYPE_MULTICAST

  • NDIS_PACKET_TYPE_BROADCAST

  • NDIS_PACKET_TYPE_PROMISCUOUS

启用后,这些标准数据包筛选器仅适用于 802.11 数据包。

此外,Native 802.11 微型端口驱动程序必须支持以下特定于 Native 802.11 媒体的数据包筛选器类型:

NDIS_PACKET_TYPE_802_11_RAW_DATA
802.11 媒体访问控制(MAC)协议数据单元(MPDU)帧,其中包含 802.11 工作站接收的格式中的所有数据。 设置此筛选器后,驱动程序必须指示每个未修改的 MPDU 片段,然后才能指示从 MPDU 片段重新组合的 MAC 服务数据单元(MSDU)数据包。

如果 MPDU 片段已加密,则它不得在指示之前解密该片段。 但是,微型端口驱动程序必须先解密每个 MPDU 片段,然后重新组装并指示 MSDU 数据包。

如果启用,此筛选器类型仅影响其他标准数据包筛选器,例如NDIS_PACKET_TYPE_DIRECTED或NDIS_PACKET_TYPE_BROADCAST。

有关指示原始 802.11 数据包的方法的详细信息,请参阅 指示原始 802.11 数据包

NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT
定向 802.11 管理数据包。 定向数据包包含等于 NIC 的工作站地址的目标地址。

NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT
多播 802.11 管理数据包发送到多播地址列表中的地址。

NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
802.11 工作站接收的所有多播 802.11 管理数据包,无论 802.11 MAC 标头中的目标地址是否位于多播地址列表中。

NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
广播 802.11 工作站收到的 802.11 管理数据包。

NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT
802.11 工作站接收的所有 802.11 管理数据包。

NDIS_PACKET_TYPE_802_11_RAW_MGMT
802.11 MPDU 管理帧,其中包含 802.11 工作站接收的格式中的所有数据。 设置此筛选器后,驱动程序必须指示每个未修改的 MPDU 片段,然后才能指示从 MPDU 片段重新组合的 MAC 管理协议数据单元(MMPDU)数据包。

如果启用,此筛选器类型仅影响其他 802.11 管理数据包筛选器,例如NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT或NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT。

有关指示原始 802.11 管理数据包的方法的详细信息,请参阅 指示原始 802.11 数据包

NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL
定向 802.11 控制数据包。 定向数据包包含等于 NIC 的工作站地址的目标地址。

NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
广播 802.11 接收的 802.11 控制数据包。

NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL
802.11 工作站接收的所有 802.11 控制数据包。

如果微型端口驱动程序在 Native 802.11 网络监视器(NetMon)或可扩展接入点(AP)模式下运行,驱动程序必须通过一组OID_GEN_CURRENT_PACKET_FILTER请求启用以下数据包筛选器。

  • NDIS_PACKET_TYPE_PROMISCUOUS

  • NDIS_PACKET_TYPE_802_11_RAW_DATA

  • NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT

  • NDIS_PACKET_TYPE_802_11_RAW_MGMT

  • NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL

除 NetMon 之外的其他 Native 802.11 模式下运行的微型端口驱动程序不得启用这些数据包筛选器设置,但NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL除外。 未在 NetMon 模式下运行的微型端口驱动程序可以选择通过OID_GEN_CURRENT_PACKET_FILTER集请求启用NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL。

注意 当微型端口驱动程序处于除 NetMon 以外的本机 802.11 模式时,OID_GEN_CURRENT_PACKET_FILTER 如果 OID 数据中启用了任何杂交或原始筛选器设置,驱动程序不得失败设置请求。

有关 NetMon 和 ExtAP作模式的详细信息,请参阅以下主题:

网络监视器作模式

可扩展接入点作模式

要求

页眉

Ntddndis.h (包括 Ndis.h)

另请参阅

MiniportInitializeEx

NdisCoOidRequest

NdisOidRequest

NdisOpenAdapterEx