法律状态公告日
法律状态信息
法律状态
2017-11-28
授权
授权
2014-12-10
实质审查的生效 IPC(主分类):H04L29/08 申请日:20120613
实质审查的生效
2014-01-01
公开
公开
技术领域
本发明涉及计算机网络领域,尤其涉及一种支持双IP业务的NDIS驱动 方法和驱动系统。
背景技术
今天的互联网大多数应用的是IPv4协议,IPv4协议已经使用了20多年, 在这20多年的应用中,IPv4获得了巨大的成功,同时随着应用范围的扩大, 它也面临着越来越不容忽视的危机,例如地址匮乏等等。
20世纪90年代中期,互联网工程任务组(Internet Engineering Task Force, IETF)为了更好地满足互联网络的未来发展需求,设计了一种新的IP协 议——IPv6。IPv6与IPv4相比,在服务质量、传输安全、数据组播等方面都 有较大改进。
但是,由于目前使用IPv4协议的网络设备仍占多数,在未来一个较长时 间段内IPv4必然会和IPv6共存,直至IPv6最终完全取代IPv4。
驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机 中央处理器控制和使用硬件设备的特殊程序,相当于硬件的接口,操作系统 通过这个接口,控制硬件设备的工作。
图1为现有技术中用户界面(UI)通过驱动对硬件设备进行网络连接的 信令图。
S101用户界面(UI)向驱动发送OID联网指令;
在Win7及后续版本的Windows中,OS为UI提供了一个标准的连接管 理器(Connect Manager,CM)接口;UI通过CM接口向驱动发送的联网指令 遵照OID协议;
S102驱动默认将OID联网指令转换为IPv4联网指令,向硬件设备发送;
S103硬件设备向驱动返回IPv4联网响应指令;
S104驱动将该IPv4联网响应指令转换为OID联网响应指令发送至UI;
至此UI控制硬件设备联网流程结束;
S105UI向驱动发送OID断网指令;
S106驱动默认将OID断网指令转换为IPv4断网指令,向硬件设备发送;
S107硬件设备向驱动返回IPv4断网响应指令;
S108驱动将该IPv4断网响应指令转换为OID断网响应指令发送至UI;
至此UI控制硬件设备断网流程结束。
而对于IPv4和IPv6共存的过渡阶段,对驱动提出了一个新的要求:既 要支持IPV4业务,又要支持IPV6业务。如何实现驱动支持双IP业务,成为 本领域技术人员迫切需要解决的技术问题。
发明内容
本发明提供了一种支持双IP业务的NDIS驱动方法和驱动系统,以解决 如何实现NDIS驱动支持双IP业务的技术问题。
为解决上述技术问题,本发明提供了一种支持双IP业务的NDIS驱动方 法,所述方法包括:
接收来自用户界面的联网指令;
获取硬件设备的分组数据协议(PDP)配置;
根据所述PDP配置的不同,向所述硬件设备发送不同的联网操作指令: 当所述PDP配置为IPv4和IPv6时,将所述联网指令转换为硬件设备可识别 的IPv4联网指令和IPv6联网指令,依次将所述IPv4联网指令和IPv6联网指 令发送至所述硬件设备;
接收所述硬件设备发送的联网响应指令;
将接收到的来自硬件设备的联网响应指令转换为用户界面可识别的联网 响应指令发送至所述用户界面。
进一步地,所述当所述PDP配置为IPv4和IPv6时,将所述联网指令转 换为硬件设备可识别的IPv4联网指令和IPv6联网指令,依次将所述IPv4联 网指令和IPv6联网指令发送至所述硬件设备包括:
当所述PDP配置为IPv4和IPv6时,建立IPV4通道和IPV6通道;
将所述联网指令转换为硬件设备可识别的IPv4联网指令和IPv6联网指 令;
分别将所述IPV4通道和IPV6通道的标识作为所述IPv4联网指令和IPv6 联网指令携带的参数;
依次通过所述IPV4通道和IPV6通道分别将所述IPv4联网指令和IPV6 联网指令发送至所述硬件设备。
进一步地,所述方法还包括:
在接收所述硬件设备发送的联网响应指令后,保存硬件设备的联网状态;
待接收到来自用户界面的断网命令后,查询所述硬件设备的联网状态;
根据硬件设备的联网状态不同,向所述硬件设备发送不同的断网操作指 令:当所述硬件设备的联网状态为IPv4联网和IPv6联网时,将所述断网指令 转换为硬件设备可识别IPv4断网指令和IPv6断网指令,依次将所述IPv4断 网指令和IPv6断网指令发送至所述硬件设备;
接收所述硬件设备发送的断网响应指令;
更新保存的硬件联网状态;
将接收到的来自硬件设备的断网响应指令转换为用户界面可识别的断网 响应指令发送至所述用户界面。
进一步地,根据PDP配置的不同,向所述硬件设备发送不同的联网操作 指令还包括:
当所述PDP配置为IPv6时,将来自用户界面的联网指令转换为硬件设备 可识别的IPv6联网指令,将所述IPv6联网指令发送至所述硬件设备。
进一步地,所述方法还包括:
根据硬件设备的联网状态不同,向所述硬件设备发送不同的断网操作指 令还包括:当所述硬件设备的联网状态为IPv6联网时,将所述断网指令转换 为硬件设备可识的IPv6断网指令,将所述IPv6断网指令发送至所述硬件设 备。
为解决上述技术问题,本发明还提供了一种支持双IP业务的NDIS驱动 系统,所述系统包括用户界面通信模块、硬件设备数据获取模块以及硬件设 备通信模块,其中,
所述用户界面通信模块,用于接收来自用户界面的联网指令,并将所述 联网指令发送至所述硬件设备数据获取模块和所述硬件设备通信模块;以及 将来自硬件设备的联网响应指令转换为用户界面可识别的联网响应指令发送 至所述用户界面;
所述硬件设备数据获取模块,用于接收到所述联网指令后,获取硬件设 备的分组数据协议(PDP)配置,并将所述PDP配置发送至所述硬件设备通 信模块;
所述硬件设备通信模块,用于根据所述PDP配置的不同,向所述硬件设 备发送不同的联网操作指令:当所述PDP配置为IPv4和IPv6时,将所述联 网指令转换为硬件设备可识别的IPv4联网指令和IPv6联网指令,依次将所述 IPv4联网指令和IPv6联网指令发送至所述硬件设备;接收硬件设备发送的联 网响应指令;以及将所述联网响应指令发送至所述用户界面通信模块。
进一步地,所述硬件设备通信模块,用于当所述PDP配置为IPv4和IPv6 时,将所述联网指令转换为硬件设备可识别的IPv4联网指令和IPv6联网指 令,依次将所述IPv4联网指令和IPv6联网指令发送至所述硬件设备包括:
所述硬件设备通信模块,用于当所述PDP配置为IPv4和IPv6时,建立 IPV4通道和IPV6通道;将所述联网指令转换为硬件设备可识别的IPv4联网 指令和IPv6联网指令;分别将所述IPV4通道和IPV6通道的标识作为所述 IPv4联网指令和IPv6联网指令携带的参数;依次通过所述IPV4通道和IPV6 通道分别将所述IPv4联网指令和IPV6联网指令发送至所述硬件设备。
进一步地,
所述用户界面通信模块,还用于接收来自用户界面的断网命令,并将所 述断网指令发送至所述硬件设备通信模块;将接收到的来自所述硬件设备通 信模块的断网响应指令转换为用户界面可识别的断网响应指令发送至所述用 户界面;
所述硬件设备通信模块,还用于接收到硬件设备发送的联网响应指令后, 保存硬件设备的联网状态;以及接收到来自所述用户界面通信的断网指令后, 查询所述硬件设备的联网状态,根据硬件设备的联网状态不同,向所述硬件 设备发送不同的断网操作指令:当所述硬件设备的联网状态为IPv4联网和 IPv6联网时,将所述断网指令转换为硬件设备可识别IPv4断网指令和IPv6 断网指令,依次将所述IPv4断网指令和IPv6断网指令发送至所述硬件设备; 接收所述硬件设备发送的断网响应指令;根据所述断网响应指令,更新保存 的硬件联网状态;以及将所述断网响应指令发送至所述用户界面通信模块。
进一步地,
所述硬件设备通信模块,还用于当所述PDP配置为IPv6时,将来自用户 界面的联网指令转换为硬件设备可识别的IPv6联网指令,将所述IPv6联网指 令发送至所述硬件设备。
进一步地,
所述硬件设备通信模块,还用于当所述硬件设备的联网状态为IPv6联网 时,将所述断网指令转换为硬件设备可识的IPv6断网指令,将所述IPv6断网 指令发送至所述硬件设备。
上述技术方案不仅实现了驱动同时支持双IP业务;同时驱动还能根据硬 件设备的PDP配置,灵活选择支持的IP业务。
附图说明
图1为现有技术中用户界面(UI)通过NDIS驱动对硬件设备进行网络 连接的信令图;
图2为本实施例的一种支持双IP业务的NDIS驱动方法流程图;
图3为win7的NDIS6.2及win8下用户界面对硬件设备进行联网/断网控 制的流程图;
图4为本实施例的一种支持双IP业务的NDIS驱动系统组成模块图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图 对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申 请中的实施例及实施例中的特征可以相互任意组合。
图2为本实施例的一种支持双IP业务的NDIS驱动方法流程图。
S201接收来自用户界面的联网指令;
S202获取硬件设备的PDP配置;
S203根据PDP配置的不同,向所述硬件设备发送不同的联网操作指令: 当所述PDP配置为IPv4和IPv6时,将所述联网指令转换为硬件设备可识别 的IPv4联网指令和IPv6联网指令,依次将所述IPv4联网指令和IPv6联网指 令发送至所述硬件设备;
驱动在获知硬件设备的PDP配置为IPv4和IPv6时,可建立IPV4通道和 IPV6通道;再将所述联网指令转换为硬件设备可识别的IPv4联网指令和IPv6 联网指令后,可分别将所述IPV4通道和IPV6通道的标识作为所述IPv4联网 指令和IPv6联网指令携带的参数;再依次通过所述IPV4通道和IPV6通道分 别将所述IPv4联网指令和IPV6联网指令发送至所述硬件设备;
上述硬件设备的PDP配置还可以仅为IPv6,此时可将来自用户界面的联 网指令转换为硬件设备可识别的IPv6联网指令,将所述IPv6联网指令发送至 所述硬件设备;
S204接收所述硬件设备发送的联网响应指令;
该响应指令中可包含上述通道标识;
驱动可在接收所述硬件设备发送的联网响应指令后,保存硬件设备的联 网状态;
S205将接收到的来自硬件设备的联网响应指令转换为用户界面可识别的 联网响应指令发送至所述用户界面;
上述实施例中,来自硬件设备的联网响应指令和断网响应指令可通过驱 动与硬件设备通信的USB接口层发送的“IRP_MJ_DEVICE_CONTROL”请 求获得;获得到来自硬件设备的响应指令后,通过分析该响应指令携带的通 道标识对该响应指令分类,将携带IPV6通道标识的响应指令发送至IPV6通 道处理,将携带IPV4通道标识的响应指令发送至IPV4通道处理;将经过通 道处理后的响应指令通过主动上报函数NdisMIndicateStatusComplete发送至 用户界面。
在本实施例中,驱动还可接收来自用户界面的断网命令:
当接收到来自用户界面的断网命令后,驱动可查询保存的硬件设备的联 网状态;
根据硬件设备的联网状态不同,向所述硬件设备发送不同的断网操作指 令:当所述硬件设备的联网状态为IPv4联网和IPv6联网时,将所述断网指令 转换为硬件设备可识别IPv4断网指令和IPv6断网指令,依次将所述IPv4断 网指令和IPv6断网指令发送至所述硬件设备;当所述硬件设备的联网状态为 IPv6联网时,将所述断网指令转换为硬件设备可识的IPv6断网指令,将所述 IPv6断网指令发送至所述硬件设备;
接收所述硬件设备发送的断网响应指令;
更新保存的硬件联网状态;
将接收到的来自硬件设备的断网响应指令转换为用户界面可识别的断网 响应指令发送至所述用户界面。
上述驱动向硬件设备发送断网指令的步骤与向硬件设备发送联网指令的 实施过程类似,此处不再累述;
下面以一个具体的应用示例对上述实施例进行进一步详细说明。
图3为win7的NDIS6.2及win8下用户界面对硬件设备进行联网/断网控 制的流程图。
S301驱动收到来自用户界面发送的OID_WWAN_CONNECT指令;
S302驱动根据该指令包含的“联网”、“断网”参数,确定该指令是联 网指令还是断网指令,如果是联网指令,执行步骤S303;如果是断网指令,执 行步骤S310;
如,该指令定义为:
S303驱动向硬件设备发送PDP查询消息;
S304接收来自硬件设备的查询结果,判断硬件设备的PDP类型,如果 PDP类型是PDP-IPv4,执行步骤S305;如果PDP类型是PDP-IPv6,执行步骤 S307;如果PDP类型是PDP-IPv4v6,依次执行步骤S305和步骤S307;
S305向硬件设备发送IPv4联网指令;
S306处理来自硬件设备的IPv4联网响应指令,并保存联网状态,执行 步骤S309;
S307向硬件设备发送IPv6联网指令;
S308处理来自硬件设备的IPv4联网响应指令,并保存联网状态,执行步 骤S309;
S309联网流程结束。
S310获取当前的联网状态;
S311如果当前的联网状态为IPv4联网,执行步骤S312;如果当前的联 网状态为IPv6联网,执行步骤S314;如果当前的联网状态为IPv4联网和IPv6 联网,依次执行步骤S312和步骤S314;
S312向硬件设备发送IPv4断网指令;
S313处理来自硬件设备的IPv4断网响应指令,并更新联网状态,执行 步骤S316;
S314向硬件设备发送IPv6断网指令;
S315处理来自硬件设备的IPv6断网响应指令,并更新联网状态,执行 步骤S316;
S316断网流程结束。
图4为本实施例的一种支持双IP业务的NDIS驱动系统组成模块图。
该系统包括用户界面通信模块、硬件设备数据获取模块以及硬件设备通 信模块,其中:
用户界面通信模块,用于接收来自用户界面的联网指令,并将所述联网 指令发送至所述硬件设备数据获取模块和所述硬件设备通信模块;以及将来 自硬件设备的联网响应指令转换为用户界面可识别的联网响应指令发送至所 述用户界面;
硬件设备数据获取模块,用于接收到所述联网指令后,获取硬件设备的 分组数据协议(PDP)配置,并将所述PDP配置发送至所述硬件设备通信模 块;
硬件设备通信模块,用于根据所述PDP配置的不同,向所述硬件设备发 送不同的联网操作指令:当所述PDP配置为IPv4和IPv6时,将所述联网指 令转换为硬件设备可识别的IPv4联网指令和IPv6联网指令,依次将所述IPv4 联网指令和IPv6联网指令发送至所述硬件设备;接收硬件设备发送的联网响 应指令;以及将所述联网响应指令发送至所述用户界面通信模块;
该硬件设备通信模块,用于当所述PDP配置为IPv4和IPv6时,建立IPV4 通道和IPV6通道;将所述联网指令转换为硬件设备可识别的IPv4联网指令 和IPv6联网指令;分别将所述IPV4通道和IPV6通道的标识作为所述IPv4 联网指令和IPv6联网指令携带的参数;依次通过所述IPV4通道和IPV6通道 分别将所述IPv4联网指令和IPV6联网指令发送至所述硬件设备;
如果上述PDP配置仅为IPv6时,硬件设备通信模块也可将来自用户界面 的联网指令转换为硬件设备可识别的IPv6联网指令,将所述IPv6联网指令发 送至所述硬件设备;
上述实施例中,用户界面通信模块,还用于接收来自用户界面的断网命 令,并将所述断网指令发送至所述硬件设备通信模块;将接收到的来自所述 硬件设备通信模块的断网响应指令转换为用户界面可识别的断网响应指令发 送至所述用户界面;
硬件设备通信模块,还用于接收到硬件设备发送的联网响应指令后,保 存硬件设备的联网状态;以及接收到来自所述用户界面通信的断网指令后, 查询所述硬件设备的联网状态,根据硬件设备的联网状态不同,向所述硬件 设备发送不同的断网操作指令:当所述硬件设备的联网状态为IPv4联网和 IPv6联网时,将所述断网指令转换为硬件设备可识别IPv4断网指令和IPv6 断网指令,依次将所述IPv4断网指令和IPv6断网指令发送至所述硬件设备; 接收所述硬件设备发送的断网响应指令;根据所述断网响应指令,更新保存 的硬件联网状态;以及将所述断网响应指令发送至所述用户界面通信模块。
当所述硬件设备的联网状态仅为IPv6联网时,硬件设备通信模块将所述 断网指令转换为硬件设备可识的IPv6断网指令,将所述IPv6断网指令发送至 所述硬件设备。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序 来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读 存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用 硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任 何特定形式的硬件和软件的结合。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及 其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变 和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范 围。
机译: 至少要在一个下雪装置上进行驱动的驱动系统,一种具有这种驱动系统的下雪装置,用于安装这种驱动系统的套件,一种用于安装这种驱动系统的方法以及一种用于驱动该系统的方法驾驶系统组件或零件的制造
机译: 至少要在一个雪拆卸设备上进行一次驱动的驱动系统,一种具有这种驱动系统的雪拆卸设备,用于安装这种驱动系统的工具包,一种用于安装这种驱动系统的方法以及一种制造方法驾驶系统零件或零件
机译: 用于驱动至少一个减雪拆卸装置的螺旋钻的驱动系统,提供具有这种驱动系统的雪移除装置,用于安装这种驱动系统的套件,一种用于安装这种驱动系统的方法和用于制造的方法 驾驶系统的组件或部分