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 |