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(在本例中,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 |
目标平台 | 窗户 |
标头 | dot11wdi.h |