MINIPORT_WDI_RX_GET_MPDUS回调函数 (dot11wdi.h)
重要
本主题是 Windows 10 中发布的 WDI 驱动程序模型的一部分。 WDI 驱动程序模型处于维护模式,仅会收到高优先级修补程序。 WiFiCx 是 Windows 11 中发布的 Wi-Fi 驱动程序模型。 建议使用 WiFiCx 来利用最新功能。
MiniportWdiRxGetMpdus 处理程序函数返回 NET_BUFFER_LIST 链。 每个NET_BUFFER_LIST表示一个 MPDU。
这是 NDIS_MINIPORT_WDI_DATA_HANDLERS 中的 WDI 微型端口处理程序。
语法
MINIPORT_WDI_RX_GET_MPDUS MiniportWdiRxGetMpdus;
void MiniportWdiRxGetMpdus(
[in] TAL_TXRX_HANDLE MiniportTalTxRxContext,
[in] WDI_PEER_ID PeerId,
[in] WDI_EXTENDED_TID ExTid,
[out] PNET_BUFFER_LIST *ppNBL
)
{...}
参数
[in] MiniportTalTxRxContext
MiniportWdiTalTxRxInitialize 中 IHV 微型端口返回的 TAL 设备句柄。
[in] PeerId
对等 ID。
[in] ExTid
扩展的 TID。
[out] ppNBL
指向从 IHV 微型端口指向 NET_BUFFER_LIST 链的指针的指针。
返回值
无
备注
例如,如果 PeerId 和 ExTid 不是通配符 (PeerId 不等于 0xFFFF,ExTid 不等于 31) ,则链中的所有 MPD 都具有相同的对等 ID,在这种情况下 (,TID 是有效的 802.11 TID) 。
每个 NET_BUFFER_LIST 指向 NET_BUFFER 结构。 每个NET_BUFFER结构表示一个 MSDU。
如果 MPDU 具有作为有效负载的 MSDU 片段,并且碎片整理未卸载到目标/TAL (,或者) 启用了主机实现的 FIPS 模式,则相应的NET_BUFFER_LIST具有一个描述 MSDU 片段的NET_BUFFER。
每个NET_BUFFER的数据偏移量必须设置为 MAC 标头的开头。
示例
若要定义 MiniportWdiRxGetMpdus 函数,必须首先提供一个函数声明来标识要定义的函数类型。 Windows 为驱动程序提供一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析、 静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是编写 Windows 操作系统驱动程序的要求。
例如,若要定义名为“MyRxGetMpdus”的 MiniportWdiRxGetMpdus 函数,请使用 MINIPORT_WDI_RX_GET_MPDUS 类型,如以下代码示例所示:
MINIPORT_WDI_RX_GET_MPDUS MyRxGetMpdus;
然后,按如下所示实现函数:
_Use_decl_annotations_
VOID
MyRxGetMpdus(
TAL_TXRX_HANDLE MiniportTalTxRxContext,
WDI_PEER_ID PeerId,
WDI_EXTENDED_TID ExTid,
PNET_BUFFER_LIST *ppNBL
)
{...}
MINIPORT_WDI_RX_GET_MPDUS函数类型在 dot11wdi.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中MINIPORT_WDI_RX_GET_MPDUS函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
最低受支持的服务器 | Windows Server 2016 |
目标平台 | Windows |
标头 | dot11wdi.h |