Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Wifi api, Wifi api 
:(
    Опции темы
Alexey68
Дата 4.9.2014, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



Здравствуйте All!
Прошу помощи в решении следующей задачи:
После выполнения функции WlanGetInterfaceCapability, получаю код возврата 0x32, не знаю где посмотреть значение в "удобочитаемом" виде, также интересует правильно ли она выполняется (то есть соблюдены ли все необходимые требования)?
Код

DWORD WINAPI ResultInterface;
DWORD dwResult = 0;
DWORD dwMaxClient = 2;   //
DWORD dwCurVersion = 0;
HANDLE hClientHandle;
WCHAR GuidString[40] = {0};
unsigned long dwError = 0;
int iRet = 0;
int i;

setlocale(LC_ALL,"russian");

PWLAN_INTERFACE_INFO_LIST pIfList = NULL;
PWLAN_INTERFACE_INFO pIfInfo      = NULL;

wprintf(L"Перечисление сетевых интерфейсов в системе\n");
dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClientHandle);
dwResult = WlanEnumInterfaces(hClientHandle, NULL, &pIfList);
wprintf(L"Num Entries: %d\n", pIfList->dwNumberOfItems);
wprintf(L"Current Index: %lu\n", pIfList->dwIndex);

for (i = 0; i < (int) pIfList->dwNumberOfItems; i++) {
            pIfInfo = (WLAN_INTERFACE_INFO *) &pIfList->InterfaceInfo[i];
            wprintf(L"  Индекс интерфейса[%d]:\t %lu\n", i, i);
            iRet = StringFromGUID2(pIfInfo->InterfaceGuid, (LPOLESTR) &GuidString, 39);
            if (iRet == 0)
                wprintf(L"StringFromGUID2 failed\n");
            else
            {
                wprintf(L"  GUID интерфейса[%d]: %s\n",i, GuidString);
            }

}

wprintf(L"  Имя устройства[%d]: %s", i,
                pIfInfo->strInterfaceDescription);
            wprintf(L"\n");

GUID* pGuid = (GUID*)GuidString;
PWLAN_INTERFACE_CAPABILITY pCapability = NULL;

dwError = WlanGetInterfaceCapability(hClientHandle, pGuid, NULL, &pCapability);
if (dwError !=0)
printf("function WlanGetInterfaceCapability. %X\n", dwError);

С уважением Алексей.
PM MAIL   Вверх
Romikgy
Дата 4.9.2014, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(Alexey68 @  4.9.2014,  19:41 Найти цитируемый пост)
получаю код возврата 0x32

Код

#define ERROR_NOT_SUPPORTED 50

WlanGetInterfaceCapability
Цитата

ERROR_NOT_SUPPORTED
This function was called from an unsupported platform. This value will be returned if this function was called from a Windows XP with SP3 or Wireless LAN API for Windows XP with SP2 client.



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexey68
Дата 6.9.2014, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



Цитата(Romikgy @ 4.9.2014,  21:19)
Цитата(Alexey68 @  4.9.2014,  19:41 Найти цитируемый пост)
получаю код возврата 0x32

Код

#define ERROR_NOT_SUPPORTED 50

WlanGetInterfaceCapability
Цитата

ERROR_NOT_SUPPORTED
This function was called from an unsupported platform. This value will be returned if this function was called from a Windows XP with SP3 or Wireless LAN API for Windows XP with SP2 client.

Благодарю, а "расшифровку" кода возврата через GetLastError получили?
PM MAIL   Вверх
feodorv
Дата 6.9.2014, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 10
Всего: 45



Цитата(Alexey68 @  6.9.2014,  14:47 Найти цитируемый пост)
"расшифровку"

Здесь очень бывает полезным справочник smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Alexey68
Дата 7.9.2014, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



Цитата(feodorv @ 6.9.2014,  22:52)
Цитата(Alexey68 @  6.9.2014,  14:47 Найти цитируемый пост)
"расшифровку"

Здесь очень бывает полезным справочник smile

Спасибо, а есть ли локальная версия?
Или через GetLastError получать?
PM MAIL   Вверх
feodorv
Дата 8.9.2014, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 10
Всего: 45



Цитата(Alexey68 @  7.9.2014,  22:52 Найти цитируемый пост)
а есть ли локальная версия?

Можно поставить локальный MSDN, а можно подсмотреть в winerror.h.


Цитата(Alexey68 @  7.9.2014,  22:52 Найти цитируемый пост)
Или через GetLastError получать? 

