阅读:1300回复:0
NDIS应用问题
我用NDISUIO连一个AP, 用IOCTL_NDISUIO_REQUEST_NOTIFICATION来判断是否连上,做associate之后收到CONNECT EVENT,但实际上并没有连上AP,检查发送的数据包,发现在发送ASSOCIATE包之后收到AP返回的ACK包,但紧接着就发送一个DE-AUTHENTICATION包给AP,所以实际上在和AP连接之后马上就中断连接,但我不知道为什么在收到AP返回的ACK包之后,NDIS会中断连接,然后发出一个DE-AUTHECTICAITION包。请各位大侠帮忙!!!我把代码发在下面
HANDLE hDevice = CreateFile( NDISUIO_DEVICE_NAME, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); if (hDevice == INVALID_HANDLE_VALUE) { DWORD dwError = GetLastError(); return -1; } if (!Disassociate(hDevice, pszAdapter)) { CloseHandle(hDevice); return -1; } if (!SetInfrastructureMode(hDevice, pszAdapter, Ndis802_11Infrastructure)) { CloseHandle(hDevice); return -1; } if (!SetAuthenticationMode(hDevice, pszAdapter, authMode)) { CloseHandle(hDevice); return -1; } if (!SetEncryptionStatus(hDevice, pszAdapter, Ndis802_11Encryption1Enabled)) { CloseHandle(hDevice); return -1; } if (!SetSsid(hDevice, pszAdapter, pszSsid)) { CloseHandle(hDevice); return -1; } if (!WaitForMediaConnectNotification(hDevice, pszAdapter, timeout)) { Disassociate(hDevice, pszAdapter); CloseHandle(hDevice); return -1; } |
|