专业网站设计推荐,网站建设策,建站平台费用,活动营销策划方案最近在搞wifi上网#xff0c;看了些这方面的资料#xff0c;稍微总结点东西#xff1a;#xff09; DeviceIoControl和底层通信#xff1a; 方法1 #xff1a;把第二个参数设为IOCTL_NDIS_REBIND_ADAPTER。 方法2 #xff1a;把第二个参数设为IOCTL_NDIS_UNBIND_ADAPTER… 最近在搞wifi上网看了些这方面的资料稍微总结点东西 DeviceIoControl和底层通信 方法1 把第二个参数设为IOCTL_NDIS_REBIND_ADAPTER。 方法2 把第二个参数设为IOCTL_NDIS_UNBIND_ADAPTER然后再IOCTL_NDIS_BIND_ADAPTER。 获取设备的句柄 hNdis CreateFile(DD_NDIS_DEVICE_NAME, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, 0, NULL); note: 用DeviceIoControl后面第二个参数带IOCTL_NDIS_GET_ADAPTER_NAMES的话很容易获取到网卡的名字可以用来遍历网卡。如果照我所说的方法编译出现问题你可能没包含ntddndis.h这个头文件。 BOOL DoNdisIOControl(DWORD dwCommand, LPVOID pInBuffer, DWORD cbInBuffer, LPVOID pOutBuffer, DWORD * pcbOutBuffer) { HANDLE hNdis; BOOL fResult FALSE; hNdis CreateFile(DD_NDIS_DEVICE_NAME, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, 0, NULL); if (INVALID_HANDLE_VALUE ! hNdis) { fResult DeviceIoControl(hNdis, dwCommand, pInBuffer, cbInBuffer, pOutBuffer, (pcbOutBuffer ? *pcbOutBuffer : 0), pcbOutBuffer, NULL); CloseHandle(hNdis); } return fResult; }