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/network/wlanconf/wlanconf.c?rev=54888&r1=54887&r2=54888&view=diff
==============================================================================
--- 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


Reply via email to