发送操作

 

执行通过调用 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 发送的数据包分配的资源。