|
12 | 12 | LRESULT CWlanWizard::OnScanNetworks(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) |
13 | 13 | { |
14 | 14 | MSG msg; |
| 15 | + GUID gCurAdapter; |
| 16 | + PWLAN_RADIO_STATE pWRSCurAdapter = NULL; |
| 17 | + WLAN_OPCODE_VALUE_TYPE wovtCurrAdapter = wlan_opcode_value_type_invalid; |
| 18 | + DWORD dwWRSsize = sizeof(WLAN_RADIO_STATE); |
15 | 19 |
|
16 | 20 | this->uScanStatus = STATUS_SCANNING; |
17 | 21 | this->bScanTimeout = FALSE; |
18 | 22 | this->dwSelectedItemID = -1; |
19 | 23 |
|
20 | | - m_SidebarButtonAS.EnableWindow(FALSE); |
21 | | - m_SidebarButtonSN.EnableWindow(FALSE); |
22 | 24 | m_ConnectButton.EnableWindow(FALSE); |
23 | 25 | m_ListboxWLAN.EnableWindow(FALSE); |
24 | 26 |
|
25 | 27 | /* Clear listbox from previously discovered networks */ |
26 | 28 | m_ListboxWLAN.SendMessageW(LB_RESETCONTENT, NULL, NULL); |
27 | 29 | m_ListboxWLAN.Invalidate(); |
28 | 30 |
|
| 31 | + /* Check if the adapter is enabled, both hardware and software */ |
| 32 | + IIDFromString(this->m_sGUID, &gCurAdapter); |
| 33 | + WlanQueryInterface(this->hWlanClient, |
| 34 | + &gCurAdapter, |
| 35 | + wlan_intf_opcode_radio_state, |
| 36 | + NULL, |
| 37 | + &dwWRSsize, |
| 38 | + reinterpret_cast<PVOID*>(&pWRSCurAdapter), |
| 39 | + &wovtCurrAdapter); |
| 40 | + |
| 41 | + if (!( pWRSCurAdapter->PhyRadioState[0].dot11SoftwareRadioState == dot11_radio_state_on |
| 42 | + && pWRSCurAdapter->PhyRadioState[0].dot11HardwareRadioState == dot11_radio_state_on)) |
| 43 | + { |
| 44 | + this->uScanStatus = STATUS_SCAN_COMPLETE; |
| 45 | + this->bScanTimeout = TRUE; |
| 46 | + |
| 47 | + if (this->lstWlanNetworks != NULL) |
| 48 | + { |
| 49 | + WlanFreeMemory(this->lstWlanNetworks); |
| 50 | + RtlSecureZeroMemory(&this->lstWlanNetworks, sizeof(this->lstWlanNetworks)); |
| 51 | + } |
| 52 | + return FALSE; |
| 53 | + } |
| 54 | + |
| 55 | + m_SidebarButtonAS.EnableWindow(FALSE); |
| 56 | + m_SidebarButtonSN.EnableWindow(FALSE); |
| 57 | + |
29 | 58 | SetTimer(IDT_SCANNING_NETWORKS, 5000); |
30 | 59 |
|
31 | 60 | HCURSOR hOldCursor = SetCursor(LoadCursorW(NULL, IDC_APPSTARTING)); |
|
0 commit comments