WiFiCx メッセージ構造
WiFiCx コマンド メッセージは、前の WDI モデル コマンドに基づいています。
すべての Wi-Fi コマンド メッセージは、必ず WDI_MESSAGE_HEADER 構造体で始まります。 コマンド ヘッダーの後に、0 個以上の type-length-value (TLV) 構造体が続きます。
ホストから Wi-Fi デバイスに送信されるメッセージに対して定義されているコマンド メッセージ ID は、WiFiCx タスク OID、WiFiCx プロパティ 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」を参照してください。