控制设备耦接至主计算机的方法技术

技术编号:11387995 阅读:144 留言:0更新日期:2015-05-02 00:10
本发明专利技术提供一种控制设备耦接至主计算机的方法,包括:在所述主计算机的操作系统的核心空间提供第一驱动器堆栈,其中所述第一驱动器堆栈包括虚拟总线,由所述虚拟总线创建并耦接至所述虚拟总线的物理设备对象,以及耦接至所述物理设备对象的第一设备驱动器,以与位于所述操作系统的用户空间中的用户应用交互;以及在所述操作系统的所处核心空间提供第二驱动器堆栈,其中所述第二驱动器堆栈包括功能驱动器和用于所述设备的第二设备驱动器,以与所述设备交互,其中所述功能驱动器耦接至所述第一驱动器堆栈,所述第二设备驱动器耦接至所述功能驱动器。通过利用本发明专利技术,可减小主计算机和设备的电力损耗。

【技术实现步骤摘要】
控制设备耦接至主计算机的方法
本专利技术有关于实现设备选择性暂停的方法与相关程序,尤其有关于实现通用串行总线(UniversalSerialBus,USB)设备选择性暂停的双堆栈(dual-stack)驱动器架构。
技术介绍
在计算机系统中,诸如USB设备的设备越来越普遍。因此,计算机软件操作系统(OperatingSystem,OS)程序一般包括驱动器,以通过计算机系统的输入输出(input/output,I/O)端口与USB设备接口相连。很多得到广泛应用的计算机OS程序(如微软公司(Microsoft)开发的WindowsTMNT)通常具有两个主要组件:用来处理用户应用的用户组件、用来将用户应用和在硬件完成的实际数据处理相桥接的核心组件。核心组件一般管理系统资源,在硬件组件和软件组件之间进行通信,并通常为系统资源(特别是处理器和I/O设备)提供低阶抽象层(low-levelabstractionlayer)以使应用软件必须控制执行自身的功能。核心组件也可以通过进程间通信(inter-processcommunication,IPC)机制与系统呼叫(systemcall),使上述系统资源对应用进程可用。在这种OS程序与设备的连接中,OS程序通常将虚拟内存(virtualmemory)分隔为用户空间和核心空间,其中用户空间用来记忆用户应用,核心空间用来运行核心、核心扩充以及记忆大部分设备驱动器。其中一些上述设备驱动器包括网络驱动器接口规格(NetworkDriverInterfaceSpecification,NDIS)迷你端口(miniport)驱动器,其中NDIS迷你端口驱动器使用窗口驱动器模型(WindowsDriverModel,WDM)或窗口驱动器基础(WindowsDriverFoundation,WDF)(也被称为NDIS/WDM/WDF驱动器)。请参照图1,图1是传统驱动器架构的示意图。上述传统驱动器架构包括具有应用10的用户空间,以及具有NDIS迷你端口驱动器20、USB驱动器堆栈40的核心空间。其中核心空间与硬件USB网络设备50接口相连。在上述架构中,WDM/WDF驱动器位于迷你端口驱动器的同一个驱动器堆栈(driverstack)中。然而在一些如WindowsTMXP和WindowsTMVista这样的OS程序中,并不允许NDIS迷你端口驱动器使用USB选择性暂停机制。这是因为,在如WindowsTMXP和WindowsTMVista这样的OS程序中,只有电力政策持有者(即功能驱动器)才可发出电力I/O要求封包(I/ORequestPacket,IRP)来暂停USB网络设备。但是在图1所示的驱动器架构中,NDIS迷你端口驱动器也是功能驱动器,而OS却并不允许它发出电力IRP。这是存在问题的,因为当网络设备处于未连接状态时,通常需要选择性暂停一个或多个USB网络设备来节约主计算机和网络设备的电力损耗。而OS这种限制/限定的不协调阻止了USB网络设备进入暂停模式,但USB网络设备进入暂停模式时,恰恰能减小主计算机和网络设备的电力损耗。而且,USB网络设备进入暂停模式后,有些如WindowsTMXP和WindowsTMVista这样的OS并不允许用户应用直接存取设备。这也是存在问题的,因为用户应用通常需要直接存取暂停的USB网络设备(来直接“唤醒”或使用它),而OS的限制/限定阻止了用户应用直接存取处于暂停状态且不能被用户应用直接唤醒的USB网络设备。尽管NDIS迷你端口驱动器作为实施例讨论如上,这些问题也同样存在于其他类型的驱动器中。因此,需要提供一种允许USB或I/O设备实现选择性暂停(来减小主计算机和设备的电力损耗),并允许用户应用直接存取暂停的USB或I/O设备的驱动器架构。
技术实现思路
有鉴于此,本专利技术提供一种控制设备耦接至主计算机的方法,包括:在所述主计算机的操作系统的核心空间提供第一驱动器堆栈,其中所述第一驱动器堆栈包括虚拟总线,由所述虚拟总线创建并耦接至所述虚拟总线的物理设备对象,以及耦接至所述物理设备对象的第一设备驱动器,以与位于所述操作系统的用户空间中的用户应用交互;以及在所述操作系统的所处核心空间提供第二驱动器堆栈,其中所述第二驱动器堆栈包括功能驱动器和用于所述设备的第二设备驱动器,以与所述设备交互,其中所述功能驱动器耦接至所述第一驱动器堆栈,所述第二设备驱动器耦接至所述功能驱动器,所述第二驱动器堆栈在所述第一驱动器堆栈和所述设备之间传送数据,且所述功能驱动器发出命令给所述第二设备驱动器,以选择性暂停所述设备;其中,所述第一驱动器堆栈和所述第二驱动器堆栈不同,所述第一设备驱动器和所述功能驱动器不同。通过利用本专利技术,可减小主计算机和设备的电力损耗。附图说明图1是传统驱动器架构的示意图。图2是根据本专利技术实施例的双堆栈驱动器架构示意图,图解了USB网络设备的选择性暂停。图3是根据本专利技术实施例的双堆栈驱动器架构示意图,图解了USB网络设备的直接回复。图4是根据本专利技术实施例的双堆栈驱动器架构示意图,图解了USB网络设备的远程唤醒。图5是根据本专利技术实施例的双堆栈驱动器架构示意图,图解了USB网络设备的第一次插入。图6是根据本专利技术实施例的双堆栈驱动器架构示意图,图解了USB网络设备第一次插入后的后续插入。图7是根据本专利技术实施例的双堆栈驱动器架构示意图,图解了对USB网络设备状态的监测。图8是实现本专利技术方法的计算机系统的示范性方块示意图。图9是根据本专利技术另一实施例的双堆栈驱动器架构的示意图。具体实施方式以下描述是本专利技术实施的较佳实施例。以下实施例仅用来例举阐释本专利技术的技术特征,并非用来限制本专利技术的范畴。本专利技术范围由前述权利要求所限定。在权利要求书及说明书当中使用了某些词汇来指称特定的元件。所属领域中的普通技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本专利技术的权利要求书及说明书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及后续的请求项当中所提及的“包含”或“包括”为开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其它装置或连接手段间接地电气连接至该第二装置。请参照图2,图2是根据本专利技术实施例的双堆栈驱动器架构的示意图,图解了USB网络设备的选择性暂停。本专利技术中的双堆栈驱动器包括具有应用110的用户空间,以及具有NDIS迷你端口驱动器120、WDM/WDF驱动器130和USB驱动器堆栈140的核心空间,其中所述核心空间与硬件USB网络设备150交互。本专利技术的架构是一种双堆栈架构,即有两个位于不同驱动器堆栈的网络设备驱动器一起工作,以控制USB网络设备并执行USB暂停操作。在本专利技术中,核心空间中的NDIS迷你端口驱动器120(即初始驱动器)是中间驱动器,也是与用户空间中的用户应用交互的位于第一驱动器堆栈的“虚拟”设备。而核心空间中的WDM/WDF驱动器130是与物理设备(即USB网络设备150)交互的位于第二驱动器堆栈的功能驱动器。当WDM/WDF驱动器与位于USB驱动器本文档来自技高网
...
控制设备耦接至主计算机的方法

