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
安装的协议发送的所有数据包,以及由给定的 NdisBindingHandle 标识的 NIC 指示的所有数据包

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_3 或 NdisMedium802_5 的微型端口适配器,NDIS 在调用 NdisOpenAdapterEx 函数期间禁用数据包接收以及多播和功能地址。

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

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

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

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

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

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

如果使用 NDIS_PACKET_TYPE_PROMISCUOUS 位启用混合模式,则即使发送网络节点未将其引导到数据包,协议驱动程序也将继续接收数据包。 然后,NDIS 向协议驱动程序发送 NIC 接收的所有数据包。

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

本机 802.11 数据包筛选器

本机 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 片段,然后才能指示 MAC 服务数据单元 (MSDU) 从 MPDU 片段重新组合的数据包。

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

如果启用,此筛选器类型仅影响其他标准数据包筛选器,例如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 片段,然后才能指示 MAC 管理协议数据单元 (MMPDU) 从 MPDU 片段重新组合的数据包。

如果启用,此筛选器类型仅影响其他 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 工作站收到的数据包。

如果微型端口驱动程序在本机 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 模式下运行的小型端口驱动程序可以选择NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL通过设置的 OID_GEN_CURRENT_PACKET_FILTER。

注意 当微型端口驱动程序在除 NetMon 外的其他本机 802.11 模式下并且设置了 OID_GEN_CURRENT_PACKET_FILTER 时,如果在 OID 数据中启用了任何不协调或原始筛选器设置,则驱动程序不得使设置请求失败。

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

网络监视器操作模式

可扩展接入点操作模式

要求

标头

Ntddndis.h (包括 Ndis.h)

请参阅

MiniportInitializeEx

NdisCoOidRequest

NdisOidRequest

NdisOpenAdapterEx