Через GetLastError можно получить код ошибки (а через FormatMessage - текст ошибки, и даже на русском на русской Windows), но получить имя ошибки (в смысле ERROR_NOT_SUPPORTED) только через справочник...


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Alexey68
Дата 8.9.2014, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



Цитата(feodorv @ 8.9.2014,  00:37)
Цитата(Alexey68 @  7.9.2014,  22:52 Найти цитируемый пост)
а есть ли локальная версия?

Можно поставить локальный MSDN, а можно подсмотреть в winerror.h.


Цитата(Alexey68 @  7.9.2014,  22:52 Найти цитируемый пост)
Или через GetLastError получать? 

Через GetLastError можно получить код ошибки (а через FormatMessage - текст ошибки, и даже на русском на русской Windows), но получить имя ошибки (в смысле ERROR_NOT_SUPPORTED) только через справочник...

Большое спасибо)

Это сообщение отредактировал(а) Alexey68 - 8.9.2014, 15:56
PM MAIL   Вверх
Alexey68
Дата 8.9.2014, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



При выполнении приведённого мной кода (в первом посте) под Win7 получаю код ошибки 0x490 - ERROR_NOT_FOUND (Element not found.), в чём может быть причина? почему функция не записывает данные в структуру PWLAN_INTERFACE_CAPABILITY?

Это сообщение отредактировал(а) Alexey68 - 8.9.2014, 18:22
PM MAIL   Вверх
feodorv
Дата 9.9.2014, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 10
Всего: 45



Цитата(Alexey68 @  4.9.2014,  21:41 Найти цитируемый пост)
GUID* pGuid = (GUID*)GuidString;
dwError = WlanGetInterfaceCapability(hClientHandle, pGuid, NULL, &pCapability);

А зачем Вы строку отправляете в функцию WlanGetInterfaceCapability под видом GUID (вместо pIfInfo->InterfaceGuid)? И почему у Вас код
Цитата(Alexey68 @  4.9.2014,  21:41 Найти цитируемый пост)
wprintf(L"  Имя устройства[%d]: %s", i,
                pIfInfo->strInterfaceDescription);
            wprintf(L"\n");
GUID* pGuid = (GUID*)GuidString;
PWLAN_INTERFACE_CAPABILITY pCapability = NULL;
dwError = WlanGetInterfaceCapability(hClientHandle, pGuid, NULL, &pCapability);
if (dwError !=0)
printf("function WlanGetInterfaceCapability. %X\n", dwError);

находится вне тела цикла
Цитата(Alexey68 @  4.9.2014,  21:41 Найти цитируемый пост)
for (i = 0; i < (int) pIfList->dwNumberOfItems; i++) {

???


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Alexey68
Дата 17.9.2014, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



>>А зачем Вы строку отправляете в функцию WlanGetInterfaceCapability под видом GUID (вместо >>pIfInfo->InterfaceGuid)?
Так:
dwError = WlanGetInterfaceCapability(hClientHandle, pIfInfo->InterfaceGuid, NULL, &pCapability);
выдаёт ошибку:
[BCC32 Error] main.cpp(111): E2034 Cannot convert '_GUID' to 'const _GUID *'
PM MAIL   Вверх
feodorv
Дата 18.9.2014, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 10
Всего: 45



Цитата(Alexey68 @  17.9.2014,  22:27 Найти цитируемый пост)
dwError = WlanGetInterfaceCapability(hClientHandle, &pIfInfo->InterfaceGuid, NULL, &pCapability);




--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Alexey68
Дата 19.9.2014, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Alexey
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.4.2013

Репутация: нет
Всего: нет



feodorv и Romikgy, большое спасибо за помощь!
Что из ниже перечисленного необходимо для отправки пакета через wifi?:
в Native wifi Api функции отправки пакета не обнаружил, начал смотреть в сторону DeviceIoControl, возможно ли через эту функцию осуществить отправку и где посмотреть список управляющих кодов для данной задачи?
В некоторых публикациях используется драйвер NDIS (приём/передача) например тут:
http://www.codeproject.com/Articles/28713/...ion-for-Windows
или
http://www.codeproject.com/Articles/5292/R...-Packet-Sending
какой самый правильный и менее ресурсоёмкий вариант можете посоветовать (если возможно, на русском)? 



Это сообщение отредактировал(а) Alexey68 - 19.9.2014, 20:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1501 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.