视觉原生无线网络 API C++.关闭/打开无线网络

visual Native Wifi Api C++.Off/on wifi

本文关键字:无线网络 关闭 C++ 原生 API 视觉      更新时间:2023-10-16

我想在 NativeWifi 上为开/关 wifi 模块编写程序C++。我收到了所有模块。然后我不知道该怎么办。我没有NativeWifi Api的经验,请帮助我,谢谢。

HANDLE hClient = NULL;
DWORD dwMaxClient = 2;      //    
DWORD dwCurVersion = 0;
DWORD dwResult = 0;
DWORD dwRetVal = 0;
int iRet = 0;
WCHAR GuidString[39] = { 0 };
unsigned int i, j, k;
/* variables used for WlanEnumInterfaces  */
PWLAN_INTERFACE_INFO_LIST pIfList = NULL;
PWLAN_INTERFACE_INFO pIfInfo = NULL;
PWLAN_AVAILABLE_NETWORK_LIST pBssList = NULL;
PWLAN_AVAILABLE_NETWORK pBssEntry = NULL;
dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient);
if (dwResult != ERROR_SUCCESS) {
    wprintf(L"WlanOpenHandle failed with error: %un", dwResult);
    return 1;
    // You can use FormatMessage here to find out why the function failed
}
dwResult = WlanEnumInterfaces(hClient, NULL, &pIfList);
if (dwResult != ERROR_SUCCESS) {
    wprintf(L"WlanEnumInterfaces failed with error: %un", dwResult);
    return 1;
    // You can use FormatMessage here to find out why the function failed
}
else {
    wprintf(L"Num Entries: %lun", pIfList->dwNumberOfItems);
    wprintf(L"Current Index: %lun", pIfList->dwIndex);
    for (i = 0; i < (int)pIfList->dwNumberOfItems; i++) {
        pIfInfo = (WLAN_INTERFACE_INFO *)&pIfList->InterfaceInfo[i];
        wprintf(L"  Interface Index[%u]:t %lun", i, i);
        iRet = StringFromGUID2(pIfInfo->InterfaceGuid, (LPOLESTR)&GuidString,
            sizeof(GuidString) / sizeof(*GuidString));
        // For c rather than C++ source code, the above line needs to be
        // iRet = StringFromGUID2(&pIfInfo->InterfaceGuid, (LPOLESTR) &GuidString, 
        //     sizeof(GuidString)/sizeof(*GuidString)); 
        if (iRet == 0)
            wprintf(L"StringFromGUID2 failedn");
        else {
            wprintf(L"  InterfaceGUID[%d]: %wsn", i, GuidString);
        }

    }
}

我收到了所有模块。接下来,如果WLAN_PHY_RADIO_STATE结构的 dot11SoftwareRadioState 或 dot11HardwareRadioState 成员dot11_radio_state_off,则 PHY 的无线电状态为关闭。

作为WLAN_PHY_RADIO_STATE状态的文档,您可以使用WlanSetInterface关闭软件无线电状态。