用于多功能设备枚举的系统和方法

文档序号:6348703阅读:183来源:国知局
专利名称:用于多功能设备枚举的系统和方法
技术领域
本发明涉及计算机系统领域,更具体地,涉及在主机系统上枚举多功能外围或嵌入式设备中的各种功能单元的系统和方法。
背景技术
由于设备制造商期望通过向外围设备添加各种功能单元以增加其产品的价值和附加性能,因此多功能外围和嵌入式设备变得日益流行。许多这种多功能设备通过单个物理接口来展露它们的各种功能单位,其中该单个物理接口支持在设备枚举期间由主机将描述符或配置表读出设备的性能。具有这些能力的设备接口的一些实例包括USB和Fire ffire(IEEE1394)。外围设备的描述符或配置表通常包含对于主机要确定必须加载哪个驱动程序以枚举、展露和控制外围设备的每个功能单元所必需的信息。通常,设备的非类属功能单元需要特有的一组销售商专有和/或主操作系统(OS)本机驱动程序(driver)、与同父多功能设备的一个或多个其它功能共享驱动程序,或是这两者的组合。当这些多功能设备在主机中被枚举时,它们通常被配置为同时枚举设备的每个功能单元。然而,有时也可能期望只向主机展露设备中一个或多个功能单元而不是全部功能单元。因此,存在着对于以下机制的需求该机制对多功能设备的功能单元展露至主机并在主机上被枚举的顺序进行控制。

发明内容
公开了对于多功能外围设备在主机上的枚举进行控制的系统和方法。在一个示意性实施方式中,多功能外围设备可以包括连接到主机接口的类属以及非类属功能单元。设备可以在其非易失性存储器中存储用于非类属功能单元的一个或多个驱动程序。外围设备可以进一步包括控制器,用于控制类属以及非类属功能单元展露至主机并在其上枚举的顺序。该控制器可以包括可操作地接通和切断类属以及非类属功能单元的开关,从而控制这些单元展露和枚举的顺序。该开关可以包括自动开关或手动操作开关。在一个示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括将外围设备连接到主机系统。该方法进一步包括将外围设备的类属功能单元展露至主机并在其上进行枚举。然后,定位(locate,查找出)用于外围设备的非类属功能单元的驱动程序。该方法进一步包括将非类属功能单元展露至主机并在其上枚举。在一个示意性实施方式中,展露类属功能单元包括切断外围设备的非类属功能单元。在另一示意性实施方式中,展露非类属功能单元包括切断外围设备的类属功能单元。在另一示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括切断外围设备的非类属功能单元以及接通外围设备的类属功能单元。该方法进一步包括在主机上枚举类属功能单元,并且在主机上加载用于非
5类属功能单元的驱动程序。该方法进一步包括接通外围设备的非类属功能单元并在主机系统上枚举非类属功能单元。在一个示意性实施方式中,枚举非类属功能单元包括重置以及重新枚举外围设备的类属功能单元。在另一示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括将外围设备的类属功能单元向主机展露并将其在主机上枚举。该方法进一步包括向主机系统提供可操作地在主机系统上定位并加载用于外围设备的非类属功能单元的设备驱动程序的瘦驱动程序(thin driver) 0该方法进一步包括将非类属功能单元向主机系统展露并将其枚举在主机系统上。该方法进一步包括安装用于非类属功能单元的驱动程序。此外,在另一示意性实施方式中,用于将具有类属功能单元和非类属功能单元的多功能外围设备在主机上枚举的方法包括检测连接的外围设备的、经展露的类属功能单元并枚举检测到的类属功能单元。该方法进一步包括加载可操作地在主机系统上定位并加载用于外围设备的非类属功能单元的设备驱动程序的瘦驱动程序。该方法进一步包括 检测连接的设备的、经展露的非类属功能单元并将该经展露的非类属功能单元枚举在主机上。该方法进一步包括安装用于被枚举的非类属功能单元的设备驱动程序。所公开的系统和方法使多功能外围设备在初始的设备枚举处理期间、在设备确定是否展露非类属功能单元之前,能够确定所有所需设备驱动程序是否存在于主机的系统存储器中,因此缩短了在外围设备连接到主机之后初始化外围设备所需的时间,从而增强了整体设备枚举的用户体验。根据附图和以下示意性实施方式的详细描述,本发明的其他优势对于本领域技术人员而言是显而易见的。


