Author: cgutman Date: Mon Jan 9 03:17:23 2012 New Revision: 54888
URL: http://svn.reactos.org/svn/reactos?rev=54888&view=rev Log: [WLANCONF] - Use a different method for determining if an adapter supports 802.11 networks so it works on drivers that don't implement OID_GEN_PHYSICAL_MEDIUM
Modified: branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c
Modified: branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c URL: http://svn.reactos.org/svn/reactos/branches/wlan-bringup/base/applications/n... ============================================================================== --- branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c [iso-8859-1] (original) +++ branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c [iso-8859-1] Mon Jan 9 03:17:23 2012 @@ -91,23 +91,30 @@ { BOOL bSuccess; DWORD dwBytesReturned; - NDISUIO_QUERY_OID QueryOid; - - /* NDIS 5.1 WLAN drivers must support this OID */ - QueryOid.Oid = OID_GEN_PHYSICAL_MEDIUM; + PNDISUIO_QUERY_OID QueryOid; + DWORD QueryOidSize; + + QueryOidSize = sizeof(NDISUIO_QUERY_OID) + sizeof(NDIS_802_11_SSID); + QueryOid = HeapAlloc(GetProcessHeap(), 0, QueryOidSize); + if (!QueryOid) + return FALSE; + + /* We're just going to do a OID_802_11_SSID query. WLAN drivers should + * always succeed this query (returning SsidLength = 0 if not associated) */ + QueryOid->Oid = OID_802_11_SSID;
bSuccess = DeviceIoControl(hAdapter, IOCTL_NDISUIO_QUERY_OID_VALUE, - &QueryOid, - sizeof(QueryOid), - &QueryOid, - sizeof(QueryOid), - &dwBytesReturned, - NULL); - if (!bSuccess || *(PULONG)QueryOid.Data != NdisPhysicalMediumWirelessLan) - return FALSE; - - return TRUE; + QueryOid, + QueryOidSize, + QueryOid, + QueryOidSize, + &dwBytesReturned, + NULL); + + HeapFree(GetProcessHeap(), 0, QueryOid); + + return bSuccess; }
HANDLE