判断是无线网卡

KeInitializeEvent(&Event,NotificationEvent,FALSE);
MyIrp = IoBuildDeviceIoControlRequest(IOCTL_NDIS_QUERY_GLOBAL_STATS, 
   deviceExtension->NextLowerDriver,
   &OIDCode,   //OID_GEN_PHYSICAL_MEDIUM
   sizeof(ULONG),
   OutBuff,
   0x1000,
   FALSE,
   &Event,
   &IoStatus); //向下层发irp获得信息
if (!MyIrp )
{
   DbgPrint("MyIrp NULL false ! \n");
   goto Err;
}
//调试发现这些必须设置
irpStack = IoGetNextIrpStackLocation( MyIrp );
irpStack->FileObject = pFileObject;
MyIrp->Tail.Overlay.Thread = (PETHREAD)KeGetCurrentThread();
status = IoCallDriver(deviceExtension->NextLowerDriver, MyIrp);
if (status == STATUS_PENDING)
{
   KeWaitForSingleObject(&Event,Executive,KernelMode,FALSE,NULL);
   status = IoStatus.Status;
}
if(!NT_SUCCESS(status))
{
   goto err;
}
for(i = 0;i < IoStatus.Information;i++)
{
   if( OutBuff[i] == NdisPhysicalMediumWirelessLan ||
    OutBuff[i] == NdisPhysicalMediumWirelessWan ||
    OutBuff[i] == NdisPhysicalMediumNative802_11 ||
    OutBuff[i] == NdisPhysicalMediumBluetooth ||
    OutBuff[i] == NdisPhysicalMediumWiMax )
   {
    DbgPrint("是无线网卡 ! \n");
....................   
   }
}

转载于:https://my.oschina.net/u/727747/blog/502941

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
判断是否存在无线网卡的代码可以使用Windows提供的Wlanapi.h头文件中的函数。以下是一个简单的示例代码,可以列出计算机上所有无线网卡的名称和GUID: ```c #include <windows.h> #include <wlanapi.h> #include <wtypes.h> #include <stdio.h> #pragma comment(lib, "wlanapi.lib") int main() { HANDLE handle = NULL; DWORD version; DWORD result; WLAN_INTERFACE_INFO_LIST* pIfList = NULL; WLAN_INTERFACE_INFO* pIfInfo = NULL; // 获取WLAN API版本 result = WlanOpenHandle(2, NULL, &version, &handle); if (result != ERROR_SUCCESS) { printf("WlanOpenHandle failed with error %u\n", result); return 1; } // 获取无线网卡列表 result = WlanEnumInterfaces(handle, NULL, &pIfList); if (result != ERROR_SUCCESS) { printf("WlanEnumInterfaces failed with error %u\n", result); WlanCloseHandle(handle, NULL); return 1; } // 列出无线网卡名称和GUID for (DWORD i = 0; i < pIfList->dwNumberOfItems; i++) { pIfInfo = &pIfList->InterfaceInfo[i]; printf("Interface %u: %ws\n", i + 1, pIfInfo->strInterfaceDescription); printf("GUID: %ws\n", pIfInfo->InterfaceGuid); } // 释放资源 if (pIfList != NULL) { WlanFreeMemory(pIfList); pIfList = NULL; } WlanCloseHandle(handle, NULL); return 0; } ``` 这个示例代码使用了Wlanapi.h头文件中的WlanOpenHandle、WlanEnumInterfaces、WlanFreeMemory和WlanCloseHandle函数。如果WlanEnumInterfaces函数返回成功,则可以在WLAN_INTERFACE_INFO_LIST结构中找到所有无线网卡的信息,包括名称和GUID。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值