通过参考以下描述以及用于阐明本发明实施方式的附图可以充分地理解本发明。附图中图1是主机系统的一个示意性实施方式的示图。图2是外围设备的一个示意性实施方式的示图。图3A至图3C是切换机制的示意性实施方式的示图。图4至图6是枚举处理的示意性实施方式的流程图。
具体实施例方式图1所示的计算机系统100的一个示意性实施方式包括主机105以及多个多功能外围或嵌入式设备110A、110B、110C。主机105可以包括,但不限于台式计算机、服务器计算机、移动计算机、个人数字助理(PDA)、蜂窝电话、网络路由器、无线接入点、游戏机或其它类型的数据处理设备。设备110A、110B、110C中的一个或多个可以包括,但不限于内部或外部调制解调器、打印机、诸如磁盘和闪存驱动的存储设备、扫描仪、麦克风、扬声器、照相机、PCI扩展卡以及扩展主机105功能的其它类型设备。在一个示意性实施方式中,主机105可以包括处理设备115、系统存储器120以及将处理设备115与系统存储器120互连的系统总线125。系统总线125可以包括,但不限于16位、32位、64位或其它类型的平行连接器。主机105可以进一步包括将主机105与
6其外围设备11(^、11( 、110(互连的一个或多个输入/输出总线130A、130B、130C。I/O总线可以包括但不限于PCI、PCI扩展、USB、ISA、AGP、串行ΑΤΑ、以太网、ΙΕΕΕ1394以及其它类型的通信接口。计算机105的处理设备115被配置为解释各种计算机程序、运行应用程序、以及将数据和指令导入诸如系统存储器120和外围/嵌入式设备110Α、110B、1 IOC的其它设备或从这些其它设备中导出数据和指令。在一个示意性实施方式中,处理设备115可以包括通用处理器,诸如英特尔双核(Intel Dual-Core )或奔腾(Pentium )处理器、AMD炫龙 (Turion ) 64位处理器或其它类型的微处理器。在另一示意性实施方式中,处理设备115可以包括特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)和其它类型的客户定制电路。系统存储器120可以包括,但不限于随机存储器(RAM)、只读存储器(ROM)、可编辑ROM(PROM)、可擦除PROM(EPROM)、FLASH-EPR0M以及其它类型的动态、易失和非易失信息存储介质。在一个示意性实施方式中,系统存储器120可以存储操作系统(OS) 135,诸如 Windows Vista > Unix、Linux或其它类型OS。系统存储器120还可以存储一个或多个设备驱动程序145,它包括允许主机105与外围或嵌入式设备110A、110B、110C或者可以连接到主机105的其它设备的一个或多个功能单元进行通信的程序子例程。图2描述了多功能外围设备210的一个示意性实施方式。本文所使用的术语“外围设备”还包括嵌入主机系统的设备。设备210可以包括1/0通信接口 215,诸如PCI、PCI 扩展、USB、ISA、AGP、串行ATA、以太网、IEEE1394或用于与主机205的对应1/0总线进行通信的其它类型的有线或无线接口。多功能设备210可以包括数个功能单元,诸如类属功能单元220和非类属功能单元230。类属功能单元220通常是由主机205的OS本机支持的功能单元。这种类属功能单元可以包括大容量存储、输入/输出、音频/视频和其它功能。非类属功能单元230提供不由主机205的OS本机支持的销售商专有功能,诸如光学扫描、游戏功能、TV调谐和其它功能。在一个示意性实施方式中,多功能外围设备可以包括存储器240,诸如RAM、ROM、 PR0M、EPR0M、FLASH_EPR0M和其它类型的动态、易失性和非易失性信息存储介质。在一个示意性实施方式中,存储器240可由功能单元220和230共享。可替换地,每个功能单元可以具有其自己的存储器240专用部分。在一个示意性实施方式中,存储器240可以用来存储设备驱动程序M5A和M5B、安装器应用程序255以及其他事项。设备驱动程序M5A、245B 包括允许主机205与设备210的一个或多个功能单元通信的程序子例程。安装器应用程序 255实现设备驱动程序M5A、245B在主机系统上的安装。在一个示意性实施方式中,设备驱动程序M5A可以与类属功能单元220关联,设备驱动程序M5B可以与非类属功能单元230关联。例如,实现音频和游戏端口性能的附加声卡可能作为两个对于主机205独立的设备出现。在一个示意性实施方式中,由功能单元 220提供的类属音频功能可以由音频驱动程序M5A支持。可替换地,类属音频功能可能由主机205利用存储在主机存储器120中的本机驱动程序145来本机支持。由功能单元230 提供的非类属游戏功能可以由游戏端口驱动程序M5B支持。在另一示意性实施方式中,驱动程序M5A、245B可以与非类属功能单元230关联。 例如,非类属功能单元230可能需要数个OS专用驱动程序,从而允许设备210与运行不同
7操作系统的主机205通信。例如,驱动程序M5A可以提供允许非类属功能单元230与运行微软Windows 操作系统的主机205进行操作的程序子例程,以及驱动程序M5B可以提供允许非类属功能单元230与运行Mac OS、Unix或其它操作系统的主机205进行操作的程序子例程。本领域技术人员会认识到存在着功能单元可能需要数个不同驱动程序的其它情况。首先,在多功能外围或嵌入式设备210连接到主机205时,主机205的操作系统通常试图枚举连接的设备中所有独立功能单元。在枚举处理期间,OS 135可以识别连接的设备中一个或多个功能单元,载入相应的设备驱动程序、分配所需系统资源以及执行其它设备初始化服务。对于类属功能单元220,OS 135可以载入通常存储在主机205的系统存储器120中的本机驱动程序145。对于非类属功能单元230来说,OS 135可以载入销售商专有驱动程序M5A、245B,该驱动程序可以由非类属功能单元230提供、可以从安装CD中获得或经由互联网从设备制造商的服务器下载。在将驱动程序安装在主机205期间,类属功能单元220有时可以自动安装用于一个或多个非类属功能单元230的销售商专有或非OS本机驱动程序。一个实例为,当在主机 205上执行时,类属USB大容量存储功能单元(其通常展露安装器应用程序25 可以预加载用于一些非类属功能单元230的所需驱动程序。然而,在一些实例中,在安装类属功能单元期间,当展露一个或多个非类属功能单元230时,设备210可能不具有支持这些单元的能力。这可能引起致命的异常、性能问题和/或不期望的用户体验。在这种情况下,期望抑制一些非类属功能单元的枚举,但仍枚举多功能设备210的其它功能。为此,在一个示意性实施方式中,多功能设备210可以包括控制各种功能单元操作的功能单元控制器225。更具体地,控制器225可以控制功能单元220和230在主机205 上的枚举。例如,控制器225可以控制在设备枚举处理期间,设备接口描述符或配置表向主机205展露的顺序。在一个示意性实施方式中,控制器225可以包括,但不限于通用处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)和其它类型的软件实现控制逻辑或硬件实现控制逻辑。在一个示意性实施方式中,控制器225可以包括功能单元切换机制,它可以实现为2-路、3-路或N-路开关,其中N取决于设备210的功能单元的数量以及可以操作这些单元的组合。在一个示意性实施方式中,切换机制可操作地选择一个或多个预定义的设备接口描述符或配置表以在设备枚举处理期间向主机205展露。在另一示意性实施方式中,切换机制可操作地选择被展露的功能单元的、通过设备接口描述符或配置表报告给主机205 的一个或多个属性。切换机制可以由几种不同方式实现。在一个示意性实施方式中,切换机制可以实现为用户可用的物理开关,从而用户能拨动开关以选择通过单个设备接口 215要在主机 205上枚举的功能单元。在另一示意性实施方式中,切换机制能够以作为设备安装程序一部分的软件来实现,这样用户能够通过GUI选择在设备安装期间要被枚举在主机205上的一个或多个功能单元。然而,在另一示意性实施方式中,切换机制可以由主机205驱动,正如将在本文描述的。本领域技术人员可以认识到存在实现用于多功能设备210的切换机制的其它方式。图3A、图;3B和图3C描绘了使用上述切换机制的设备枚举处理的数个示意性实施
8方式。切换机制可以实现为物理(或基于软件的)3-路开关235。该开关可以暴露于设备 210外部,并且其适于用户通过物理或基于软件的图形用户界面进行拨动。开关235的当前拨动状态是通过诸如通用I/0(GPI0)信号(未示出)的接口输入多功能设备210。每个可能的开关设置选项均可以触发设备210在设备枚举处理期间向主机205展露不同的描述符或配置表。在图3A中,用户可以拨动开关235以触发控制器225只向主机205展露类属功能单元220 (诸如,大容量存储功能单元)。作为响应,控制器225可以在主机205上运行安装程序255,该程序使用来自系统存储器120的设备驱动程序145安装类属功能单元220。在设备安装期间,类属功能单元220被枚举在主机205上。另外,安装程序255可以从设备存储器240中检索用于非类属功能单元230的各种驱动程序包M5A和/或M5B并且将它们预加载到系统存储器120中。如果所需驱动程序不能在设备210上获得,则安装程序可以提示用户指定可以加载驱动程序的另一位置(诸如,安装⑶或设备制造商的网站)。然后, 仅有设备210的类属功能对主机205可用,如总线250所表示的,象征性信息在主机205与设备210之间的交换。接下来,用户可以拨动开关235以触发多功能设备210向主机205展露不同的设备配置。例如,可以拨动开关以展露类属功能单元220和非类属功能单元230这两者,如图 3B所示。设备210可能需要与主机205进行重新枚举,从而使主机读取新的设备配置。这可以在检测到开关位置变化时由用户手动完成或由设备通过内部重置操作自动完成。主机 205从设备210读取新的配置之后,主机枚举非类属功能单元230并且安装在类属功能单元 220的枚举期间预加载的所需驱动程序。然后,设备210的两种功能均对主机205可用,如总线250和260所表示,象征性信息在主机205和设备210之间交换。在另一示例性实施方式中,用户可以拨动开关235以触发多功能设备210从而只展露一个或多个非类属功能单元230,而隐藏类属功能单元220,如图3C所示。可以预期的是,例如,如果以这种方式实现主机205、设备210、和/或与类属功能单元220关联的驱动程序,当枚举类属功能单元220时,会对主机205的整体功耗产生不利影响。如果用户意识到这点并且当前没有对于类属功能单元220的需求,则用户可以拨动开关235从而隐藏类属单元。当然,如本领域技术人员所知,对于在主机205枚举期间或之后切断设备210的一个或多个功能单元220还存在其它原因。例如,当用于非类属功能单元的设备驱动程序在设备210的存储器中可获得并且在初始的设备安装期间可以由主机205的OS直接加载和安装时,可以使用该开关配置。然后,仅有设备210的非类属功能对主机205可用,如总线 260所表示,象征性信息在主机205和设备210之间交换。图4描绘了使用上述切换机制的多功能外围(或嵌入式)设备的枚举处理的一个示意性实施方式。处理400开始于步骤402,其中设备被连接到主机。在步骤404中,主机 OS检测新的多功能设备并确定设备ID。在步骤406中,OS确定所需设备驱动程序是否存在于主机的系统存储器中。如果设备之前未枚举类属功能单元和/或非类属功能单元被切断(如图3A所示),则非类属功能单元驱动程序未存在于主机上进而OS向设备报告需要专用的设备驱动程序(步骤410)。如果所需设备驱动程序存在于设备或主机上(步骤412 或步骤420),非类属功能单元可以向主机枚举(步骤430)。所需设备驱动程序加载并安装在主机上(步骤43幻。然后,多功能设备的非类属功能单元准备好被使用(步骤434)。
9
然而,如果在设备中未找到非类属设备驱动程序(步骤412),则设备可以使用其类属功能单元(诸如大容量存储单元)、使用存储在主机系统存储器中的本机设备驱动程序来枚举(步骤414)。一旦枚举了类属功能单元,该类属功能单元就可以在主机上运行安装器应用程序从而枚举设备的非类属功能单元(步骤416)。具体地,安装器应用程序可以定位或提示用户定位所需的非类属设备驱动程序。一旦定位了非类属设备驱动程序并将其载入主机系统存储器中,安装器应用程序就可以向设备发布请求从而显示其非类属功能单元(步骤418)。然后,枚举非类属功能单元(步骤430),安装所需驱动程序(步骤432)并且设备的所有非类属功能单元准备好被使用(步骤434)。在一个示意性实施方式中,多功能外围(或嵌入式)设备可以采用“瘦”驱动程序使主机能够控制初始的设备枚举。更具体地,瘦驱动程序可以使主机的操作系统能够间接地与设备通信,从而控制类属和非类属功能单元的枚举。该瘦驱动程序可以经由I/O总线标准化消息、I/O总线销售商专用消息,经由销售商专用扩展、I/O总线标准化消息的数据载荷中封装的消息、或本领域技术人员所熟知的其它方法与多功能设备通信。在一个示意性实施方式中,瘦驱动程序可实现为用于微软Windows 操作系统的本机大容量储存驱动程序堆栈中一个驱动程序的上层级或下层级过滤驱动程序,或用于被配置为代替或取代用于标准大容量储存装置类别中特定装置组的本机大容量储存装置驱动程序的独立大容量储存装置驱动程序。本领域技术人员可以认识到在其它实施方式中可以不同地实现瘦驱动程序。图5描绘了具有瘦驱动程序的多功能外围(或嵌入式)设备枚举处理的另一示意性实施方式。枚举处理500开始于步骤510,首先,设备连接到主机,其中非类属功能单元被切断(如图3A所示)。在步骤512中,主机的OS检测新的多功能设备并确定设备ID。由于所有的非类属功能单元被切断,因此设备仅枚举其类属功能单元(步骤514)。在枚举期间,设备可以在主机上加载瘦驱动程序(步骤516)。首先,瘦驱动程序可以确定非类属设备驱动程序和/或应用程序组件是否存在于主机的系统存储器中(步骤518)。如果主机中不存在所需驱动程序(步骤520),瘦驱动程序可以检查这种驱动程序是否存在于设备上 (步骤530)。如果在主机或设备上找到了所需驱动程序,则瘦驱动程序可以向设备发布请求从而展露其非类属功能单元(步骤550)。然后,设备在主机上枚举非类属功能单元(步骤55幻。所需设备驱动程序加载和安装在主机上(步骤554)。然后,多功能设备的非类属功能单元准备好被使用(步骤556)。然而,如果未找到非类属设备驱动程序(步骤520以及530),则设备可以使用其类属功能单元(诸如,大容量存储单元)、使用存储在主机系统存储器中的本机设备驱动程序来枚举(步骤M0)。一旦枚举了类属功能单元,该类属功能单元可以在主机上运行安装器应用程序从而枚举设备的非类属功能单元(步骤讨幻。具体地,安装器应用程序可以定位或提示用户定位所需的非类属设备驱动程序。一旦定位了非类属设备驱动程序并将其载入主机系统存储器中,安装器应用程序就可以向设备发布请求从而展露其非类属功能单元 (步骤M4)。然后,枚举非类属功能单元(步骤55 ,安装所需驱动程序(步骤554),以及准备使用设备的所有非类属功能单元(步骤阳6)。图6描绘了使用上述切换机制和瘦驱动程序的多功能外围(或嵌入式)设备的枚举处理的另一示意性实施方式。当接通多功能设备的所有功能单元(如图3B所示)时,可
10以在初始的设备枚举期间使用处理600。如果主机操作系统不支持存在于类属功能单元存储器中的安装器包,也可以应用处理600。瘦驱动程序能通过阻止设备仅枚举会对这种操作系统没有用处的类属功能单元来服务于操作系统和主机,并且还因此阻止设备展露将通过其他传统或非传统方式将驱动程序和应用程序部件载入主机的非类属功能单元。正如所描绘的,在步骤605中,首先,设备连接到主机,其中所有类属功能单元接通。在步骤610中,主机的OS检测新的多功能设备并确定设备ID。由于所有非类属功能单元被接通,因此设备从枚举类属功能单元开始枚举所有功能单元(步骤615)。在枚举期间,设备可以将瘦驱动程序载入到主机上的本机类属设备驱动程序(步骤620)。该瘦驱动程序可以向设备发布请求从而展露其非类属功能单元(步骤62幻。然后,设备在主机上枚举非类属功能单元(步骤630)。从安装CD或互联网中获得所需设备驱动程序,并将其加载和安装到主机上(步骤63幻。然后,多功能设备的非类属功能单元准备好被使用(步骤 640)。在一个示意性实施方式中,可以由存在于外围设备的类属存储器存贮功能单元的存储器中的安装器包来安装用于特定操作系统的瘦驱动程序。该安装器包可以包含或不包含非类属功能单元所需的、用于相同操作系统的所需驱动程序和应用程序部件。如果该安装器包包含所需驱动程序,则瘦驱动程序可用来辅助设备确定如何初始枚举(如处理500 中所示)。如果该安装器包没有所需驱动程序,则一旦加载和安装瘦驱动程序,则该瘦驱动程序就可用于请求设备以连接非类属功能单元(如处理600所示)。在另一示意性实施方式中,用于特定操作系统的瘦驱动程序可以是该操作系统的一部分,因此可能不是独立地需要将该瘦驱动程序加载到主机系统存储器。在又一示意性实施方式中,可以通过更传统的方法(诸如安装CD或互联网)安装瘦驱动程序。本领域普通技术人员应该理解,存在加载和安装瘦驱动程序的其他方式。本领域普通技术人员应该理解,所公开的系统和方法的示意性实施方式为主机提供了一种有效方式,从而在借助于或没有用户帮助的情况下确定是否以及何时枚举多功能设备的各种功能单元,缩短了向稳定且可用的功能连接组枚举设备所需的时间,改善了整体自身部件安装的用户体验、降低了对于在短时间内枚举不同组功能单元的外围或嵌入式设备的操作系统中特殊情况处理失败的风险。此外应理解,所公开的系统和方法允许外围设备借助于主机或用户、基于主机系统是否已经具有用于设备的非类属功能的所需设备驱动程序以及该设备是否已在设备的类属存储器存储功能的存储器中包括了用于主机当前操作系统的驱动安装包来确定它是应该初始枚举仅作为类属(本机)设备(例如,大容量存储设备)还是也应当允许枚举其非类属(专有的)功能单元。这个性能可以在已安装用于设备的驱动程序后减少程序步骤以及设备后续枚举所需的时间,从而改善了设备枚举的用户体验。该性能还可以防止设备在运行操作系统(其中,该设备中没有用于该操作系统的安装器包)的主机系统上仅枚举作为存储器贮存设备,从而减轻了用户对于这类操作系统的挫败感。在一个示意性实施方式中,在主机的系统存储器中定位设备驱动程序的能力可以扩展为检查与外围设备相关联的应用程序部件(其还可能在设备的类属存储器存储功能单元的非易失存储器中得到)。在另一示意性实施方式中,检查驱动程序和应用程序部件的能力可以扩展为在主机的系统存储器中存在的一个或多个部件已经过时并且需要在主机
11能够利用设备的非类属功能单元之前进行更新的情况下检查这些部件的特定最低版本存储。为了表述清晰,未示出和描述外围设备枚举机制的实现方式的全部特征。当然,应该理解的是,在设备枚举处理的任何这种实际实现方式的开发过程中,必须做出多种特定实现方式的决定,以实现开发者的特定目标(诸如,符合与应用、系统、设备以及商业相关的约束),并且这些特定目标视实现和开发者变化而变化。再者,应该理解的是,开发努力可能是复杂并且耗时的,但是对于从本公开发明中受益的计算机系统领域的普通技术人员来说不过是常规工程程序。根据本公开发明,本文描述的部件、处理步骤、和/或数据结构可以利用各种类型的操作系统、计算平台、外围或嵌入式设备、计算机程序、和/或通用机器来实现。此外,本领域普通技术人员将认识到,在不背离本文公布的发明概念的范围和精神的前提下还可以使用通用性较低的设备,诸如硬连线设备、现场可编辑门阵列(FPGA)、特定用途集成电路 (ASIC)或类似设备。其中,包括一系列处理步骤的方法可以由计算机或机器实现,并且这些处理步骤可以作为一系列机器可读指令存储在有形介质中。另外,应该注意的是,本文描述的系统和模块可以包括软件、固件、硬件、或任何适用本文所描述目的的软件、固件、硬件的组合。软件和其它模块可以驻留在服务器、工作站、 个人电脑、平板电脑、PDA和适用于此本文所描述目的的其它设备上。软件和其它模块可以经由本地存储器、经由网络、经由浏览器或ASP语境中的其它应用程序、或适用于本文所描述目的的其它方式存取。本领域普通技术人员应该认识到,用于多功能设备枚举的系统和方法的描述仅用作说明并不旨在以任何方式进行限制。其它实施方式将容易地将其自身向从本公开发明中受益的普通技术人员进行暗示。另外,从本公开发明中受益的本领域技术人员应该显而易见的是,在不背离本文公开的发明概念的情况下可能做出比上述更多的修改。因此,除了所附权利要求的精神外,不应限制本发明。
1权利要求
1.一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括将所述外围设备连接至所述主机系统;向所述主机系统展露所述外围设备的所述类属功能单元;在所述主机系统上枚举经展露的所述类属功能单元;定位用于所述外围设备的所述非类属功能单元的驱动程序;向所述主机系统展露非类属功能单元;以及在所述主机系统上枚举经展露的所述非类属功能单元。
2.根据权利要求1所述的方法,其中,展露所述类属功能单元包括切断所述外围设备的所述非类属功能单元。
3.根据权利要求2所述的方法,其中,展露所述非类属功能单元包括切断所述外围设备的所述类属功能单元。
4.根据权利要求2所述的方法,其中,展露所述非类属功能单元包括接通所述类属功能单元并且接通所述非类属功能单元。
5.根据权利要求3所述的方法,其中,枚举所述类属功能单元包括向所述主机系统上传瘦驱动程序,该瘦驱动程序被配置为定位用于所述外围设备的所述非类属功能单元的驱动程序。
6.根据权利要求5所述的方法,其中,所述驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。
7.根据权利要求6所述的方法,进一步包括在所述主机系统上安装用于所述非类属功能单元的驱动程序。
8.根据权利要求1所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。
9.根据权利要求8所述的方法,其中,所述接口包括有线接口和无线接口之一。
10.一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括切断所述外围设备的所述非类属功能单元;接通所述外围设备的所述类属功能单元;在所述主机系统上枚举所述类属功能单元;在所述主机系统上加载用于所述非类属功能单元的驱动程序;接通所述外围设备的所述非类属功能单元;以及在所述主机系统上枚举所述非类属功能单元。
11.根据权利要求10所述的方法,其中,枚举所述非类属功能单元包括重置和重新枚举所述外围设备的所述类属功能单元。
12.根据权利要求11所述的方法,其中,枚举所述类属功能单元包括向所述主机系统上传瘦驱动程序,该瘦驱动程序可操作地定位用于所述外围设备的所述非类属功能单元的驱动程序。
13.根据权利要求12所述的方法,其中,所述驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。
14.根据权利要求13所述的方法,进一步包括在所述主机系统上安装用于所述非类属功能单元的驱动程序。
15.根据权利要求10所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。
16.根据权利要求15所述的方法,其中,所述接口包括有线接口和无线接口之一。
17.一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括向所述主机系统展露所述外围设备的所述类属功能单元; 在所述主机系统上枚举经展露的所述类属功能单元;向所述主机系统提供瘦驱动程序,该瘦驱动程序可操作地定位并在所述主机系统上加载用于所述外围设备的所述非类属功能单元的设备驱动程序; 向所述主机系统展露非类属功能单元; 在所述主机系统上枚举经展露的所述非类属功能单元;以及在所述主机系统上安装用于所述非类属功能单元的驱动程序。
18.根据权利要求17所述的方法,其中,展露所述类属功能单元包括切断所述外围设备的所述非类属功能单元。
19.根据权利要求18所述的方法,其中,展露所述非类属功能单元包括切断所述外围设备的所述类属功能单元。
20.根据权利要求17所述的方法,其中,展露所述非类属功能单元包括接通所述类属功能单元以及所述非类属功能单元。
21.根据权利要求17所述的方法,其中,所述驱动程序的位置包括以下各项之一所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。
22.根据权利要求17所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。
23.根据权利要求22所述的方法,其中,所述接口包括有线接口和无线接口之一。
24.一种用于在主机系统上枚举多功能外围设备的方法,该多功能外围设备具有类属功能单元和非类属功能单元,所述方法包括检测所连接的所述外围设备的、经展露的所述类属功能单元; 枚举所述外围设备的、检测到的所述类属功能单元;加载瘦驱动程序,该瘦驱动程序可操作地定位并在所述主机系统上加载用于所述外围设备的所述非类属功能单元的设备驱动程序;检测所连接的所述设备的、经展露的所述非类属功能单元;以及枚举所述外围设备的、检测到的所述非类属功能单元。
25.根据权利要求M所述的方法,进一步包括安装用于所述非类属功能单元的设备驱动程序。
26.根据权利要求25所述的方法,其中,所述设备驱动程序的位置包括以下各项之一 所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。
27.根据权利要求沈所述的方法,其中,所述类属功能单元和所述非类属功能单元通过单个接口连接至所述主机系统。
28.根据权利要求27所述的方法,其中,所述接口包括有线接口和无线接口之一。
29.—种多功能外围设备,包括主机接口,用于与主机系统通信;第一功能单元,连接至所述主机接口 ;第二功能单元,连接至所述主机接口 ;非易失性存储器,用于存储用于所述第一功能单元和所述第二功能单元中至少一个的一个或多个设备驱动程序;以及控制器,用于控制所述第一功能单元和所述第二功能单元展露至所述主机系统及其在所述主机系统上被枚举的顺序。
30.根据权利要求四所述的设备,其中,所述控制器包括开关,该开关可操作地接通和切断所述设备的所述第一和第二功能单元,从而控制所述功能单元展露至所述主机系统及其在所述主机系统上被枚举的顺序。
31.根据权利要求30所述的设备,其中,所述开关包括自动开关和用户操作的手动开关之一。
32.根据权利要求四所述的设备,其中,所述第一功能单元是类属功能单元,所述第二功能单元是非类属功能单元。
33.根据权利要求32所述的设备,其中,所述类属功能单元包括大容量存储单元。
34.根据权利要求33所述的设备,其中,所述大容量存储单元包括安装器应用程序,该安装器应用程序可操作地在所述主机系统上安装用于所述外围设备的所述非类属功能单元的设备驱动程序。
35.根据权利要求四所述的设备,其中,所述存储器进一步包括瘦驱动程序,该瘦驱动程序可操作地定位用于所述第一和第二功能单元之一的设备驱动程序。
36.根据权利要求35所述的设备,其中,所述设备驱动程序的位置包括以下各项之一 所述主机系统的存储器、所述外围设备的存储器、安装CD以及网络服务器。
37.根据权利要求四所述的设备,其中,所述主机接口包括有线接口和无线接口之一。
38.根据权利要求四所述的设备,其中,所述多功能外围设备嵌入所述主机系统。
全文摘要
本发明公开了对于多功能外围设备在主机上的枚举进行控制的系统和方法。该多功能外围设备可以包括连接到主机接口的类属和非类属功能单元。该设备可以在其非易失存储器中存储用于非类属功能单元的一个或多个驱动程序。该外围设备可以进一步包括控制器,其控制类属和非类属功能单元展露至主机系统和在主机系统上枚举的顺序。该控制器可以包括开关,该开关可操作地接通和切断类属和非类属功能单元,从而控制这些单元展露至主机系统并在主机系统上枚举的顺序。
文档编号G06F3/00GK102362241SQ201080013484
公开日2012年2月22日 申请日期2010年1月29日 优先权日2009年2月2日
发明者理查德·托马斯·卡瓦诺 申请人:施克莱无线公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1