内核装置模块的实时更新的制作方法

文档序号:23185364发布日期:2020-12-04 14:14阅读:来源:国知局

技术特征:

1.一种系统,其包括:

存储器,所述存储器存储操作系统(os)、代理模块以及被配置为管理一个或多个软件应用程序与装置之间的交互的第一版本的装置驱动程序的程序指令;以及

处理器,所述处理器被配置为:

向所述代理模块注册所述第一版本的所述装置驱动程序;以及

执行所述代理模块的程序指令以:

提供从所述代理模块到所述第一版本的所述装置驱动程序的指示,所述指示指定另一版本的所述装置驱动程序是否已经被加载到所述系统上并且正在管理所述装置;以及

响应于确定没有其他版本的所述装置驱动程序被加载到所述系统上并且正在管理所述装置,向所述os注册为所述第一版本的所述装置驱动程序,并且将所述第一版本的所述装置驱动程序仿真到所述os。

2.如权利要求1所述的系统,其中所述处理器还被配置为:

加载与被配置为管理所述装置与所述一个或多个软件应用程序之间的交互的所述第一版本的所述装置驱动程序不同的第二版本的所述装置驱动程序;

向所述代理模块注册所述第二版本的所述装置驱动程序;

所述代理模块向所述第二版本的所述装置驱动程序提供指向所述第一版本的所述装置驱动程序的指针;以及

所述第二版本的所述装置驱动程序经由所述指针请求来自所述第一版本的所述装置驱动程序的状态信息。

3.如权利要求2所述的系统,其中所述处理器还被配置为:

生成停止一个或多个外部刺激线程的一个或多个请求;

等待所述一个或多个外部刺激线程停止;以及

响应于所述一个或多个外部刺激线程停止,将所述装置的控制权从所述第一版本的所述装置驱动程序转移到所述第二版本的所述装置驱动程序。

4.如权利要求2所述的系统,其中所述处理器还被配置为:

将状态信息从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;

将所述装置的控制权从所述第一版本的所述装置驱动程序转移到所述第二版本的所述装置驱动程序;以及

停用所述第一版本的所述装置驱动程序。

5.如权利要求4所述的系统,其中所述处理器被配置为响应于确定所述第一版本的所述装置驱动程序被加载到所述系统上并且正在管理所述装置,而执行所述代理模块以通知所述第二版本的所述装置驱动程序跳过所述装置的硬件初始化。

6.如权利要求4所述的系统,其中所述处理器还被配置为:

将静态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;

使所述第一版本的所述装置驱动程序静默;以及

在使所述第一版本的所述装置驱动程序静默之后,将瞬态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序。

7.如权利要求1所述的系统,其中所述处理器还被配置为:

如果当前没有其他装置驱动程序在管理所述装置,则提供从所述代理模块到所述第一版本的所述装置驱动程序的第一指示;以及

如果另一装置驱动程序当前在管理所述装置,则提供从所述代理模块到所述第一版本的所述装置驱动程序的第二指示,其中所述第二指示与所述第一指示不同。

8.一种方法,其包括:

执行第一版本的装置驱动程序的程序指令,以向代理模块注册所述第一版本的所述装置驱动程序,其中所述第一版本的所述装置驱动程序被配置为管理装置与一个或多个软件应用程序之间的交互;

其中在向所述代理模块注册所述第一版本的所述装置驱动程序之后:

执行所述代理模块的程序指令,以提供从所述代理模块到所述第一版本的所述装置驱动程序的指示,所述指示指定另一版本的所述装置驱动程序是否已经被加载到系统上并且正在管理所述装置;以及

响应于确定没有其他版本的所述装置驱动程序被加载到所述系统上并且正在管理所述装置,向os注册为所述第一版本的所述装置驱动程序,并且将所述第一版本的所述装置驱动程序仿真到所述os。

9.如权利要求8所述的方法,其还包括:

加载第二版本的所述装置驱动程序,其中所述第二版本的所述装置驱动程序被配置为管理所述装置与所述一个或多个软件应用程序之间的交互,并且其中所述第二版本的所述装置驱动程序不同于所述第一版本的所述装置驱动程序;

向所述代理模块注册所述第二版本的所述装置驱动程序;

所述代理模块向所述第二版本的所述装置驱动程序提供指向所述第一版本的所述装置驱动程序的指针;以及

所述第二版本的所述装置驱动程序经由所述指针请求来自所述第一版本的所述装置驱动程序的状态信息。

10.如权利要求9所述的方法,其还包括:

生成停止一个或多个外部刺激线程的一个或多个请求;

等待所述一个或多个外部刺激线程停止;以及

