Bagikan melalui


Struktur pesan WiFiCx

Pesan perintah WiFiCx didasarkan pada perintah model WDI sebelumnya.

Semua pesan perintah Wi-Fi harus dimulai dengan struktur WDI_MESSAGE_HEADER . Header perintah diikuti oleh nol atau lebih struktur type-length-value (TLV).

ID pesan perintah yang ditentukan untuk pesan yang dikirim dari host ke perangkat Wi-Fi didokumenkan dalam OID Tugas WiFiCx, OID Properti WiFiCx, dan indikasi status WiFiCx.

TV

Struktur TLV didefinisikan dalam tabel berikut. Data dalam TLV berada dalam urutan byte little-endian.

Bidang Jenis Deskripsi
Jenis UINT16 Jenis struktur TLV. Jenis TLV yang tidak dikenal harus dilewati tanpa memicu kesalahan.
Panjang buffer Nilai UINT16 Ukuran buffer Nilai dalam byte.
Nilai BYTE[*] Buffer payload, yang mungkin berisi struktur, daftar struktur, atau TLV lainnya. Jika ada lebih banyak data dari yang diharapkan dalam TLV, data tambahan harus dilewati tanpa memicu kesalahan.

Ada dua jenis pengelompokan TLV: daftar TLV berukuran statis, dan grup multi-TLV.

Daftar TLV berukuran statis

Daftar TLV berukuran statis berisi beberapa anggota berukuran statis. Mereka dianalogikan dengan array gaya C standar.

Dalam contoh ini, WDI_TLV_UNICAST_ALGORITHM_LIST didefinisikan sebagai daftar WDI_ALGO_PAIRS.

Jenis: WDI_TLV_UNICAST_ALGORITHM_LIST

Panjang: N * sizeof(WDI_ALGO_PAIRS)

Nilai: WDI_ALGO_PAIRS[N]

Penggunaan ini ditentukan dalam topik referensi TLV dengan notasi array.

Grup Multi-TLV

Ketika ukuran objek tertentu tidak diketahui sebelumnya, grup multi-TLV digunakan. Pola penggunaan ini menentukan bahwa TLV berukuran varian N yang berbeda diharapkan dalam buffer tertentu. Jumlah entri (N) tidak diketahui sebelumnya, dan disimpulkan oleh jumlah TLV yang cocok dalam buffer yang diberikan.

Dalam contoh ini, buffer induk adalah WDI_MESSAGE_HEADER, yang menentukan akhir buffer TLV. Perhatikan bahwa WDI_TLV_BSS_ENTRY mungkin diselingi antara jenis TLV lain yang berbeda di buffer induk.

Offset Bidang Jenis
0 WDI_MESSAGE_HEADER Header pesan
sizeof(WDI_MESSAGE_HEADER) TLV₀ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₀ + L₀ + sizeof(Header TLV) TLV₁ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₁ + L₁ + sizeof(Header TLV) TLV₂ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY
TLV₂ + L₂ + sizeof(Header TLV) TLV₃ (OTHER_TLV_TYPE) Beberapa jenis TLV lainnya
TLV₃ + L₃ + sizeof(Header TLV) TLV₄ (WDI_TLV_BSS_ENTRY) WDI_BSS_ENTRY

Untuk TV yang berisi TLV lain, topik referensi TLV memiliki beberapa kolom yang diizinkan instans TLV . Jika kolom ini dicentang, TLV yang ditentukan diizinkan untuk muncul beberapa kali. Untuk contohnya, lihat WDI_TLV_CONNECT_PARAMETERS.