基于能力的设备驱动程序框架的制作方法_4

文档序号:9476198阅读:来源:国知局
述中表达的硬件接口实体的存 储器分配器。作为替换或补充,方法500的各实施例可被实施,其中生成硬件驱动程序的代 码包括生成解释并跟踪硬件接口实体的日志模块。作为替换或补充,方法500的各实施例 可被实施,其中可视化硬件接口实体的调试器扩展。
[0082] 方法500的一些实施例可被实施,其中硬件设备的机器可读描述由硬件供应商提 供。
[0083] 方法500的一些实施例可被实施,其中所生成的硬件驱动程序的代码被生成为受 管代码。
[0084] 现在参考图6,示出了方法600。可W在计算环境中实施方法600。方法600包括 用于对硬件驱动程序施加限制的动作。方法600包括从系统内核,将I/O资源分配给系统 的根总线(动作602)。例如,图2示出通过将资源分配给总线驱动程序214,来将I/O资源 分配给系统的根总线。
[00化]从根总线,方法600包括将I/O资源的子集分配给设备总线(动作604)。将I/O资源的子集分配给设备总线包括将设备总线限于只能分配被根总线分配给它的I/O资源。 例如,在图2中,设备总线214-1到214-n具有分配给它们的资源。运些设备总线中的每一 者只能够进一步分配已被分配给它们的资源。
[0086] 方法600还包括从设备总线,通过设备接口将I/O资源分配给设备(动作606)。
[0087] 方法600的一些实施例可被实现,其中将设备总线限于只能够分配被根总线分配 给它的I/O资源是通过用受管代码实现总线驱动程序来达成的。
[0088] 方法600可被实施,其中将I/O资源的子集分配给设备总线包括调用用受管代码 实现的总线驱动程序。
[0089] 方法600可被实施,其中将I/O资源分配给设备包括调用用受管代码实现的设备 驱动程序。
[0090] 方法600还可包括防止其他服务和进程将它们自己附连到设备接口。
[0091] 现在参考图7,示出了方法700。可W在计算环境中实施方法700。方法700包括 用于实现可支持高吞吐量和低等待时间设备的类型安全驱动程序的动作。方法700包括接 收来自硬件设备的数据(动作702)。方法700还包括使用零复制将所述数据递送到在用户 模式中执行的一个或多个驱动程序进程,W允许所述一个或多个驱动程序进程支持高吞吐 量和低等待时间硬件设备(动作704)。
[0092] 方法700可被实施,其中递送所述数据是在无需先占所述内核模式的情况下执行 的。作为替换或补充,方法700还可包括限制处理器在内核模式中花费的时间量。作为替 换或补充,方法700可被实施,其中驱动程序进程是用受管代码实现的。作为替换或,方法 700还包括在用户模式中实现的I/O中断管理器针对中断来注册用户模式设备驱动程序。 在一些实施例中,I/O中断管理器将中断分配给驱动程序进程。作为替换或补充,方法700 还可包括将驱动程序实现为单线程化进程。作为替换或补充,方法700可被实施,其中所述 一个或多个驱动程序进程是在无需限制什么用户模式库能被用来实现所述一个或多个驱 动程序进程的情况下实现的。
[0093] 此外,各种方法可由包括一个或多个处理器和诸如计算机存储器等计算机可读介 质的计算机系统来实施。具体而言,计算机存储器可存储计算机可执行指令,运些指令在由 一个或多个处理器执行时使得诸如各实施例中所述的各个动作等各种功能被执行。
[0094] 本发明的各实施例可W包括或利用包含计算机硬件的专用或通用计算机,运将在 下文中更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令 和/或数据结构的物理和其他计算机可读介质。运样的计算机可读介质可W是可由通用或 专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存 储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制, 本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质 和传输计算机可读存储介质。 阳0巧]物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需 程序代码装置且可由通用或专用计算机访问的任何其他介质。
[0096] "网络"被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设 备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、 或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介 质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且 可由通用或专用计算机访问的网络和/或数据链路。W上介质的组合也被包括在计算机可 读介质的范围内。
[0097] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码装置可从传输计算机可读介质自动转移到物理计算机可读存储介质(或者相反)。 例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模 块(例如,"NIC")内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的 较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可被包括在同样 (或甚至主要)利用传输介质的计算机系统组件中。
[0098] 计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某 一功能或某组功能的指令和数据。计算机可执行指令可W是例如二进制代码、诸如汇编语 言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述 了本主题,但可W理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而 言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0099] 本领域的技术人员将理解,本发明可W在具有许多类型的计算机系统配置的网络 计算环境中实践,运些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息 处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型 计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过 网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的 组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统 环境中,程序模块可W位于本地和远程存储器存储设备二者中。 阳100] 本发明可具体化为其他具体形式而不背离其精神或特征。所描述的实施例在所有 方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前 述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范 围所涵盖。
【主权项】
1. 一种在计算环境中对硬件驱动程序施加限制的方法,所述方法包括: 从系统内核,向所述系统的根总线分配I/O资源; 从所述根总线,向设备总线分配所述I/O资源的子集,其中向设备总线分配所述I/O资 源的子集包括将所述设备限于仅能够分配由所述根总线分配给它的I/O资源;以及 从所述设备总线,通过设备接口向设备分配I/O资源。2. 如权利要求1所述的方法,其特征在于,将所述设备总线限于仅能够分配由所述根 总线分配给它的I/O资源是通过用受管代码实现总线驱动程序来达成的。3. 如权利要求1所述的方法,其特征在于,向设备总线分配所述I/O资源的子集包括调 用用受管代码实现的总线驱动程序。4. 如权利要求1所述的方法,其特征在于,向设备包分配I/O资源括调用用受管代码实 现的设备驱动程序。5. 如权利要求1所述的方法,其特征在于,还包括防止其他服务和进程将它们自己附 连到所述设备接口。6. 如权利要求1所述的方法,其特征在于,向设备总线分配所述I/O资源的子集包括仅 分配将被所述设备需要的资源。7. 如权利要求1所述的方法,其特征在于,还包括终止用于所述设备的驱动程序以及 所述根总线回收分配给所述设备的资源。
【专利摘要】对硬件驱动程序施加限制。该方法包括从系统内核将I/O资源分配给系统的根总线。从根总线,该方法还包括将I/O资源的子集分配给设备总线。将I/O资源的子集分配给设备总线包括将设备总线限于只能分配被根总线分配给它的I/O资源。从该设备总线,该方法包括通过设备接口将I/O资源分配给设备。
【IPC分类】G06F9/54, G06F9/44
【公开号】CN105229600
【申请号】CN201480003951
【发明人】Y·维恩斯伯格, J·于, J·理查德森, C·W·布鲁密, M·塔耶费尔
【申请人】微软技术许可有限责任公司
【公开日】2016年1月6日
【申请日】2014年1月3日
【公告号】EP2941694A1, US9323543, US20140196059, WO2014107542A1
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1