公司动态
windows网络适配器驱动开发-WiFiCx 消息结构
WiFiCx 命令消息基于以前的 WDI 模型命令。All Wi-Fi command messages must start with a WDI_MESSAGE_HEADER structure. 命令标头后跟零个或多个类型长度值 TLV 结构。为从主机发送到 Wi-Fi 设备的消息定义的命令消息 ID 记录在 WiFiCx 任务 OID、 WiFiCx 属性 OID 和 WiFiCx 状态指示中。TLVs下表定义了 TLV 的结构。 TLV 中的数据按小字节顺序排列。Field类型Description类型UINT16TLV 结构的类型。 必须跳过无法识别的 TLV 类型而不会触发错误。值缓冲区的长度UINT16值缓冲区的大小以字节为单位。ValueBYTE[*]有效负载缓冲区可能包含结构、结构列表或其他 TLV。 如果 TLV 中的数据超出预期则应跳过其他数据而不会触发错误。有两种类型的 TLV 分组静态大小的 TLV 列表和多 TLV 组。静态大小的 TLV 列表静态大小的 TLV 列表包含多个静态大小的成员。 它们类似于标准 C 样式数组。在本例中WDI_TLV_UNICAST_ALGORITHM_LIST 被定义为 WDI_ALGO_PAIRS 的列表。Type: WDI_TLV_UNICAST_ALGORITHM_LISTLength: N * sizeof(WDI_ALGO_PAIRS)Value: WDI_ALGO_PAIRS[N]此用法在具有数组表示法的 TLV 引用主题中指定。Multi-TLV groups当给定对象的大小提前未知时将使用多 TLV 组。 此使用模式指定给定缓冲区内需要 N 个不同的可变大小的TLV。 条目数N提前未知并按给定缓冲区中匹配的TLV 数推断。在本例中父缓冲区是 WDI_MESSAGE_HEADER它定义了 TLV 缓冲区的结束位置。请注意WDI_TLV_BSS_ENTRY 可以穿插在父缓冲区中的其他不同类型的 TLV 之间。OffsetField类型0WDI_MESSAGE_HEADERMessage headersizeof(WDI_MESSAGE_HEADER)TLV₀ (WDI_TLV_BSS_ENTRY)WDI_BSS_ENTRYTLV₀ L₀ sizeofTLV 标头TLV₁ (WDI_TLV_BSS_ENTRY)WDI_BSS_ENTRYTLV₁ L₁ sizeofTLV 标头TLV₂ (WDI_TLV_BSS_ENTRY)WDI_BSS_ENTRYT LLV sizeofTLV 标头TLV₃ (OTHER_TLV_TYPE)其他一些 TLV 类型TLV₃ L₃ sizeofTLV 标头TLV₄ (WDI_TLV_BSS_ENTRY)WDI_BSS_ENTRY对于包含其他 TLV 的 TLVTLV 参考主题具有允许 的多个 TLV 实例 列。 如果选中此列则允许指定的 TLV 多次显示。将 TLV 生成器/分析器添加到驱动程序若要将 TLV 生成器/分析器添加到驱动程序请执行以下步骤。在 dot11wificxintf.h 和 dot11wificxtypes.hpp 之后添加此内容。#include TlvGeneratorParser.hpp将此库添加到链接器。TLVGeneratorParser.lib定义、创建和编写内存 API重载运算符 new/delete。开始调用 API。