Я пытаюсь получить канал с помощью Windows API. До сих пор я пытался использовать wlan_intf_opcode_channel_number с функцией WlanQueryInterface.
Я не слишком уверен, что означает ответ в этой ветке, и надеялся, что кто-нибудь сможет уточнить.
ULONG channel = 0;
DWORD dwSizeChannel = sizeof(channel);
dwResult = WlanQueryInterface(
hClient,
InterfaceGuid,
wlan_intf_opcode_channel_number,
NULL,
&dwSizeChannel,
(PVOID*)&channel,
NULL);
Я не уверен, что делать после здесь. Любая помощь будет оценена!
После проверки я обнаружил, что всегда получаю то же значение, что и канал, до вызова WlanQueryInterface
Я опробовал WlanQueryInterface со входами из документации:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms706765(v=vs.85).aspx
Когда запрос, основанный на «wlan_intf_opcode_channel_number», был запущен, я получил данные как «13». И частота может быть определена как 2472 МГц из информации WLAN, предоставленной по следующей ссылке в Википедии:
https://en.wikipedia.org/wiki/List_of_WLAN_channels
Надеюсь это поможет.
МС документы для кода операции, кажется, неправильно. Если вы попробуете что-то подобное здесь:
ULONG * канал = NULL; DWORD dwSizeChannel = sizeof (* канал); DWORD rc = WlanQueryInterface ( hClient, InterfaceGuid, wlan_intf_opcode_channel_number, НОЛЬ, dwSizeChannel, канал, NULL); if (rc == ERROR_SUCCESS канал) { printf ("Канал:% lu \ n", * канал): WlanFreeMemory (канал); }
Я получаю ожидаемое
Канал: 5
.
То же самое касается wlan_intf_opcode_current_operation_mode и, возможно, другие операционные коды, которые просто ULONG.