[WLANCONF]
authorCameron Gutman <aicommander@gmail.com>
Tue, 10 Jan 2012 02:09:56 +0000 (02:09 +0000)
committerCameron Gutman <aicommander@gmail.com>
Tue, 10 Jan 2012 02:09:56 +0000 (02:09 +0000)
- Return to using OID_GEN_PHYSICAL_MEDIUM to determine if an adapter supports WLAN

svn path=/branches/wlan-bringup/; revision=54898

base/applications/network/wlanconf/wlanconf.c

index 0a01407..a4edcfd 100644 (file)
@@ -91,30 +91,23 @@ IsWlanAdapter(HANDLE hAdapter)
 {
     BOOL bSuccess;
     DWORD dwBytesReturned;
-    PNDISUIO_QUERY_OID QueryOid;
-    DWORD QueryOidSize;
+    NDISUIO_QUERY_OID QueryOid;
 
-    QueryOidSize = FIELD_OFFSET(NDISUIO_QUERY_OID, Data) + 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;
+    /* WLAN drivers must support this OID */
+    QueryOid.Oid = OID_GEN_PHYSICAL_MEDIUM;
 
     bSuccess = DeviceIoControl(hAdapter,
                                IOCTL_NDISUIO_QUERY_OID_VALUE,
-                               QueryOid,
-                               QueryOidSize,
-                               QueryOid,
-                               QueryOidSize,
+                               &QueryOid,
+                               sizeof(QueryOid),
+                               &QueryOid,
+                               sizeof(QueryOid),
                                &dwBytesReturned,
                                NULL);
+    if (!bSuccess || *(PULONG)QueryOid.Data != NdisPhysicalMediumWirelessLan)
+        return FALSE;
 
-    HeapFree(GetProcessHeap(), 0, QueryOid);
-
-    return bSuccess;
+    return TRUE;
 }
 
 HANDLE