Я пытаюсь подключить WlanGetNetworkBssList из настольного приложения C# под Windows 10. Возникли проблемы с правильным получением WLAN_BSS_LIST. Не знаю, в чем проблема, список, который я получаю, неправильный. Первый пункт кажется правильным, но все остальные — нет. Я надеюсь, что кто-то может мне помочь.
Это структуры, которые я использую. я считаю, что проблема заключается в неправильном определении структуры.
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct WLAN_BSS_LIST
{
internal Int32 dwTotalSize;
internal Int32 dwNumberOfItems;
internal WLAN_BSS_ENTRY[] wlanBssEntries;
internal WLAN_BSS_LIST(IntPtr ppWlanBssList)
{
dwTotalSize = (Int32)Marshal.ReadInt32(ppWlanBssList);
dwNumberOfItems = (Int32)Marshal.ReadInt32(ppWlanBssList + 4);
wlanBssEntries = new WLAN_BSS_ENTRY[dwNumberOfItems];
int WLAN_BSS_ENTRY_SIZE = Marshal.SizeOf(typeof(WLAN_BSS_ENTRY));
for (int i = 0; i < dwNumberOfItems; i++)
{
IntPtr pItemList = new IntPtr(ppWlanBssList.ToInt32() + i * Marshal.SizeOf(typeof(WLAN_BSS_ENTRY)) + 8);
wlanBssEntries = (WLAN_BSS_ENTRY)Marshal.PtrToStructure(pItemList, typeof(WLAN_BSS_ENTRY));
}
}
}
public struct WLAN_BSS_ENTRY
{
public DOT11_SSID dot11Ssid;
public ulong uPhyId;
public DOT11_MAC_ADDRESS dot11Bssid;
public DOT11_BSS_TYPE dot11BssType;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public DOT11_PHY_TYPE[] dot11BssPhyType;
public long lRssi;
public ulong uLinkQuality;
public bool bInRegDomain;
public ushort usBeaconPeriod;
public ulong ullTimestamp;
public ulong ullHostTimestamp;
public ushort usCapabilityInformation;
public ulong ulChCenterFrequency;
public WLAN_RATE_SET wlanRateSet;
public ulong ulIeOffset;
public ulong ulIeSize;
}
public struct DOT11_SSID
{
public uint uSSIDLength;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string ucSSID;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct DOT11_MAC_ADDRESS
{
public byte one;
public byte two;
public byte three;
public byte four;
public byte five;
public byte six;
}
public enum DOT11_BSS_TYPE
{
dot11_BSS_type_infrastructure = 1,
dot11_BSS_type_independent = 2,
dot11_BSS_type_any = 3,
}
public enum DOT11_PHY_TYPE
{
dot11_phy_type_unknown,
dot11_phy_type_any,
dot11_phy_type_fhss,
dot11_phy_type_dsss,
dot11_phy_type_irbaseband,
dot11_phy_type_ofdm,
dot11_phy_type_hrdsss,
dot11_phy_type_erp,
dot11_phy_type_ht,
dot11_phy_type_IHV_start,
dot11_phy_type_IHV_end,
}
public struct WLAN_RATE_SET
{
public ulong uRateSetLength;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 126)]
public ushort[] usRateSet;
}
Подробнее здесь: https://stackoverflow.com/questions/395 ... windows-10
WlanGetNetworkBssList с C# в Windows 10 ⇐ C#
Место общения программистов C#
1719241956
Anonymous
Я пытаюсь подключить WlanGetNetworkBssList из настольного приложения C# под Windows 10. Возникли проблемы с правильным получением WLAN_BSS_LIST. Не знаю, в чем проблема, список, который я получаю, неправильный. Первый пункт кажется правильным, но все остальные — нет. Я надеюсь, что кто-то может мне помочь.
Это структуры, которые я использую. я считаю, что проблема заключается в неправильном определении структуры.
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct WLAN_BSS_LIST
{
internal Int32 dwTotalSize;
internal Int32 dwNumberOfItems;
internal WLAN_BSS_ENTRY[] wlanBssEntries;
internal WLAN_BSS_LIST(IntPtr ppWlanBssList)
{
dwTotalSize = (Int32)Marshal.ReadInt32(ppWlanBssList);
dwNumberOfItems = (Int32)Marshal.ReadInt32(ppWlanBssList + 4);
wlanBssEntries = new WLAN_BSS_ENTRY[dwNumberOfItems];
int WLAN_BSS_ENTRY_SIZE = Marshal.SizeOf(typeof(WLAN_BSS_ENTRY));
for (int i = 0; i < dwNumberOfItems; i++)
{
IntPtr pItemList = new IntPtr(ppWlanBssList.ToInt32() + i * Marshal.SizeOf(typeof(WLAN_BSS_ENTRY)) + 8);
wlanBssEntries[i] = (WLAN_BSS_ENTRY)Marshal.PtrToStructure(pItemList, typeof(WLAN_BSS_ENTRY));
}
}
}
public struct WLAN_BSS_ENTRY
{
public DOT11_SSID dot11Ssid;
public ulong uPhyId;
public DOT11_MAC_ADDRESS dot11Bssid;
public DOT11_BSS_TYPE dot11BssType;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public DOT11_PHY_TYPE[] dot11BssPhyType;
public long lRssi;
public ulong uLinkQuality;
public bool bInRegDomain;
public ushort usBeaconPeriod;
public ulong ullTimestamp;
public ulong ullHostTimestamp;
public ushort usCapabilityInformation;
public ulong ulChCenterFrequency;
public WLAN_RATE_SET wlanRateSet;
public ulong ulIeOffset;
public ulong ulIeSize;
}
public struct DOT11_SSID
{
public uint uSSIDLength;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string ucSSID;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct DOT11_MAC_ADDRESS
{
public byte one;
public byte two;
public byte three;
public byte four;
public byte five;
public byte six;
}
public enum DOT11_BSS_TYPE
{
dot11_BSS_type_infrastructure = 1,
dot11_BSS_type_independent = 2,
dot11_BSS_type_any = 3,
}
public enum DOT11_PHY_TYPE
{
dot11_phy_type_unknown,
dot11_phy_type_any,
dot11_phy_type_fhss,
dot11_phy_type_dsss,
dot11_phy_type_irbaseband,
dot11_phy_type_ofdm,
dot11_phy_type_hrdsss,
dot11_phy_type_erp,
dot11_phy_type_ht,
dot11_phy_type_IHV_start,
dot11_phy_type_IHV_end,
}
public struct WLAN_RATE_SET
{
public ulong uRateSetLength;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 126)]
public ushort[] usRateSet;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/39564080/wlangetnetworkbsslist-with-c-sharp-on-windows-10[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия