Найти канал с помощью Windows API
Я пытаюсь получить канал с помощью 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
2 ответа
Документы MS для кода операции, кажется, не так. Если вы попробуете что-то подобное здесь:
ULONG * канал = NULL; DWORD dwSizeChannel = sizeof(* канал); DWORD rc = WlanQueryInterface ( hClient, InterfaceGuid, wlan_intf_opcode_channel_number, NULL, &dwSizeChannel, &channel, NULL); if (rc == ERROR_SUCCESS && channel) { printf ("Канал: %lu\n", * канал): WlanFreeMemory (канал); }
Я получаю ожидаемое
Канал: 5,
То же самое касается wlan_intf_opcode_current_operation_mode и, возможно, других оп-кодов, которые просто ULONG.
Я опробовал 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
Надеюсь это поможет.