WiFiCx メッセージ構造

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

すべての Wi-Fi コマンド メッセージは、必ず WDI_MESSAGE_HEADER 構造体で始まります。 コマンド ヘッダーの後に、0 個以上の type-length-value (TLV) 構造体が続きます。

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

TLV

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

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

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

静的なサイズの TLV リスト

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

この例では、WDI_TLV_UNICAST_ALGORITHM_LIST は WDI_ALGO_PAIRS のリストとして定義されています。

: WDI_TLV_UNICAST_ALGORITHM_LIST

長さ: N * sizeof(WDI_ALGO_PAIRS)

: WDI_ALGO_PAIRS[N]

この使用法は、配列表記を含む TLV 参照トピックに示されています。

マルチ TLV グループ

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

この例では、親バッファーは、TLV バッファーの末尾を定義する WDI_MESSAGE_HEADER です。 WDI_TLV_BSS_ENTRYは、親バッファー内の他の異なる TLV の型間に散在する可能性があります。

オフセット フィールド Type
0 WDI_MESSAGE_HEADER メッセージ ヘッダー
sizeof(WDI_MESSAGE_HEADER) TLV₀ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₀ + L₀ + sizeof(TLV Header) TLV₁ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₁ + L₁ + sizeof(TLV Header) TLV₂ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₂ + L₂ + sizeof(TLV Header) TLV₃ (OTHER_TLV_TYPE) TLV のその他の型
TLV₃ + L₃ + sizeof(TLV Header) TLV₄ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY

他の TLV を含む TLV の場合、TLV 参照トピックに、複数の TLV インスタンスを許可列があります。 この列がチェックされている場合は、指定された TLV が複数回出現することが許されます。 この例については、「WDI_TLV_CONNECT_PARAMETERS」を参照してください。