发送操作
执行通过调用 Dot11ExtIhvPerformPostAssociate 启动的关联后操作时,IHV 扩展 DLL 可以通过无线 LAN (WLAN) 适配器发送数据包。 有关关联后操作的详细信息,请参阅 关联后操作。
通常,DLL 使用通过 Dot11ExtSetAuthAlgorithm 启用的算法,将安全数据包发送到接入点 (AP) 进行数据端口身份验证。 IHV 扩展 DLL 在预关联操作期间调用 Dot11ExtSetAuthAlgorithm 。 有关此操作的详细信息,请参阅 预关联操作。
注意 对于 Windows Vista,IHV 扩展 DLL 仅支持基础结构基本服务集 (BSS) 网络。
发送数据包时,IHV 扩展 DLL 必须遵循以下准则。
IHV 扩展 DLL 必须为完整的 802.11 数据包分配内存,包括 802.11 媒体访问控制 (MAC) 标头、LLC 封装 ((如有必要)) 和有效负载数据。
下表描述了 IHV 扩展 DLL 或 WLAN 适配器设置 802.11 MAC 标头中的哪些字段和子字段。
字段名称 子字段名称 由 IHV 扩展 DLL 设置 由 WLAN 适配器设置 帧控件
协议版本
X
帧控件
类型
X
帧控件
子类型
X
帧控件
到 DS
X
帧控件
从 DS
X
帧控件
更多片段
X
帧控件
重试
X
帧控件
Pwr Mgt
X
帧控件
更多数据
X
帧控件
受保护的帧
X
帧控件
订单
X
持续时间/ID
X
地址 1
X
地址 2
X
地址 3
X
序列控件
片段编号
X
序列控件
序列号
X
IHV 扩展 DLL 调用 Dot11ExtSendPacket 函数通过无线 LAN (WLAN) 适配器发送数据包。 DLL 将标识数据包的唯一句柄值传递给函数的 hSendCompletion 参数。 通常,DLL 会将包含数据包的已分配缓冲区的地址传递给 hSendCompletion 参数。 注意 只有单播数据包可以通过调用 Dot11ExtSendPacket 函数发送。
当 WLAN 适配器发送数据包时,操作系统将调用 Dot11ExtIhvSendPacketCompletion 函数。 操作系统将数据包的句柄值传递给函数的 hSendCompletion 参数。 此句柄值将与 IHV 扩展 DLL 在其调用 Dot11ExtSendPacket 时使用的值相同。
调用 Dot11ExtIhvSendPacketCompletion 时,IHV 扩展 DLL 必须释放它为数据包分配的内存。
注意 在对 Dot11ExtIhvSendPacketCompletion 进行相应的调用之前,IHV 扩展 DLL 不得释放为通过 Dot11ExtSendPacket 发送的数据包分配的资源。