WiFiCx メッセージ構造

WiFiCx コマンド メッセージは、前の WDI モデル コマンドに基づいています。

All Wi-Fi command messages must start with a WDI_MESSAGE_HEADER structure. コマンド ヘッダーの後に、0 個以上の type-length-value (TLV) 構造体が続きます。

ホストから Wi-Fi デバイスに送信されるメッセージに対して定義されているコマンド メッセージ ID は、 WiFiCx タスク OIDWiFiCx プロパティ OIDおよび WiFiCx 状態表示に記載されています。

TLVs

TLV の構造は、次の表で定義されています。 TLV のデータは、リトル エンディアン バイト順です。

Field タイプ Description
タイプ UINT16 TLV 構造体の型。 認識できない TLV 型は、エラーをトリガーせずにスキップする必要があります。
Value バッファーの長さ UINT16 値バッファーのサイズ (バイト単位)。
Value BYTE[*] ペイロード バッファー。構造体、構造体の一覧、またはその他の TLV を含む場合があります。 TLV に予想以上のデータがある場合は、エラーをトリガーせずに追加のデータをスキップする必要があります。

TLV グループには、静的サイズの TLV リストとマルチ TLV グループの 2 種類があります。

静的サイズの TLV リスト

静的サイズの TLV リストには、静的にサイズが設定された複数のメンバーが含まれています。 これらは、標準の C スタイルの配列に似ています。

In this example, WDI_TLV_UNICAST_ALGORITHM_LIST is defined as a list of WDI_ALGO_PAIRS.

Type: WDI_TLV_UNICAST_ALGORITHM_LIST

Length: N * sizeof(WDI_ALGO_PAIRS)

Value: WDI_ALGO_PAIRS[N]

この使用法は、配列表記の TLV リファレンス トピックで指定されています。

Multi-TLV groups

特定のオブジェクトのサイズが事前に不明な場合は、複数の TLV グループが使用されます。 この使用パターンは、特定のバッファー内で N 個の可変サイズの TLV が必要であることを指定します。 エントリの数 (N) は事前に不明であり、指定されたバッファー内の一致する TLV の数によって推論されます。

In this example, the parent buffer is a WDI_MESSAGE_HEADER, which defines the end of the TLV buffer. Note that WDI_TLV_BSS_ENTRY may be interspersed between other different TLV types in the parent buffer.

Offset Field タイプ
0 WDI_MESSAGE_HEADER Message header
sizeof(WDI_MESSAGE_HEADER) TLV₀ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₀ + L₀ + sizeof(TLV ヘッダー) TLV₁ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₁ + L₁ + sizeof(TLV ヘッダー) TLV₂ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₂ + L₂ + sizeof(TLV ヘッダー) TLV₃ (OTHER_TLV_TYPE) その他の TLV 型
TLV₃ + L₃ + sizeof(TLV ヘッダー) TLV₄ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY

他の TLV を含む TLV の場合、TLV リファレンス トピックには 複数の TLV インスタンスが許可されている列があります 。 この列をオンにすると、指定した TLV を複数回表示できます。 For an example of this, see WDI_TLV_CONNECT_PARAMETERS.