• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/wpa_supplicant-0.7.3/src/drivers/

Lines Matching refs:drv

46 int wpa_driver_register_event_cb(struct wpa_driver_ndis_data *drv);
52 static void wpa_driver_ndis_poll(void *drv);
54 static int wpa_driver_ndis_adapter_init(struct wpa_driver_ndis_data *drv);
55 static int wpa_driver_ndis_adapter_open(struct wpa_driver_ndis_data *drv);
56 static void wpa_driver_ndis_adapter_close(struct wpa_driver_ndis_data *drv);
456 static int ndis_get_oid(struct wpa_driver_ndis_data *drv, unsigned int oid,
471 o->ptcDeviceName = drv->adapter_name;
473 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_QUERY_OID_VALUE,
511 if (!PacketRequest(drv->adapter, FALSE, o)) {
531 static int ndis_set_oid(struct wpa_driver_ndis_data *drv, unsigned int oid,
550 o->ptcDeviceName = drv->adapter_name;
554 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_SET_OID_VALUE,
580 if (!PacketRequest(drv->adapter, TRUE, o)) {
592 static int ndis_set_auth_mode(struct wpa_driver_ndis_data *drv, int mode)
595 if (ndis_set_oid(drv, OID_802_11_AUTHENTICATION_MODE,
606 static int ndis_get_auth_mode(struct wpa_driver_ndis_data *drv)
610 res = ndis_get_oid(drv, OID_802_11_AUTHENTICATION_MODE,
621 static int ndis_set_encr_status(struct wpa_driver_ndis_data *drv, int encr)
624 if (ndis_set_oid(drv, OID_802_11_ENCRYPTION_STATUS,
634 static int ndis_get_encr_status(struct wpa_driver_ndis_data *drv)
638 res = ndis_get_oid(drv, OID_802_11_ENCRYPTION_STATUS,
651 struct wpa_driver_ndis_data *drv = priv;
653 if (drv->wired) {
662 return ndis_get_oid(drv, OID_802_11_BSSID, (char *) bssid, ETH_ALEN) <
669 struct wpa_driver_ndis_data *drv = priv;
673 res = ndis_get_oid(drv, OID_802_11_SSID, (char *) &buf, sizeof(buf));
676 if (drv->wired) {
688 static int wpa_driver_ndis_set_ssid(struct wpa_driver_ndis_data *drv,
701 drv->radio_enabled = 1;
702 return ndis_set_oid(drv, OID_802_11_SSID, (char *) &buf, sizeof(buf));
708 static int wpa_driver_ndis_radio_off(struct wpa_driver_ndis_data *drv)
710 drv->radio_enabled = 0;
711 return ndis_set_oid(drv, OID_802_11_DISASSOCIATE, " ", 4);
716 static int wpa_driver_ndis_disconnect(struct wpa_driver_ndis_data *drv)
722 return wpa_driver_ndis_set_ssid(drv, (u8 *) ssid, 32);
729 struct wpa_driver_ndis_data *drv = priv;
730 return wpa_driver_ndis_disconnect(drv);
737 struct wpa_driver_ndis_data *drv = priv;
738 return wpa_driver_ndis_disconnect(drv);
750 struct wpa_driver_ndis_data *drv,
760 res = ndis_set_oid(drv, OID_DOT11_SCAN_REQUEST, (char *) &req,
762 eloop_cancel_timeout(wpa_driver_ndis_scan_timeout, drv, drv->ctx);
763 eloop_register_timeout(7, 0, wpa_driver_ndis_scan_timeout, drv,
764 drv->ctx);
772 struct wpa_driver_ndis_data *drv = priv;
775 if (drv->native80211)
776 return wpa_driver_ndis_scan_native80211(drv, params);
778 if (!drv->radio_enabled) {
781 if (wpa_driver_ndis_disconnect(drv) < 0) {
784 drv->radio_enabled = 1;
787 res = ndis_set_oid(drv, OID_802_11_BSSID_LIST_SCAN, " ", 4);
788 eloop_cancel_timeout(wpa_driver_ndis_scan_timeout, drv, drv->ctx);
789 eloop_register_timeout(7, 0, wpa_driver_ndis_scan_timeout, drv,
790 drv->ctx);
842 struct wpa_driver_ndis_data *drv = priv;
854 len = ndis_get_oid(drv, OID_802_11_BSSID_LIST, (char *) b, blen);
928 static int wpa_driver_ndis_remove_key(struct wpa_driver_ndis_data *drv,
944 res = ndis_set_oid(drv, OID_802_11_REMOVE_KEY, (char *) &rkey,
948 res2 = ndis_set_oid(drv, OID_802_11_REMOVE_WEP,
959 static int wpa_driver_ndis_add_wep(struct wpa_driver_ndis_data *drv,
984 res = ndis_set_oid(drv, OID_802_11_ADD_WEP, (char *) wep, len);
998 struct wpa_driver_ndis_data *drv = priv;
1008 if (wpa_driver_ndis_get_bssid(drv, bssid) < 0)
1017 return wpa_driver_ndis_remove_key(drv, key_idx, addr, bssid,
1022 return wpa_driver_ndis_add_wep(drv, pairwise, key_idx, set_tx,
1056 res = ndis_set_oid(drv, OID_802_11_ADD_KEY, (char *) nkey, len);
1067 struct wpa_driver_ndis_data *drv = priv;
1070 drv->mode = params->mode;
1078 eloop_cancel_timeout(wpa_driver_ndis_poll_timeout, drv, NULL);
1080 drv, NULL);
1083 if (ndis_set_oid(drv, OID_802_11_INFRASTRUCTURE_MODE,
1101 wpa_driver_ndis_set_key(drv->ifname, drv, WPA_ALG_WEP,
1162 if (ndis_set_oid(drv, OID_802_11_PRIVACY_FILTER,
1170 ndis_set_auth_mode(drv, auth_mode);
1171 ndis_set_encr_status(drv, encr);
1174 ndis_set_oid(drv, OID_802_11_BSSID, (char *) params->bssid,
1176 drv->oid_bssid_set = 1;
1177 } else if (drv->oid_bssid_set) {
1178 ndis_set_oid(drv, OID_802_11_BSSID, "\xff\xff\xff\xff\xff\xff",
1180 drv->oid_bssid_set = 0;
1183 return wpa_driver_ndis_set_ssid(drv, params->ssid, params->ssid_len);
1187 static int wpa_driver_ndis_set_pmkid(struct wpa_driver_ndis_data *drv)
1194 entry = drv->pmkid;
1197 if (count >= drv->no_of_pmkid)
1208 entry = drv->pmkid;
1215 ret = ndis_set_oid(drv, OID_802_11_PMKID, (char *) p, len);
1224 struct wpa_driver_ndis_data *drv = priv;
1227 if (drv->no_of_pmkid == 0)
1231 entry = drv->pmkid;
1245 entry->next = drv->pmkid;
1246 drv->pmkid = entry;
1253 entry->next = drv->pmkid;
1254 drv->pmkid = entry;
1258 return wpa_driver_ndis_set_pmkid(drv);
1265 struct wpa_driver_ndis_data *drv = priv;
1268 if (drv->no_of_pmkid == 0)
1271 entry = drv->pmkid;
1279 drv->pmkid = entry->next;
1286 return wpa_driver_ndis_set_pmkid(drv);
1292 struct wpa_driver_ndis_data *drv = priv;
1297 if (drv->no_of_pmkid == 0)
1300 pmkid = drv->pmkid;
1301 drv->pmkid = NULL;
1312 prev_authmode = ndis_get_auth_mode(drv);
1314 ndis_set_auth_mode(drv, Ndis802_11AuthModeWPA2);
1321 ret = ndis_set_oid(drv, OID_802_11_PMKID, (char *) &p, 8);
1324 ndis_set_auth_mode(drv, prev_authmode);
1330 static int wpa_driver_ndis_get_associnfo(struct wpa_driver_ndis_data *drv)
1339 len = ndis_get_oid(drv, OID_802_11_ASSOCIATION_INFORMATION, buf,
1353 len = ndis_get_oid(drv, OID_802_11_ASSOCIATION_INFORMATION,
1402 len = ndis_get_oid(drv, OID_802_11_BSSID_LIST, (char *) b, blen);
1415 if (os_memcmp(drv->bssid, bss->MacAddress, ETH_ALEN) == 0 &&
1433 wpa_supplicant_event(drv->ctx, EVENT_ASSOCINFO, &data);
1443 struct wpa_driver_ndis_data *drv = eloop_ctx;
1447 if (drv->wired)
1450 if (wpa_driver_ndis_get_bssid(drv, bssid)) {
1452 if (!is_zero_ether_addr(drv->bssid)) {
1453 os_memset(drv->bssid, 0, ETH_ALEN);
1454 wpa_supplicant_event(drv->ctx, EVENT_DISASSOC, NULL);
1458 if (os_memcmp(drv->bssid, bssid, ETH_ALEN) != 0) {
1459 os_memcpy(drv->bssid, bssid, ETH_ALEN);
1460 wpa_driver_ndis_get_associnfo(drv);
1461 wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL);
1471 poll = drv->mode == IEEE80211_MODE_IBSS;
1480 drv, NULL);
1487 struct wpa_driver_ndis_data *drv = priv;
1488 eloop_cancel_timeout(wpa_driver_ndis_poll_timeout, drv, NULL);
1489 wpa_driver_ndis_poll_timeout(drv, NULL);
1495 void wpa_driver_ndis_event_connect(struct wpa_driver_ndis_data *drv)
1498 if (wpa_driver_ndis_get_bssid(drv, drv->bssid) == 0) {
1499 wpa_driver_ndis_get_associnfo(drv);
1500 wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL);
1507 void wpa_driver_ndis_event_disconnect(struct wpa_driver_ndis_data *drv)
1510 os_memset(drv->bssid, 0, ETH_ALEN);
1511 wpa_supplicant_event(drv->ctx, EVENT_DISASSOC, NULL);
1515 static void wpa_driver_ndis_event_auth(struct wpa_driver_ndis_data *drv,
1543 wpa_supplicant_event(drv->ctx, EVENT_MICHAEL_MIC_FAILURE,
1549 static void wpa_driver_ndis_event_pmkid(struct wpa_driver_ndis_data *drv,
1586 wpa_supplicant_event(drv->ctx, EVENT_PMKID_CANDIDATE,
1594 void wpa_driver_ndis_event_media_specific(struct wpa_driver_ndis_data *drv,
1611 wpa_driver_ndis_event_auth(drv, data, data_len);
1614 wpa_driver_ndis_event_pmkid(drv, data, data_len);
1625 void wpa_driver_ndis_event_adapter_arrival(struct wpa_driver_ndis_data *drv)
1634 wpa_driver_ndis_adapter_close(drv);
1635 if (wpa_driver_ndis_adapter_init(drv) < 0 ||
1636 wpa_driver_ndis_adapter_open(drv) < 0) {
1647 os_strlcpy(event.interface_status.ifname, drv->ifname,
1650 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_STATUS, &event);
1655 void wpa_driver_ndis_event_adapter_removal(struct wpa_driver_ndis_data *drv)
1661 os_strlcpy(event.interface_status.ifname, drv->ifname,
1664 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_STATUS, &event);
1669 wpa_driver_ndis_get_wpa_capability(struct wpa_driver_ndis_data *drv)
1673 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeWPA) == 0 &&
1674 ndis_get_auth_mode(drv) == Ndis802_11AuthModeWPA) {
1676 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA;
1679 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeWPAPSK) == 0 &&
1680 ndis_get_auth_mode(drv) == Ndis802_11AuthModeWPAPSK) {
1683 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK;
1686 if (ndis_set_encr_status(drv, Ndis802_11Encryption3Enabled) == 0 &&
1687 ndis_get_encr_status(drv) == Ndis802_11Encryption3KeyAbsent) {
1689 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_CCMP;
1692 if (ndis_set_encr_status(drv, Ndis802_11Encryption2Enabled) == 0 &&
1693 ndis_get_encr_status(drv) == Ndis802_11Encryption2KeyAbsent) {
1695 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_TKIP;
1698 if (ndis_set_encr_status(drv, Ndis802_11Encryption1Enabled) == 0 &&
1699 ndis_get_encr_status(drv) == Ndis802_11Encryption1KeyAbsent) {
1701 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP40 |
1705 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeShared) == 0 &&
1706 ndis_get_auth_mode(drv) == Ndis802_11AuthModeShared) {
1707 drv->capa.auth |= WPA_DRIVER_AUTH_SHARED;
1710 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeOpen) == 0 &&
1711 ndis_get_auth_mode(drv) == Ndis802_11AuthModeOpen) {
1712 drv->capa.auth |= WPA_DRIVER_AUTH_OPEN;
1715 ndis_set_encr_status(drv, Ndis802_11EncryptionDisabled);
1720 if (drv->capa.key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_WPA &&
1721 drv->capa.enc & (WPA_DRIVER_CAPA_ENC_TKIP |
1724 drv->has_capability = 1;
1731 drv->capa.key_mgmt, drv->capa.enc, drv->capa.auth);
1735 static void wpa_driver_ndis_get_capability(struct wpa_driver_ndis_data *drv)
1742 drv->capa.flags = WPA_DRIVER_FLAGS_DRIVER_IE;
1744 len = ndis_get_oid(drv, OID_802_11_CAPABILITY, buf, sizeof(buf));
1746 wpa_driver_ndis_get_wpa_capability(drv);
1761 drv->has_capability = 1;
1762 drv->no_of_pmkid = c->NoOfPMKIDs;
1776 drv->capa.auth |= WPA_DRIVER_AUTH_OPEN;
1779 drv->capa.auth |= WPA_DRIVER_AUTH_SHARED;
1782 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA;
1785 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK;
1788 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA2;
1791 drv->capa.key_mgmt |=
1795 drv->capa.key_mgmt |=
1803 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP40;
1804 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP104;
1807 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_TKIP;
1810 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_CCMP;
1819 drv->capa.key_mgmt, drv->capa.enc, drv->capa.auth);
1825 struct wpa_driver_ndis_data *drv = priv;
1826 if (!drv->has_capability)
1828 os_memcpy(capa, &drv->capa, sizeof(*capa));
1835 struct wpa_driver_ndis_data *drv = priv;
1836 return drv->ifname;
1842 struct wpa_driver_ndis_data *drv = priv;
1843 return drv->own_addr;
1853 struct wpa_driver_ndis_data *drv = eloop_data;
1858 if (!ReadMsgQueue(drv->event_queue, buf, NDISUIO_MSG_SIZE, &len, 0,
1879 wpa_driver_ndis_event_adapter_arrival(drv);
1885 wpa_driver_ndis_event_adapter_removal(drv);
1890 SetEvent(drv->connected_event);
1891 wpa_driver_ndis_event_connect(drv);
1894 ResetEvent(drv->connected_event);
1896 wpa_driver_ndis_event_disconnect(drv);
1902 drv, hdr->pvStatusBuffer, hdr->uiStatusBufferSize);
1905 drv, ((const u8 *) hdr) + hdr->uiOffsetToStatusBuffer,
1917 static void ndisuio_notification_deinit(struct wpa_driver_ndis_data *drv)
1922 req.hMsgQueue = drv->event_queue;
1925 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_REQUEST_NOTIFICATION,
1932 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_CANCEL_NOTIFICATION,
1939 if (drv->event_queue) {
1940 eloop_unregister_event(drv->event_queue,
1941 sizeof(drv->event_queue));
1942 CloseHandle(drv->event_queue);
1943 drv->event_queue = NULL;
1946 if (drv->connected_event) {
1947 CloseHandle(drv->connected_event);
1948 drv->connected_event = NULL;
1953 static int ndisuio_notification_init(struct wpa_driver_ndis_data *drv)
1958 drv->connected_event =
1960 if (drv->connected_event == NULL) {
1973 drv->event_queue = CreateMsgQueue(NULL, &opt);
1974 if (drv->event_queue == NULL) {
1978 ndisuio_notification_deinit(drv);
1983 req.hMsgQueue = drv->event_queue;
1995 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_REQUEST_NOTIFICATION,
2000 ndisuio_notification_deinit(drv);
2004 eloop_register_event(drv->event_queue, sizeof(drv->event_queue),
2005 ndisuio_notification_receive, drv, NULL);
2012 static int wpa_driver_ndis_get_names(struct wpa_driver_ndis_data *drv)
2030 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_QUERY_BINDING,
2059 if (os_strstr(name, drv->ifname)) {
2065 if (os_strncmp(desc, drv->ifname, os_strlen(drv->ifname)) == 0)
2076 drv->ifname);
2081 os_strlcpy(drv->ifname,
2083 sizeof(drv->ifname));
2085 drv->adapter_name = wpa_strdup_tchar(drv->ifname);
2086 if (drv->adapter_name == NULL) {
2099 drv->adapter_desc = os_malloc(dlen + 1);
2100 if (drv->adapter_desc) {
2101 os_memcpy(drv->adapter_desc, desc, dlen);
2102 drv->adapter_desc[dlen] = '\0';
2107 if (drv->adapter_desc == NULL)
2111 drv->adapter_desc);
2237 if (found_name == -1 && os_strstr(name[i], drv->ifname))
2240 os_strncmp(desc[i], drv->ifname, os_strlen(drv->ifname)) ==
2250 os_strlcpy(drv->ifname,
2253 sizeof(drv->ifname));
2258 drv->ifname);
2273 drv->adapter_desc = os_malloc(dlen + 1);
2274 if (drv->adapter_desc) {
2275 os_memcpy(drv->adapter_desc, desc[i], dlen);
2276 drv->adapter_desc[dlen] = '\0';
2281 if (drv->adapter_desc == NULL)
2285 drv->adapter_desc);
2351 static int wpa_driver_ndis_rebind_adapter(struct wpa_driver_ndis_data *drv)
2357 len = _tcslen(drv->adapter_name);
2370 memcpy(multi, drv->adapter_name, len * sizeof(TCHAR));
2395 static int wpa_driver_ndis_set_wzc(struct wpa_driver_ndis_data *drv,
2417 return wpa_driver_ndis_rebind_adapter(drv);
2495 drv->wzc_disabled = 1;
2496 return wpa_driver_ndis_rebind_adapter(drv);
2565 if (os_strstr(drv->ifname, guid) == NULL)
2622 drv->wzc_disabled = 0;
2641 drv->wzc_disabled = 1;
2659 static int wpa_driver_ndis_set_wzc(struct wpa_driver_ndis_data *drv,
2683 static int wpa_driver_ndis_adapter_init(struct wpa_driver_ndis_data *drv)
2690 drv->ndisuio = CreateFile(NDISUIO_DEVICE_NAME,
2695 if (drv->ndisuio == INVALID_HANDLE_VALUE) {
2700 driver_ndis_ndisuio_handle = drv->ndisuio;
2703 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_BIND_WAIT, NULL, 0,
2707 CloseHandle(drv->ndisuio);
2708 drv->ndisuio = INVALID_HANDLE_VALUE;
2720 static int wpa_driver_ndis_adapter_open(struct wpa_driver_ndis_data *drv)
2734 len = pos + os_strlen(drv->ifname);
2740 ifname[i] = (WCHAR) drv->ifname[i - pos];
2743 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_OPEN_DEVICE,
2750 CloseHandle(drv->ndisuio);
2751 drv->ndisuio = INVALID_HANDLE_VALUE;
2760 os_snprintf(ifname, sizeof(ifname), "\\Device\\NPF_%s", drv->ifname);
2761 drv->adapter = PacketOpenAdapter(ifname);
2762 if (drv->adapter == NULL) {
2772 static void wpa_driver_ndis_adapter_close(struct wpa_driver_ndis_data *drv)
2776 if (drv->ndisuio != INVALID_HANDLE_VALUE)
2777 CloseHandle(drv->ndisuio);
2779 if (drv->adapter)
2780 PacketCloseAdapter(drv->adapter);
2785 static int ndis_add_multicast(struct wpa_driver_ndis_data *drv)
2787 if (ndis_set_oid(drv, OID_802_3_MULTICAST_LIST,
2800 struct wpa_driver_ndis_data *drv;
2803 drv = os_zalloc(sizeof(*drv));
2804 if (drv == NULL)
2806 drv->ctx = ctx;
2817 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
2819 if (wpa_driver_ndis_adapter_init(drv) < 0) {
2820 os_free(drv);
2824 if (wpa_driver_ndis_get_names(drv) < 0) {
2825 wpa_driver_ndis_adapter_close(drv);
2826 os_free(drv);
2830 wpa_driver_ndis_set_wzc(drv, 0);
2832 if (wpa_driver_ndis_adapter_open(drv) < 0) {
2833 wpa_driver_ndis_adapter_close(drv);
2834 os_free(drv);
2838 if (ndis_get_oid(drv, OID_802_3_CURRENT_ADDRESS,
2839 (char *) drv->own_addr, ETH_ALEN) < 0) {
2842 wpa_driver_ndis_adapter_close(drv);
2843 os_free(drv);
2846 wpa_driver_ndis_get_capability(drv);
2850 wpa_driver_ndis_flush_pmkid(drv);
2856 wpa_driver_ndis_disconnect(drv);
2858 eloop_register_timeout(1, 0, wpa_driver_ndis_poll_timeout, drv, NULL);
2861 drv->events = ndis_events_init(&drv->events_pipe, &drv->event_avail,
2862 drv->ifname, drv->adapter_desc);
2863 if (drv->events == NULL) {
2864 wpa_driver_ndis_deinit(drv);
2867 eloop_register_event(drv->event_avail, sizeof(drv->event_avail),
2868 wpa_driver_ndis_event_pipe_cb, drv, NULL);
2872 if (ndisuio_notification_init(drv) < 0) {
2873 wpa_driver_ndis_deinit(drv);
2881 if (ndis_set_oid(drv, OID_802_11_INFRASTRUCTURE_MODE,
2890 res = ndis_get_oid(drv, OID_DOT11_CURRENT_OPERATION_MODE, buf,
2896 drv->native80211 = 1;
2897 } else if (!drv->has_capability || drv->capa.enc == 0) {
2905 drv->wired = 1;
2906 drv->capa.flags |= WPA_DRIVER_FLAGS_WIRED;
2907 drv->has_capability = 1;
2908 ndis_add_multicast(drv);
2912 return drv;
2918 struct wpa_driver_ndis_data *drv = priv;
2921 if (drv->events) {
2922 eloop_unregister_event(drv->event_avail,
2923 sizeof(drv->event_avail));
2924 ndis_events_deinit(drv->events);
2929 ndisuio_notification_deinit(drv);
2932 eloop_cancel_timeout(wpa_driver_ndis_scan_timeout, drv, drv->ctx);
2933 eloop_cancel_timeout(wpa_driver_ndis_poll_timeout, drv, NULL);
2934 wpa_driver_ndis_flush_pmkid(drv);
2935 wpa_driver_ndis_disconnect(drv);
2936 if (wpa_driver_ndis_radio_off(drv) < 0) {
2941 wpa_driver_ndis_adapter_close(drv);
2943 if (drv->wzc_disabled)
2944 wpa_driver_ndis_set_wzc(drv, 1);
2947 os_free(drv->adapter_name);
2949 os_free(drv->adapter_desc);
2950 os_free(drv);