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所述的非暂时性计算机可读存储介质,其中所述程序指令还可执行以:
将静态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序;
使所述第一版本的所述装置驱动程序静默;以及
在使所述第一版本的所述装置驱动程序静默之后,将瞬态数据从所述第一版本的所述装置驱动程序传送到所述第二版本的所述装置驱动程序。