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

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

[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。 RxEngine 应尽快返回/退出 DPC,在 RxMgr 调用 MiniportWdiRxResume 之前,不得通过 NdisWdiRxInorderDataIndication) 指示任何其他NET_BUFFER_LIST (结构。 通过 MiniportWdiRxGetMpdus) 提供给 RxMgr (的任何NET_BUFFER_LIST结构,但尚未指示到 NDIS 在不同上下文中,以避免在 DPC 上花费太多时间。 清除积压工作后,RxMgr 通过调用 MiniportWdiRxResume 来取消暂停 RxEngine。

要求

   
最低受支持的客户端 Windows 10
最低受支持的服务器 Windows Server 2016
目标平台 Windows
标头 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