Home | History | Annotate | Download | only in drivers

Lines Matching refs:drv

41 int wpa_driver_register_event_cb(struct wpa_driver_ndis_data *drv);
47 static void wpa_driver_ndis_poll(void *drv);
49 static int wpa_driver_ndis_adapter_init(struct wpa_driver_ndis_data *drv);
50 static int wpa_driver_ndis_adapter_open(struct wpa_driver_ndis_data *drv);
51 static void wpa_driver_ndis_adapter_close(struct wpa_driver_ndis_data *drv);
451 static int ndis_get_oid(struct wpa_driver_ndis_data *drv, unsigned int oid,
466 o->ptcDeviceName = drv->adapter_name;
468 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_QUERY_OID_VALUE,
506 if (!PacketRequest(drv->adapter, FALSE, o)) {
526 static int ndis_set_oid(struct wpa_driver_ndis_data *drv, unsigned int oid,
545 o->ptcDeviceName = drv->adapter_name;
549 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_SET_OID_VALUE,
575 if (!PacketRequest(drv->adapter, TRUE, o)) {
587 static int ndis_set_auth_mode(struct wpa_driver_ndis_data *drv, int mode)
590 if (ndis_set_oid(drv, OID_802_11_AUTHENTICATION_MODE,
601 static int ndis_get_auth_mode(struct wpa_driver_ndis_data *drv)
605 res = ndis_get_oid(drv, OID_802_11_AUTHENTICATION_MODE,
616 static int ndis_set_encr_status(struct wpa_driver_ndis_data *drv, int encr)
619 if (ndis_set_oid(drv, OID_802_11_ENCRYPTION_STATUS,
629 static int ndis_get_encr_status(struct wpa_driver_ndis_data *drv)
633 res = ndis_get_oid(drv, OID_802_11_ENCRYPTION_STATUS,
646 struct wpa_driver_ndis_data *drv = priv;
648 if (drv->wired) {
657 return ndis_get_oid(drv, OID_802_11_BSSID, (char *) bssid, ETH_ALEN) <
664 struct wpa_driver_ndis_data *drv = priv;
668 res = ndis_get_oid(drv, OID_802_11_SSID, (char *) &buf, sizeof(buf));
671 if (drv->wired) {
683 static int wpa_driver_ndis_set_ssid(struct wpa_driver_ndis_data *drv,
696 drv->radio_enabled = 1;
697 return ndis_set_oid(drv, OID_802_11_SSID, (char *) &buf, sizeof(buf));
703 static int wpa_driver_ndis_radio_off(struct wpa_driver_ndis_data *drv)
705 drv->radio_enabled = 0;
706 return ndis_set_oid(drv, OID_802_11_DISASSOCIATE, " ", 4);
711 static int wpa_driver_ndis_disconnect(struct wpa_driver_ndis_data *drv)
717 return wpa_driver_ndis_set_ssid(drv, (u8 *) ssid, SSID_MAX_LEN);
724 struct wpa_driver_ndis_data *drv = priv;
725 return wpa_driver_ndis_disconnect(drv);
737 struct wpa_driver_ndis_data *drv,
747 res = ndis_set_oid(drv, OID_DOT11_SCAN_REQUEST, (char *) &req,
749 eloop_cancel_timeout(wpa_driver_ndis_scan_timeout, drv, drv->ctx);
750 eloop_register_timeout(7, 0, wpa_driver_ndis_scan_timeout, drv,
751 drv->ctx);
759 struct wpa_driver_ndis_data *drv = priv;
762 if (drv->native80211)
763 return wpa_driver_ndis_scan_native80211(drv, params);
765 if (!drv->radio_enabled) {
768 if (wpa_driver_ndis_disconnect(drv) < 0) {
771 drv->radio_enabled = 1;
774 res = ndis_set_oid(drv, OID_802_11_BSSID_LIST_SCAN, " ", 4);
775 eloop_cancel_timeout(wpa_driver_ndis_scan_timeout, drv, drv->ctx);
776 eloop_register_timeout(7, 0, wpa_driver_ndis_scan_timeout, drv,
777 drv->ctx);
816 struct wpa_driver_ndis_data *drv = priv;
828 len = ndis_get_oid(drv, OID_802_11_BSSID_LIST, (char *) b, blen);
902 static int wpa_driver_ndis_remove_key(struct wpa_driver_ndis_data *drv,
918 res = ndis_set_oid(drv, OID_802_11_REMOVE_KEY, (char *) &rkey,
922 res2 = ndis_set_oid(drv, OID_802_11_REMOVE_WEP,
933 static int wpa_driver_ndis_add_wep(struct wpa_driver_ndis_data *drv,
958 res = ndis_set_oid(drv, OID_802_11_ADD_WEP, (char *) wep, len);
972 struct wpa_driver_ndis_data *drv = priv;
981 if (wpa_driver_ndis_get_bssid(drv, bssid) < 0)
990 return wpa_driver_ndis_remove_key(drv, key_idx, addr, bssid,
995 return wpa_driver_ndis_add_wep(drv, pairwise, key_idx, set_tx,
1029 res = ndis_set_oid(drv, OID_802_11_ADD_KEY, (char *) nkey, len);
1040 struct wpa_driver_ndis_data *drv = priv;
1044 drv->mode = params->mode;
1052 eloop_cancel_timeout(wpa_driver_ndis_poll_timeout, drv, NULL);
1054 drv, NULL);
1057 if (ndis_set_oid(drv, OID_802_11_INFRASTRUCTURE_MODE,
1074 wpa_driver_ndis_set_key(drv->ifname, drv, WPA_ALG_WEP,
1112 wpa_driver_ndis_set_key(drv->ifname, drv, WPA_ALG_WEP,
1164 if (ndis_set_oid(drv, OID_802_11_PRIVACY_FILTER,
1172 ndis_set_auth_mode(drv, auth_mode);
1173 ndis_set_encr_status(drv, encr);
1176 ndis_set_oid(drv, OID_802_11_BSSID, (char *) params->bssid,
1178 drv->oid_bssid_set = 1;
1179 } else if (drv->oid_bssid_set) {
1180 ndis_set_oid(drv, OID_802_11_BSSID, "\xff\xff\xff\xff\xff\xff",
1182 drv->oid_bssid_set = 0;
1185 return wpa_driver_ndis_set_ssid(drv, params->ssid, params->ssid_len);
1189 static int wpa_driver_ndis_set_pmkid(struct wpa_driver_ndis_data *drv)
1196 entry = drv->pmkid;
1199 if (count >= drv->no_of_pmkid)
1210 entry = drv->pmkid;
1217 ret = ndis_set_oid(drv, OID_802_11_PMKID, (char *) p, len);
1226 struct wpa_driver_ndis_data *drv = priv;
1229 if (drv->no_of_pmkid == 0)
1233 entry = drv->pmkid;
1247 entry->next = drv->pmkid;
1248 drv->pmkid = entry;
1255 entry->next = drv->pmkid;
1256 drv->pmkid = entry;
1260 return wpa_driver_ndis_set_pmkid(drv);
1267 struct wpa_driver_ndis_data *drv = priv;
1270 if (drv->no_of_pmkid == 0)
1273 entry = drv->pmkid;
1281 drv->pmkid = entry->next;
1288 return wpa_driver_ndis_set_pmkid(drv);
1294 struct wpa_driver_ndis_data *drv = priv;
1299 if (drv->no_of_pmkid == 0)
1302 pmkid = drv->pmkid;
1303 drv->pmkid = NULL;
1314 prev_authmode = ndis_get_auth_mode(drv);
1316 ndis_set_auth_mode(drv, Ndis802_11AuthModeWPA2);
1323 ret = ndis_set_oid(drv, OID_802_11_PMKID, (char *) &p, 8);
1326 ndis_set_auth_mode(drv, prev_authmode);
1332 static int wpa_driver_ndis_get_associnfo(struct wpa_driver_ndis_data *drv)
1341 len = ndis_get_oid(drv, OID_802_11_ASSOCIATION_INFORMATION, buf,
1355 len = ndis_get_oid(drv, OID_802_11_ASSOCIATION_INFORMATION,
1404 len = ndis_get_oid(drv, OID_802_11_BSSID_LIST, (char *) b, blen);
1417 if (os_memcmp(drv->bssid, bss->MacAddress, ETH_ALEN) == 0 &&
1435 wpa_supplicant_event(drv->ctx, EVENT_ASSOCINFO, &data);
1445 struct wpa_driver_ndis_data *drv = eloop_ctx;
1449 if (drv->wired)
1452 if (wpa_driver_ndis_get_bssid(drv, bssid)) {
1454 if (!is_zero_ether_addr(drv->bssid)) {
1455 os_memset(drv->bssid, 0, ETH_ALEN);
1456 wpa_supplicant_event(drv->ctx, EVENT_DISASSOC, NULL);
1460 if (os_memcmp(drv->bssid, bssid, ETH_ALEN) != 0) {
1461 os_memcpy(drv->bssid, bssid, ETH_ALEN);
1462 wpa_driver_ndis_get_associnfo(drv);
1463 wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL);
1473 poll = drv->mode == IEEE80211_MODE_IBSS;
1482 drv, NULL);
1489 struct wpa_driver_ndis_data *drv = priv;
1490 eloop_cancel_timeout(wpa_driver_ndis_poll_timeout, drv, NULL);
1491 wpa_driver_ndis_poll_timeout(drv, NULL);
1497 void wpa_driver_ndis_event_connect(struct wpa_driver_ndis_data *drv)
1500 if (wpa_driver_ndis_get_bssid(drv, drv->bssid) == 0) {
1501 wpa_driver_ndis_get_associnfo(drv);
1502 wpa_supplicant_event(drv->ctx, EVENT_ASSOC, NULL);
1509 void wpa_driver_ndis_event_disconnect(struct wpa_driver_ndis_data *drv)
1512 os_memset(drv->bssid, 0, ETH_ALEN);
1513 wpa_supplicant_event(drv->ctx, EVENT_DISASSOC, NULL);
1517 static void wpa_driver_ndis_event_auth(struct wpa_driver_ndis_data *drv,
1545 wpa_supplicant_event(drv->ctx, EVENT_MICHAEL_MIC_FAILURE,
1551 static void wpa_driver_ndis_event_pmkid(struct wpa_driver_ndis_data *drv,
1588 wpa_supplicant_event(drv->ctx, EVENT_PMKID_CANDIDATE,
1596 void wpa_driver_ndis_event_media_specific(struct wpa_driver_ndis_data *drv,
1613 wpa_driver_ndis_event_auth(drv, data, data_len);
1616 wpa_driver_ndis_event_pmkid(drv, data, data_len);
1627 void wpa_driver_ndis_event_adapter_arrival(struct wpa_driver_ndis_data *drv)
1636 wpa_driver_ndis_adapter_close(drv);
1637 if (wpa_driver_ndis_adapter_init(drv) < 0 ||
1638 wpa_driver_ndis_adapter_open(drv) < 0) {
1649 os_strlcpy(event.interface_status.ifname, drv->ifname,
1652 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_STATUS, &event);
1657 void wpa_driver_ndis_event_adapter_removal(struct wpa_driver_ndis_data *drv)
1663 os_strlcpy(event.interface_status.ifname, drv->ifname,
1666 wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_STATUS, &event);
1671 wpa_driver_ndis_get_wpa_capability(struct wpa_driver_ndis_data *drv)
1675 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeWPA) == 0 &&
1676 ndis_get_auth_mode(drv) == Ndis802_11AuthModeWPA) {
1678 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA;
1681 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeWPAPSK) == 0 &&
1682 ndis_get_auth_mode(drv) == Ndis802_11AuthModeWPAPSK) {
1685 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK;
1688 if (ndis_set_encr_status(drv, Ndis802_11Encryption3Enabled) == 0 &&
1689 ndis_get_encr_status(drv) == Ndis802_11Encryption3KeyAbsent) {
1691 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_CCMP;
1694 if (ndis_set_encr_status(drv, Ndis802_11Encryption2Enabled) == 0 &&
1695 ndis_get_encr_status(drv) == Ndis802_11Encryption2KeyAbsent) {
1697 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_TKIP;
1700 if (ndis_set_encr_status(drv, Ndis802_11Encryption1Enabled) == 0 &&
1701 ndis_get_encr_status(drv) == Ndis802_11Encryption1KeyAbsent) {
1703 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP40 |
1707 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeShared) == 0 &&
1708 ndis_get_auth_mode(drv) == Ndis802_11AuthModeShared) {
1709 drv->capa.auth |= WPA_DRIVER_AUTH_SHARED;
1712 if (ndis_set_auth_mode(drv, Ndis802_11AuthModeOpen) == 0 &&
1713 ndis_get_auth_mode(drv) == Ndis802_11AuthModeOpen) {
1714 drv->capa.auth |= WPA_DRIVER_AUTH_OPEN;
1717 ndis_set_encr_status(drv, Ndis802_11EncryptionDisabled);
1722 if (drv->capa.key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_WPA &&
1723 drv->capa.enc & (WPA_DRIVER_CAPA_ENC_TKIP |
1726 drv->has_capability = 1;
1733 drv->capa.key_mgmt, drv->capa.enc, drv->capa.auth);
1737 static void wpa_driver_ndis_get_capability(struct wpa_driver_ndis_data *drv)
1744 drv->capa.flags = WPA_DRIVER_FLAGS_DRIVER_IE;
1746 len = ndis_get_oid(drv, OID_802_11_CAPABILITY, buf, sizeof(buf));
1748 wpa_driver_ndis_get_wpa_capability(drv);
1763 drv->has_capability = 1;
1764 drv->no_of_pmkid = c->NoOfPMKIDs;
1778 drv->capa.auth |= WPA_DRIVER_AUTH_OPEN;
1781 drv->capa.auth |= WPA_DRIVER_AUTH_SHARED;
1784 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA;
1787 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA_PSK;
1790 drv->capa.key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_WPA2;
1793 drv->capa.key_mgmt |=
1797 drv->capa.key_mgmt |=
1805 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP40;
1806 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_WEP104;
1809 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_TKIP;
1812 drv->capa.enc |= WPA_DRIVER_CAPA_ENC_CCMP;
1821 drv->capa.key_mgmt, drv->capa.enc, drv->capa.auth);
1827 struct wpa_driver_ndis_data *drv = priv;
1828 if (!drv->has_capability)
1830 os_memcpy(capa, &drv->capa, sizeof(*capa));
1837 struct wpa_driver_ndis_data *drv = priv;
1838 return drv->ifname;
1844 struct wpa_driver_ndis_data *drv = priv;
1845 return drv->own_addr;
1855 struct wpa_driver_ndis_data *drv = eloop_data;
1860 if (!ReadMsgQueue(drv->event_queue, buf, NDISUIO_MSG_SIZE, &len, 0,
1881 wpa_driver_ndis_event_adapter_arrival(drv);
1887 wpa_driver_ndis_event_adapter_removal(drv);
1892 SetEvent(drv->connected_event);
1893 wpa_driver_ndis_event_connect(drv);
1896 ResetEvent(drv->connected_event);
1898 wpa_driver_ndis_event_disconnect(drv);
1904 drv, hdr->pvStatusBuffer, hdr->uiStatusBufferSize);
1907 drv, ((const u8 *) hdr) + hdr->uiOffsetToStatusBuffer,
1919 static void ndisuio_notification_deinit(struct wpa_driver_ndis_data *drv)
1924 req.hMsgQueue = drv->event_queue;
1927 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_REQUEST_NOTIFICATION,
1934 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_CANCEL_NOTIFICATION,
1941 if (drv->event_queue) {
1942 eloop_unregister_event(drv->event_queue,
1943 sizeof(drv->event_queue));
1944 CloseHandle(drv->event_queue);
1945 drv->event_queue = NULL;
1948 if (drv->connected_event) {
1949 CloseHandle(drv->connected_event);
1950 drv->connected_event = NULL;
1955 static int ndisuio_notification_init(struct wpa_driver_ndis_data *drv)
1960 drv->connected_event =
1962 if (drv->connected_event == NULL) {
1975 drv->event_queue = CreateMsgQueue(NULL, &opt);
1976 if (drv->event_queue == NULL) {
1980 ndisuio_notification_deinit(drv);
1985 req.hMsgQueue = drv->event_queue;
1997 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_REQUEST_NOTIFICATION,
2002 ndisuio_notification_deinit(drv);
2006 eloop_register_event(drv->event_queue, sizeof(drv->event_queue),
2007 ndisuio_notification_receive, drv, NULL);
2014 static int wpa_driver_ndis_get_names(struct wpa_driver_ndis_data *drv)
2032 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_QUERY_BINDING,
2061 if (os_strstr(name, drv->ifname)) {
2067 if (os_strncmp(desc, drv->ifname, os_strlen(drv->ifname)) == 0)
2078 drv->ifname);
2083 os_strlcpy(drv->ifname,
2085 sizeof(drv->ifname));
2087 drv->adapter_name = wpa_strdup_tchar(drv->ifname);
2088 if (drv->adapter_name == NULL) {
2101 drv->adapter_desc = dup_binstr(desc, dlen);
2103 if (drv->adapter_desc == NULL)
2107 drv->adapter_desc);
2233 if (found_name == -1 && os_strstr(name[i], drv->ifname))
2236 os_strncmp(desc[i], drv->ifname, os_strlen(drv->ifname)) ==
2246 os_strlcpy(drv->ifname,
2249 sizeof(drv->ifname));
2254 drv->ifname);
2269 drv->adapter_desc = dup_binstr(desc[i], dlen);
2271 if (drv->adapter_desc == NULL)
2275 drv->adapter_desc);
2341 static int wpa_driver_ndis_rebind_adapter(struct wpa_driver_ndis_data *drv)
2347 len = _tcslen(drv->adapter_name);
2360 memcpy(multi, drv->adapter_name, len * sizeof(TCHAR));
2385 static int wpa_driver_ndis_set_wzc(struct wpa_driver_ndis_data *drv,
2407 return wpa_driver_ndis_rebind_adapter(drv);
2485 drv->wzc_disabled = 1;
2486 return wpa_driver_ndis_rebind_adapter(drv);
2555 if (os_strstr(drv->ifname, guid) == NULL)
2612 drv->wzc_disabled = 0;
2631 drv->wzc_disabled = 1;
2649 static int wpa_driver_ndis_set_wzc(struct wpa_driver_ndis_data *drv,
2673 static int wpa_driver_ndis_adapter_init(struct wpa_driver_ndis_data *drv)
2680 drv->ndisuio = CreateFile(NDISUIO_DEVICE_NAME,
2685 if (drv->ndisuio == INVALID_HANDLE_VALUE) {
2690 driver_ndis_ndisuio_handle = drv->ndisuio;
2693 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_BIND_WAIT, NULL, 0,
2697 CloseHandle(drv->ndisuio);
2698 drv->ndisuio = INVALID_HANDLE_VALUE;
2710 static int wpa_driver_ndis_adapter_open(struct wpa_driver_ndis_data *drv)
2724 len = pos + os_strlen(drv->ifname);
2730 ifname[i] = (WCHAR) drv->ifname[i - pos];
2733 if (!DeviceIoControl(drv->ndisuio, IOCTL_NDISUIO_OPEN_DEVICE,
2740 CloseHandle(drv->ndisuio);
2741 drv->ndisuio = INVALID_HANDLE_VALUE;
2750 os_snprintf(ifname, sizeof(ifname), "\\Device\\NPF_%s", drv->ifname);
2751 drv->adapter = PacketOpenAdapter(ifname);
2752 if (drv->adapter == NULL) {
2762 static void wpa_driver_ndis_adapter_close(struct wpa_driver_ndis_data *drv)
2766 if (drv->ndisuio != INVALID_HANDLE_VALUE)
2767 CloseHandle(drv->ndisuio);
2769 if (drv->adapter)
2770 PacketCloseAdapter(drv->adapter);
2775 static int ndis_add_multicast(struct wpa_driver_ndis_data *drv)
2777 if (ndis_set_oid(drv, OID_802_3_MULTICAST_LIST,
2790 struct wpa_driver_ndis_data *drv;
2793 drv = os_zalloc(sizeof(*drv));
2794 if (drv == NULL)
2796 drv->ctx = ctx;
2807 os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
2809 if (wpa_driver_ndis_adapter_init(drv) < 0) {
2810 os_free(drv);
2814 if (wpa_driver_ndis_get_names(drv) < 0) {
2815 wpa_driver_ndis_adapter_close(drv);
2816 os_free(drv);
2820 wpa_driver_ndis_set_wzc(drv, 0);
2822 if (wpa_driver_ndis_adapter_open(drv) < 0) {
2823 wpa_driver_ndis_adapter_close(drv);
2824 os_free(drv);
2828 if (ndis_get_oid(drv, OID_802_3_CURRENT_ADDRESS,
2829 (char *) drv->own_addr, ETH_ALEN) < 0) {
2832 wpa_driver_ndis_adapter_close(drv);
2833 os_free(drv);
2836 wpa_driver_ndis_get_capability(drv);
2840 wpa_driver_ndis_flush_pmkid(drv);
2846 wpa_driver_ndis_disconnect(drv);
2848 eloop_register_timeout(1, 0, wpa_driver_ndis_poll_timeout, drv, NULL);
2851 drv->events = ndis_events_init(&drv->events_pipe, &drv->event_avail,
2852 drv->ifname, drv->adapter_desc);
2853 if (drv->events == NULL) {
2854 wpa_driver_ndis_deinit(drv);
2857 eloop_register_event(drv->event_avail, sizeof(drv->event_avail),
2858 wpa_driver_ndis_event_pipe_cb, drv, NULL);
2862 if (ndisuio_notification_init(drv) < 0) {
2863 wpa_driver_ndis_deinit(drv);
2871 if (ndis_set_oid(drv, OID_802_11_INFRASTRUCTURE_MODE,
2880 res = ndis_get_oid(drv, OID_DOT11_CURRENT_OPERATION_MODE, buf,
2886 drv->native80211 = 1;
2887 } else if (!drv->has_capability || drv->capa.enc == 0) {
2895 drv->wired = 1;
2896 drv->capa.flags |= WPA_DRIVER_FLAGS_WIRED;
2897 drv->has_capability = 1;
2898 ndis_add_multicast(drv);
2902 return drv;
2908 struct wpa_driver_ndis_data *drv = priv;
2911 if (drv->events) {
2912 eloop_unregister_event(drv->event_avail,
2913 sizeof(drv->event_avail));
2914 ndis_events_deinit(drv->events);
2919 ndisuio_notification_deinit(drv);
2922 eloop_cancel_timeout(wpa_driver_ndis_scan_timeout, drv, drv->ctx);
2923 eloop_cancel_timeout(wpa_driver_ndis_poll_timeout, drv, NULL);
2924 wpa_driver_ndis_flush_pmkid(drv);
2925 wpa_driver_ndis_disconnect(drv);
2926 if (wpa_driver_ndis_radio_off(drv) < 0) {
2931 wpa_driver_ndis_adapter_close(drv);
2933 if (drv->wzc_disabled)
2934 wpa_driver_ndis_set_wzc(drv, 1);
2937 os_free(drv->adapter_name);
2939 os_free(drv->adapter_desc);
2940 os_free(drv);