NDIS_WDI_RX_INORDER_DATA_IND回调函数 (dot11wdi.h)

重要

本主题是 Windows 10 中发布的 WDI 驱动程序模型 的一部分。 WDI 驱动程序模型处于维护模式,并且仅接收高优先级修复。 WiFiCx 是在 Windows 11 中发布的 Wi-Fi 驱动程序模型。 建议使用 WiFiCx 来利用最新功能。

NdisWdiRxInorderDataIndication 回调函数通知 RxMgr,指定 RX 帧列表的顺序正确。

这是 NDIS_WDI_DATA_API内的回调。

语法

NDIS_WDI_RX_INORDER_DATA_IND NdisWdiRxInorderDataInd;

void NdisWdiRxInorderDataInd(
  [in]  NDIS_HANDLE NdisMiniportDataPathHandle,
  [in]  WDI_RX_INDICATION_LEVEL IndicationLevel,
  [in]  WDI_PEER_ID PeerId,
  [in]  WDI_EXTENDED_TID ExTid,
  [in]  PNDIS_RECEIVE_THROTTLE_PARAMETERS pRxThrottleParams,
  [out] NDIS_STATUS *pWifiStatus
)
{...}

参数

[in] NdisMiniportDataPathHandle

NdisMiniportDataPathHandle 传递到 MiniportWdiTalTxRxInitialize中的 IHV 微型端口。

[in] IndicationLevel

一个指定 RX 指示级别的 WDI_RX_INDICATION_LEVEL 枚举值。

[in] PeerId

对等 ID。

[in] ExTid

扩展 TID。

[in] pRxThrottleParams

指向 NDIS_RECEIVE_THROTTLE_PARAMETERS 结构的指针。

[out] pWifiStatus

NdisWdiRxInorderDataIndication的 WDI 状态。 有关详细信息,请参阅 备注 部分。

返回值

没有

言论

如果此指示是 DPC 的 NdisWdiRxInorderDataIndication 的第一个数据指示,则 RxEngine 使用WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC。 后续数据指示使用WDI_RX_INDICATION_DISPATCH_GENERAL。 如果指示处于被动级别,则 RxEngine 必须使用WDI_RX_INDICATION_PASSIVE。 MiniportWdiRxResume 上下文中做出的指示必须使用WDI_RX_INDICATION_FROM_RX_RESUME_FRAMES。 此参数提供限制 DPC 生存期所需的 RxMgr 信息。

WDI_RX_INDICATION_FLAG_RESOURCES可以与其他枚举值一起按位 ORed,从而导致 RxMgr 在数据指示上设置NDIS_RECEIVE_FLAG_RESOURCES标志。

RxMgr 发出 MiniportWdiRxGetMpdus 请求来拉取收到的数据。

如果目标无法进行 RX 帧分类,并且对来自不同 PeerID/TID 对的 RX 帧使用单独的指示,则 PeerID 将设置为通配符(0xFFFF),TID 设置为WDI_EXT_TID_UNKNOWN。

如果目标/TAL 完全负责重新排序缓冲区管理,它还会执行所有放弃作。 不需要 MPDU 状态。

PNDIS_RECEIVE_THROTTLE_PARAMETERS指向 ReceiveThrottleParameters,这是 NDIS 为注册到 NDIS 的中断传递的。 这只需要为WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPC设置。 所有其他数据指示应传递 NULL,因为忽略此参数。

如果 RxMgr 将WDI_STATUS设置为成功,RxEngine 可以在同一 DPC 的上下文中创建更多数据指示。 如果 RxMgr 将WDI_STATUS设置为暂停,则在 RxMgr 发出 MiniportWdiRxResume 并且应尽快退出调度级别之前,RxEngine 不得创建数据指示。

RxEngine 可以选择如何在暂停时处理传入数据。 如果可能,它应只缓冲数据。 删除数据也是可以接受的。

RxMgr 根据PNDIS_RECEIVE_THROTTLE_PARAMETERS中指定的限制跟踪向 NDIS 指示的帧数。 RxMgr 还跟踪调度所用的时间。 达到限制后,RxMgr 将返回NDIS_STATUS_PAUSED。 在 RxMgr 调用 miniportWdiRxResume 之前,RxEngine 应尽快返回/退出 DPC,并且不得指示任何其他 NET_BUFFER_LIST 结构(通过NdisWdiRxInorderDataIndication)。 提供给 RxMgr 的任何 NET_BUFFER_LIST 结构(通过 MiniportWdiRxGetMpdus),但尚未指示在不同的上下文中为 NDIS,以避免在 DPC 上花费太多时间。 一旦清除了积压工作,RxMgr 通过调用 MiniportWdiRxResume取消暂停 RxEngine。

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
目标平台 窗户
标头 dot11wdi.h

另请参阅

MiniportWdiRxGetMpdus

MiniportWdiRxResume

NDIS_RECEIVE_THROTTLE_PARAMETERS

NDIS_WDI_DATA_API

NET_BUFFER_LIST

WDI RX 路径

WDI_EXTENDED_TID

WDI_PEER_ID

WDI_RX_INDICATION_LEVEL