响应于所述一个或多个外部刺激线程停止,将所述装置的控制权从所述第一版本的所述装置驱动程序转移到所述第二版本的所述装置驱动程序。

11.如权利要求9所述的方法,其还包括:

将状态信息从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;

将所述装置的控制权从所述第一版本的所述装置驱动程序转移到所述第二版本的所述装置驱动程序;以及

停用所述第一版本的所述装置驱动程序。

12.如权利要求11所述的方法,其还包括:响应于确定所述第一版本的所述装置驱动程序被加载到所述系统上并且正在管理所述装置,执行所述代理模块以通知所述第二版本的所述装置驱动程序跳过所述装置的硬件初始化。

13.如权利要求11所述的方法,其还包括:

将静态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;

使所述第一版本的所述装置驱动程序静默;以及

在使所述第一版本的所述装置驱动程序静默之后,将瞬态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序。

14.如权利要求8所述的方法,其中处理器还被配置为:

如果当前没有其他装置驱动程序在管理所述装置,则提供从所述代理模块到所述第一版本的所述装置驱动程序的第一指示;以及

如果另一装置驱动程序当前在管理所述装置,则提供从所述代理模块到所述第一版本的所述装置驱动程序的第二指示,其中所述第二指示与所述第一指示不同。

15.一种非暂时性计算机可读存储介质,其包括能够由处理器执行以进行以下操作的程序指令:

向代理模块注册第一版本的装置驱动程序,其中所述第一版本的所述装置驱动程序被配置为管理装置与一个或多个软件应用程序之间的交互;

其中在向所述代理模块注册所述第一版本的所述装置驱动程序之后:

提供从所述代理模块到所述第一版本的所述装置驱动程序的指示,所述指示指定另一版本的所述装置驱动程序是否已经被加载到系统上并且正在管理所述装置;以及

响应于确定没有其他版本的所述装置驱动程序在管理所述装置,代表所述第一版本的所述装置驱动程序向os注册所述代理模块,并且由代理服务器将所述第一版本的所述装置驱动程序仿真到所述os。

16.如权利要求15所述的非暂时性计算机可读存储介质,其中所述程序指令还可执行以:

加载与被配置为管理所述装置与所述一个或多个软件应用程序之间的交互的所述第一版本的所述装置驱动程序不同的第二版本的所述装置驱动程序;

向所述代理模块注册所述第二版本的所述装置驱动程序;

所述代理模块向所述第二版本的所述装置驱动程序提供指向所述第一版本的所述装置驱动程序的指针;以及

所述第二版本的所述装置驱动程序经由所述指针请求来自所述第一版本的所述装置驱动程序的状态信息。

17.如权利要求16所述的非暂时性计算机可读存储介质,其中所述程序指令还可执行以:

生成停止一个或多个外部刺激线程的请求;

等待所述一个或多个外部刺激线程停止;以及

响应于所述一个或多个外部刺激线程停止,将所述装置的控制权从所述第一版本的所述装置驱动程序转移到所述第二版本的所述装置驱动程序。

18.如权利要求16所述的非暂时性计算机可读存储介质,其中所述程序指令还可执行以:

将状态信息从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;

将所述装置的控制权从所述第一版本的所述装置驱动程序转移到所述第二版本的所述装置驱动程序;以及

停用所述第一版本的所述装置驱动程序。

19.如权利要求18所述的非暂时性计算机可读存储介质,其中所述程序指令还可执行以响应于确定所述第一版本的所述装置驱动程序被加载到所述系统上并且正在管理所述装置,执行所述代理模块以通知所述第二版本的所述装置驱动程序跳过所述装置的硬件初始化。

20.如权利要求18所述的非暂时性计算机可读存储介质,其中所述程序指令还可执行以:

将静态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;

使所述第一版本的所述装置驱动程序静默;以及

在使所述第一版本的所述装置驱动程序静默之后,将瞬态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序。


技术总结
公开了用于实现实时装置驱动程序更新的系统、设备和方法。当处理器加载给定版本的装置驱动程序时,所述给定版本向代理模块注册,而不是向操作系统注册。如果先前版本的装置驱动程序已经在运行,则所述代理模块为所述给定版本提供指向所述先前版本的指针。所述给定版本使用所述指针从所述先前版本中检索静态数据。在使所述先前版本静默后,所述给定版本从所述先前版本中检索瞬态数据,然后接任作为所述装置驱动程序的运行版本。后续版本的装置驱动程序能够以类似方式替换先前版本。同样,在降级的情况下,先前版本的装置驱动程序能够以类似方式替换后续版本。

技术研发人员:凯利·唐纳德·克拉克·齐塔鲁克
受保护的技术使用者:ATI科技无限责任公司
技术研发日:2019.04.26
技术公布日:2020.12.04
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1