【技术保护点】
一种控制设备耦接至主计算机的方法,包括:在所述主计算机的操作系统的核心空间提供第一驱动器堆栈,其中所述第一驱动器堆栈包括虚拟总线,由所述虚拟总线创建并耦接至所述虚拟总线的物理设备对象,以及耦接至所述物理设备对象的第一设备驱动器,以与位于所述操作系统的用户空间中的用户应用交互;以及在所述操作系统的所处核心空间提供第二驱动器堆栈,其中所述第二驱动器堆栈包括功能驱动器和用于所述设备的第二设备驱动器,以与所述设备交互,其中所述功能驱动器耦接至所述第一驱动器堆栈,所述第二设备驱动器耦接至所述功能驱动器,所述第二驱动器堆栈将来自所述第一驱动器堆栈的所述虚拟总线的数据传送给所述设备,且所述功能驱动器发出命令给所述第二设备驱动器,以选择性暂停所述设备;其中,所述第一驱动器堆栈和所述第二驱动器堆栈不同,所述第一设备驱动器和所述功能驱动器不同。

【技术特征摘要】
2013.10.11 US 14/052,3061.一种控制设备耦接至主计算机的方法,包括:在所述主计算机的操作系统的核心空间提供第一驱动器堆栈,其中所述第一驱动器堆栈包括虚拟总线,由所述虚拟总线创建并耦接至所述虚拟总线的物理设备对象,以及耦接至所述物理设备对象的第一设备驱动器,以与位于所述操作系统的用户空间中的用户应用交互;以及在所述操作系统的所处核心空间提供第二驱动器堆栈,其中所述第二驱动器堆栈包括功能驱动器和用于所述设备的第二设备驱动器,以与所述设备交互,其中所述功能驱动器耦接至所述第一驱动器堆栈,所述第二设备驱动器耦接至所述功能驱动器,所述第二驱动器堆栈在所述第一驱动器堆栈和所述设备之间传送数据...

【专利技术属性】
技术研发人员:徐英哲黄文俊蔡昂叡
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1