•1.不同的网络之间什么时候做切换,如何断开当前的连接(做那些操作停止当前的连接)以及如何关联、连接一个新的网络,调用了那些windows定义的函数来完成。
•2.数据处理,就是缓冲的数据如何组织。当没有数据发送的时候,数据结构如何,以及当在一个特定的时间内无法完全发送packets,该做如何处理。
•3.当一个被挂起的连接重新被激活(active)的时候,怎么样知道当前的连接有多少数据需要发送,怎么发送和接收。
第六周:老师突然叫我把virtualWiFi的build环境从DDK转移到WDK,sdk也从for server2003 换成for server2008.当然编译的时候好多错误了,大部分原因在于头文件的定义不同了。具体原因不想多说了。
第七周:也就是目前的工作,回到原来的环境更改关于Buffer部分的代码,实现无线无缝传输,就是在remove network的时候,确保那个连接的数据发送完毕才能断开连接,而原来的程序只是直接断开连接,所以这是我论文的重点工作,还有就是更改缓冲区的算法。
目前做到的就是判断在接受remove network指令后,代码的执行顺序,两个方面,一方面是硬件上的,需要断开连接,另外一个方面是软件上的,也就是驱动该做的,必须停止那个连接的服务,然后发送一个事件给service server重新计算当前有多少个网络连接,每个网络连接的名字,类型、停留和转换事件等。这样就移除掉了一个网络。可是要是现无缝的连接,我还真的不知道往那方面入手,因为毕竟都要从硬件软件两个方面考虑。自己倒是有一个idea,就是为每个连接添加一个属性比如 boolean Flag_To_Be_Remove,一旦系统得知要移除SSID的网络,把那个网络的Flag_To_Be_Remove值设置为true,然后 deriver每次检查每个连接的active的值时,也检查Flag_To_Be_Remove值,一旦为ture,当它的缓冲区为空的时候,就移除掉该连接。想法而已,实现起来应该很困难的,因为整个驱动程序都设接到了那个struct.
算是一个总结。继续努力吧,无论如何,都不能放弃。