RSSI с использованием Windows API

0

Я пытаюсь получить RSSI с помощью API окон. До сих пор я нашел этот поток, говорящий, чтобы использовать wlan_intf_opcode_rssi с функцией WlanQueryInterface. Я не слишком уверен в том, что означает ответ на эту тему, и надеялся, что кто-то сможет прояснить ситуацию.

Все, что мне удалось понять из другого потока, это:

WlanQueryInterface(hClient,
   &pInfo->InterfaceGuid,
   wlan_intf_opcode_rssi,
   NULL,
   &connectInfoSize,
   (PVOID*)&pConnectInfo,
   &opCode);

Я не уверен, что делать после этого. Любая помощь будет оценена!

  • 0
    В чем конкретно проблема? Вы получаете код ошибки от WlanQueryInterface ?
Теги:
winapi
rssi
wlan

1 ответ

1
Лучший ответ

Вы передаете неправильный тип аргумента WlanQueryInterface. MSDN говорит, что тип возврата для wlan_intf_opcode_rssi LONG, поэтому вам нужно передать указатель на переменную LONG, например:

LONG rssi = 0;
DWORD dwSizeRssi = sizeof(rssi);
dwResult = WlanQueryInterface(hClient,
    &pIfInfo->InterfaceGuid,
    wlan_intf_opcode_rssi,
    NULL,
    &dwSizeRssi,
    (PVOID *)&rssi,
    &opCode);

if (dwResult == ERROR_SUCCESS)
{
    wprintf(L"RSSI = %u \n", rssi);
}
  • 0
    Спасибо вам большое!
  • 0
    Я знаю, что это было некоторое время, но я использовал ваш код для получения RSSI. Кажется, что я получаю слишком высокие значения (недостаточный?), Например, 984188178. Я попытался заменить ваш спецификатор формата %u на %d или %ld , но проблема остается той же. Возвращаемое значение WlanQueryInterface все еще ERROR_SUCCESS хотя. Вы случайно не знаете? Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню