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 |