一种自动打开扩展通道的方法及装置的制造方法_3

文档序号:9667280阅读:来源:国知局
18] _inREGSAMsamDesired,
[0119]_inINSECURITY-ATTRIBUTESIpSecurityAttributes,
[0120] -outPHKEYphkResult,
[0121] _outLPDWORDlpdwDisposition);在当前外接设备的注册表路径下创建预设子 项,其中,参数IpSubKey即为当前外接设备的注册表路径;
[0122] 步骤210 :主设备判断当前外接设备的预设子项的值是否为第一预设值,如果是, 则执行步骤212,否则执行步骤211 ;
[0123] 优选的,第一预设值为1 ;
[0124] 步骤211 :主设备将当前外接设备的预设子项的值设置为第一预设值,执行步骤 212 ;
[0125] 进一步的,本步骤还包括:主设备判断设置当前外接设备的预设子项的值是否成 功,如果是,则执行步骤212,否则报错,结束。
[0126] 步骤212:主设备关闭注册表,判断需要打开扩展通道的所有外接设备中是否还 有未打开扩展通道的外接设备,如果是,则返回执行步骤205,否则结束。
[0127] 本实施例中,步骤204至步骤212可以替换为:
[0128] 主设备对需要打开扩展通道的每个外接设备均执行以下操作:
[0129] 步骤al:主设备每个当前外接设备的设备信息,打开注册表主键,根据每个外接 设备的设备信息得到设备路径,根据设备路径得到每个外接设备的注册表路径;
[0130] 步骤a2 :主设备根据得到的每个外接设备的注册表路径打开每个外接设备在注 册表中的位置,判断在每个外接设备的注册表路径下是否能够获取到每个外接设备的预设 子项,如果是,则执行步骤a4,否则执行步骤a3 ;
[0131] 步骤a3 :主设备在每个外接设备的注册表路径下创建预设子项,判断是否创建成 功,如果是,则执行步骤a4,否则报错,结束;
[0132] 步骤a4:主设备判断每个外接设备的预设子项的值是否为第一预设值,如果是, 则结束,否则将每个外接设备的预设子项的值均设置为第一预设值,结束。
[0133] 本实施例中,预先在外接设备索引表中设置有已扩展标识,用于标识当前外接设 备是否已打开扩展通道,预先约定,当已扩展标识置位时,表示当前外接设备已打开扩展通 道,当已扩展标识复位时,标识当前外接设备未打开扩展通道;
[0134] 例如,步骤202中创建的当前外接设备索引表为:
[0135]
[0136] 步骤203至步212还可以替换为:
[0137] 步骤bl:主设备从需要打开扩展通道的外接设备中获取一个已扩展标识复位的 外接设备,作为当前外接设备,获取当前外接设备的设备信息,打开注册表主键,根据当前 外接设备的设备信息得到设备路径,根据设备路径得到当前外接设备的注册表路径;
[0138] 步骤b2:主设备根据得到的当前外接设备的注册表路径打开当前外接设备在注 册表中的位置,判断在当前外接设备的注册表路径下是否能够获取到当前外接设备的预设 子项,如果是,则执行步骤b4,否则执行步骤b3 ;
[0139] 步骤b3:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建成 功,如果是,则执行步骤b4,否则报错,结束;
[0140] 步骤b4:主设备判断当前外接设备的预设子项的值是否为第一预设值,如果是, 则执行步骤b5,否则将当前外接设备的预设子项的值设置为第一预设值,执行步骤b5。
[0141] 步骤b5 :主设备将当前外接设备的已扩展标识置位,结束;
[0142] 本实施例中,还包括:主设备将当前外接设备的已扩展标识置位后,还可以将记 录当前外接设备的设备唯一标识(或PID+VID)的已扩展标识置位,当前外接设备被拔出 后,该记录信息仍保存,如果当前外接设备再次与主设备连接时,主设备在步骤103创建当 前外接设备索引表时直接根据该记录信息将当前外接设备的已扩展标识置位,即不需要再 次对该当前设备执行扩展操作,同理,如果注册表中当前外接设备的预设子项的值发生变 化时,同样要记录该变化,即将已扩展标识复位,下次当前外接设备插入时重新执行扩展操 作。
[0143] 实施例3
[0144] 本发明实施例3提供了一种自动打开扩展通道的方法,如图3所示,包括:
[0145] 步骤301:主设备创建监控外接设备插拔线程;
[0146] 步骤302 :主设备监控外接设备的插拔,当主设备监控到有外接设备插入时,执行 步骤303,当监控到有外接设备拔出时,继续执行步骤302 ;
[0147] 步骤303 :主设备获取插入的当前外接设备的设备信息,根据当前外接设备的设 备信息,判断当前外接设备是否为需要扩展通道,如果是,则执行步骤304,否则返回步骤 302 ;
[0148] 步骤304 :主设备打开注册表主键,根据当前外接设备的设备信息得到设备路径, 获取主设备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径;
[0149] 步骤305 :主设备根据得到的当前外接设备的注册表路径打开当前外接设备在注 册表中的位置;
[0150] 步骤306 :主设备判断在当前外接设备的注册表路径下是否能够获取到当前外接 设备的预设子项,如果是,则执行步骤308,否则执行步骤307 ;
[0151] 步骤307:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建 成功,如果是,则将创建的预设子项的值设置为第一预设值,执行步骤310,否则报错,结 束;
[0152] 步骤308 :主设备判断当前外接设备的预设子项的值是否为第一预设值,如果是, 则执行步骤310,否则执行步骤309 ;
[0153] 步骤309 :主设备将当前外接设备的预设子项的值设置为第一预设值,执行步骤 310 ;
[0154] 步骤310 :主设备关闭注册表,返回步骤302。
[0155] 实施例4
[0156] 本发明实施例4提供了一种自动打开扩展通道的装置,如图4所示,包括:
[0157] 监控模块,用于监控与外接设备的连接;
[0158] 获取模块,用于当监控模块监控到有外接设备连接时,获取当前外接设备的设备 信息;
[0159] 处理模块,用于当获取模块获取到当前外接设备的设备信息时,根据当前外接设 备的设备信息得到设备路径,根据设备路径得到当前外接设备的注册表路径;
[0160] 第一判断模块,用于当处理模块得到当前外接设备的注册表路径时,判断在当前 外接设备的注册表路径下是否能够获取到当前外接设备的预设子项;
[0161] 设置模块,用于当第一判断模块判断为是时,将当前外接设备的预设子项的值设 置为第一预设值。
[0162] 本实施例中,监控模块包括:第一创建单元和第一监控单元;
[0163] 第一创建单元,用于创建监控外接设备插拔线程;
[0164] 第一监控单元,用于监控外接设备的插拔,当监控到有外接设备连接时,触发获取 模块,当监控到有外接设备断开连接时,继续触发第一监控单元。
[0165] 本实施例中,该装置还包括创建模块和更新模块;
[0166] 创建模块,用于获取当前已安装的外接设备列表,并为之创建外接设备索引表;
[0167] 获取模块,具体用于从外接设备索引表中获取外接设备的设备信息;
[0168] 更新模块,用于当监控模块监控到有外接设备连接时,更新外接设备索引表。
[0169] 本实施例中,该装置还包括:第二判断模块和设定模块;
[0170] 第二判断模块,用于当设置模块设置完成后,判断外接设备索引表中是否还有未 进行通道扩展的外接设备;
[0171] 设定模块,用于当第二判断模块判断为是时,将其中一个未进行通过扩展的外接 设备作为当前外接设备,触发获取模块。
[0172] 其中,第二判断模块,具体用于判断外接设备索引表中是否存在已扩展标识未置 位的外接设备;
[0173] 设定模块,具体用于当第二判断模块判断为是时,将其中一个已扩展标识未置位 的外接设备作为当前外接设备,触发获取模块;
[0174] 该装置还包括置位模块,用于当设置模块设置完成时,将当前外接设备的已扩展 标识置位。
[0175] 进一步的,该装置还包括:第三判断模块,用于当获取模块获取到当前外接设备的 设备信息时,根据当前外接设备的设备信息,判断当前外接设备是否需要打开扩展通道,判 断为是时,触发处理模块。
[0176] 其中,第三判断模块,具体用于判断当前外接设备的设备信息中的GUID值是否为 预设设备类的GUID值,判断为是时,触发处理模块。
[0177] 处理模块中,根据当前外接设备的设备信息得到设备路径,具体用于将当前外接 设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径。
[0178] 处理模块中,根据设备路径得到当前外接设备的注册表路径,具体用于获取主设 备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径。
[0179] 进一步的,处理模块中,根据设备路径和主设备操作系统得到当前外接设备的注 册表路径,具体用于将设备路径填充至主设备操作系统对应的预设注册表路径信息中。
[0180] 本实施例中,装置还包括创建模块,用于当第一判断模块判断为否时,在当前外接 设备的注册表路径下创建预设子项,判断是否创建成功;
[0181] 设置模块,还用于当创建模块创建预设子项成功时,将创建的预设子项的值设置 为第一预设值。
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1