3/3/2017 10:01 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Cameron Brodeur 程序经理 US-Device & Storage Technologies @ PM 即插即用主要概念 Cameron Brodeur 程序经理 US-Device & Storage Technologies @ PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
议程 编写内容 疑问与解答 设备安装基础 设备和驱动安装的场景 硬件先行的安装序列 软件的安装 OEM 预装 (操作系统离线) 搜索 选择 拷备(Stage) 安装 软件的安装 OEM 预装 (操作系统离线) 扩展设备的安装 疑问与解答
基本知识 设备实例 设备 ID 驱动程序软件包 系统或其它组件检测一个独特的设备 为系统检测到的每个设备配置软件和设置 一个设备型号的基本特征描述 驱动程序软件包 .INF 文件和所有文件的复制 设备的软件介绍和黙认设置 利用设备的 ID 来定义一个设备的应用 驱动包可应用于多种型号的设备 设备也许被多个驱动包支持
基本知识 驱动的存储 驱动的选择 设备的安装 本地存储包含了系统支持的软件和设置 选择“最好”的软件和设置来配置设备 通过选择的软件和设置来配置一个设备的过程
设备的ID 确定硬件的类型 在驱动选择之前被发现 用于选择匹配的驱动 驱动报告两个单独的列表 USB\Vid_vvvv&Pid_pppp&Rev_rrrr USB\Vid_vvvv&Pid_pppp 兼容 ID: USB\Class_cc&SubClass_ss&Prot_pp USB\Class_cc&SubClass_ss USB\Class_cc 确定硬件的类型 总线驱动定义了格式 被视为是未解析的字符串! 在驱动选择之前被发现 用于选择匹配的驱动 驱动报告两个单独的列表 硬件ID 通常包含制造商和型号信息 兼容ID 通常包含 “通用” ID 没有具体的制造商和型号信息 兼容ID是在硬件ID后进行设备的匹配 Each list is ordered from most to least specific
驱动程序包 包含INF文件和所有相关的文件 描述所支持的设备 指定的相关文件 确认设定 简单的文本文件 (INF 文件), 要求的 驱动 文件 (.sys, .dll 文件), 其它可选 数字签名文件 (.cat文件), 最好的做法 描述所支持的设备 硬件ID, 兼容性ID 安装包的ID是“适用性规则” 指定的相关文件 指定哪儿有驱动相关的INF文件 从哪儿复制到系统 确认设定 实例特有的注册表缺省设置 INF ID1, ID2, ID3,… 文件1 文件2 文件 3 文件 4 驱动软件包
驱动存储 完整驱动包的本地拷贝 在使用驱动安装设备之前,驱动软件安装包必 须 “分阶段地”被存储 所有设备的INF中所列的驱动文件必需存在 可自动安装新设备的驱动无需人为参与 (“硬件先插 入”) 在使用驱动安装设备之前,驱动软件安装包必 须 “分阶段地”被存储 “驱动分阶段“和“设备安装” 是单独的逻辑上的操作 驱动存储 INF 1 文件1 文件 2 文件3 文件4 INF 2 文件1 文件2 文件3 文件4 INF 3 文件1 文件2 文件3 文件4 . . .
设备和驱动的安装场景 大多数设备开发商的驱动安装是考虑到用户参与的环境下进行安装的 有多少人会想到在如下情况下安装呢? 操作系统安装 操作系统的SKU升级 (例如Home Basic升级到Ultimate) 操作系统的升级包的安装 设置从老的电脑迁移到新的电脑(同样或不同的版本操作系统) 家庭服务的机器的恢复—从光盘启动终端或从家庭服务器中的镜像文件中恢复 在用户登录之前硬件已经插入 没有用户登录的OEM 工厂预装 IT部门大规模的部署,没有用户参加 IT部门远程推驱动更新到某台没有管理员权限的计算机 Windows 更新, 自动更新 主服务器,从服务器,等等
设备和驱动安装场景 鼓励开发商把注意力集中在一般情况下的设备安装,写驱 动程序软件包避免那种特定场景下安装。 “为Windows创建部署驱动软件安装包” 是WinHEC 2008 中介绍制作安装工作的会议.(是不是应该删除掉这 一条)
硬件先行的安装步骤 硬件先行的安装是由用户将某个设备连接到系统触发的 接下来让我们讨论一个步骤。这个步骤阐明了在Windows7中,从用 户将一个USB设备连接到PC开始,直到用户可以使用该设备,PnP做 了什么 硬件先行的驱动安装分4个阶段: 搜索 选择 拷贝(Stage) 安装
搜索 驱动的搜索 搜索阶段定义了PnP从哪里可以找到与设备匹配的驱动,和以 什么样的序列安装设备驱动 设备路径(DevicePath):注册表位置,包含了一个PnP用来寻找 驱动程序包的UNC路径的列表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath 搜索 选择 拷贝(Stage) 安装
搜索 在不同Windows版本中即插即用设备搜索的顺序 序列 Windows Vista Windows 7 1 存储驱动器 Windows Update 2 设备路径 3 4 提示需要其他存储介质
选择 选择 搜索 拷备(Stage) 安装 驱动选择 排名是在驱动选择阶段进行的. 排名是从一个以上的驱动安装包中,找到最好的即插即用设备驱动最好的方法, 排名的因素 : 签名的驱动包 功能评分(主要是显示选择XP或 Vista 的驱动模型) 匹配设备ID排序 (硬件ID或兼容ID) 驱动版本的时间区域 驱动版本的版本区域 鉴于两个驱动包, 如果两个都有有效签名,下一步是功能评分,接着是硬件ID, 等等, 以确定最匹配的驱动安装包 在 Windows 7新的特性 – 在默认情况下, Windows 7妥善处理过了数字签名的驱动 软件安装包,在即插即用排名上平等对待。 要知道详细信息,请看如何设置选择驱动 (Windows Vista) http://msdn2.microsoft.com/en-us/library/aa477022.aspx 选择 搜索 拷备(Stage) 安装
驱动选择 最佳的匹在设备和驱动包之间找到共同的 ID 配 是“驱动排名(driver ranking)” 算法得到 在设备的ID 列表中定位匹配的 ID 在UNF文件的ID列表中定位匹配的ID 数字签名“评分” 日期,版本用来作为最后的匹配标准! 如果所选择的设备驱动不在存储位置, 首先被 “拷备(Stage)” 硬件 ID: USB\Vid_vvvv&Pid_pppp&Rev_rrrr USB\Vid_vvvv&Pid_pppp 匹配的ID: USB\Class_cc&SubClass_ss&Prot_pp USB\Class_cc&SubClass_ss USB\Class_cc INF ID1, ID2, ID3,… 文件 1 文件 2 文件 3 文件 4 不匹配!! 其它匹配 最佳匹配
拷备(Stage) 驱动的拷备(Staging) 拷备(Stage) 搜索 选择 安装 已将拷贝(Staging)从驱动安装(Installation)剥离出来。从Windows Vista开始, 这是两个完全分开的操作. 拷备(stage)和安装(install)驱动有不同的权限要求。拷贝(Stage)阶段是允许以标准 用户(Standard User)权限执行的。 拷备(Stage) 搜索 选择 安装
驱动拷备(Staging) 文件 1 文件 2 文件 3 文件 4 文件 1 文件 2 文件 3 文件 4 驱动磁盘 驱动存储 可能来自原始媒体(编者注:如光碟), Windows Update, 驱动路径, 本地目录或网络共享,等等 INF 文件 1 文件 2 用户启动存储入口要求有灵活的访问权限(这句话好像翻译的有问题) 文件 3 文件 4 数字签名的校验,和未签名驱动的需要同意安装的提示只出现一次 系统运行 在设备安装过程中,驱动可以被单独拷贝(stage) 驱动存储 INF 文件 1 文件 2 文件 3 文件 4
安装 设备安装 在安装(Install)阶段系统配置设备; 加载并开始执行驱动 安装是在非交互状态下执行的,系统将忽略当前登陆用户的用户权限 加载驱动到内存,并且针对一个具体的设备创建一个实例 在安装(Install)阶段的最后, 系统可能执行一个Finish-Install Action或 者Co-installer 安装 搜索 选择 拷备(Stage)
文件 1 文件2 文件3 文件3 文件4 文件4 驱动存储 目标位置 对于直接操作文件或者修改设置,没有用户权限的要求 对于用户主动发起的设备安装,允许有灵活的访问权限 系统运行中 驱动存储 目标位置 在安装(install)已经拷贝过(staged)的驱动程序时,将不会再出现签名或者文件提示给用户 INF 文件 1 文件2 文件3 文件4 文件3 文件4
硬件先行的安装 文件 1 文件 2 文件3 文件4 文件1 文件1 文件2 文件2 文件3 文件4 驱动磁盘 驱动存储 目标位置 INF 软件或用户选择“未拷贝的(unstaged)”驱动 系统运行中 驱动存储 目标位置 INF 文件1 文件2 文件1 文件2 重新选择“已拷备的(staged)”驱动 文件3 文件4
硬件先插入的安装流程: Windows 7 是 不 是 不 是 不 是 不 搜索Windows Update 插入设备 搜索驱动找到最好的匹配驱动 基本驱动是否匹配? 是 不 更匹配? 是 搜索Windows Update 下载驱动 拷备驱动到存储路径 不 驱动路径下最匹配? 是 搜索驱动器和设备路径 核心设备安装 不 插入设备 最匹配的在驱动器? 是 开始 结束 不
软件先执行的安装 软件先执行的安装指的是没有插入硬件的情况下,执行”Setup.exe”文件进行安装 软件先执行的安装步骤: Setup.exe 是通过调用SetupCopyOEMInf, DiInstallDriver, or DIFx DriverPackagePreinstall等API来进行驱 动包的拷备(stage). Setup.exe 也许以“强制(force)”模式进行驱动安装. Setup.exe 程序通过调用UpdateDriverForPlugAndPlayDevices, DiInstallDevice, 或 DIFx DriverPackageInstall来触发驱动安装 Setup.exe 还可以执行其它动作,如安装应用软件(可以安装驱动的前后) 拷备(Stage) 选择 安装
软件先执行的安装 文件 1 文件2 文件3 文件4 文件1 文件2 文件3 文件4 文件3 文件4 驱动磁盘 驱动存储 目标位置 INF 系统运行中 系统选择“拷备(staged)” 驱动 驱动存储 目标位置 INF 文件1 文件2 文件3 文件4 文件3 文件4
OEM 预装 (OS Offline) 在OEM预加载(OEM Preload)时,拷贝(staging)是在一个不同的“宿主(Host)”操作系统中进行 的,例如WinPE 没有用户的参与指定文件 关键定义 离线(Offline)的Windows 镜像(操作系统离线) Windows镜像是当前没有运行,或者镜像在.wim 文件中或 Windows安装在 一个单独的分区 包管理器(Package Manager) 这是一个命令行工具,包含在OEM Preinstall Kit和Windows Automated Install Kit(WAIK)中。这个工具可以 将第三方的驱动包添加到离线(Offline) Windows镜像中. F6 当用DVD来启动计算机时, Windows安装程序可以提示用户插入额外的,且必要的驱动安装包
OEM 预装 (OS Offline) OEM 预装 (OS Offline) 安装过程是: 宿主操作系统(Host OS) 安装操作系统的目标计算机 在操作系统安装到目标机器时,用户不能参与驱动安装的搜索,选 择和安装过程 拷备(Stage) 搜索 选择 安装
扩展设备安装 在执行硬件先行的安装时,要如何安装同设备相关的应用软件? Co-installer Finish-install action 每个方法都有其优缺点.我们欢迎大家参加如下的WinHEC 2008会议: Creating Deployable Driver Packages for Windows
立即行动 在制作安装包时要考虑各种不同的安装情景 假设一些用户可能在你没有预想到的情景下安装驱动程序. 记住所有“非交互式(non-interactive user)”的场景. 对某种安装场景,不要将它hard-code到你的安装实现中: 先安装软件,没有管理员权限的用户, 操作系统的安装, 离线拷备(Offline staging), 等等 认识到PnP每个阶段的顺序可能是不同的,这取决于具体安装情况. 对于OEM厂商和IT部门来说,离线操作系统(OS Offline)是在Windows Vista中 出现的新用例 获得Windows自动安装工具(WAIK),拷备(stage)驱动包到离线镜像 用WAIK测试在离线系统(OS Offline)中安装驱动包
附加资源 网络资源: Windows 自动安装工具包(WAIK) WDK 文档在 MSDN 类似于OPK 去 http://www.microsoft.com/, 找到 “Windows Automated Installation Kit” 或 “WAIK” ,并下载 WDK 文档在 MSDN 如何开发安装驱动程序(Windows Vista) http://msdn2.microsoft.com/en-us/library/aa477022.aspx
本地化参考资源 网络资源 Windows 硬件开发者网站http://www.microsoft.com/China/WHDC https://winqual.microsoft.com Windows 媒体中心中文网站: http://www.microsoft.com/china/windows/products/winfamily/mediace nter/default.mspx Windows徽标计划中文技术论坛 http://forums.microsoft.com/china/ShowForum.aspx?ForumID=2150&Site ID=15 Windows徽标流程问题联系 HICWHQL@microsoft.com
疑问和解答
© 2008 Microsoft Corporation. All rights reserved © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.