18
驱驱驱驱驱驱驱驱驱驱驱驱 驱驱驱驱驱驱驱驱驱驱驱驱 WHQL WHQL 驱驱 驱驱 驱驱驱 驱驱驱 驱驱驱驱驱驱驱驱 驱驱驱驱驱驱驱驱

驱动程序的质量测试方法与 WHQL 认证

  • Upload
    willa

  • View
    317

  • Download
    17

Embed Size (px)

DESCRIPTION

驱动程序的质量测试方法与 WHQL 认证. 王承罡 微软中国技术中心. 内 容. 什么是 WHQL? HCT 测试工具的理解与使用 几个重要的驱动测试工具 如何调试 HCT 发现的测试错误 如何在线提交 HCT 测试结果 驱动程序数字签名的未来策略. 缩写对照表. WHQL – Windows Hardware Quality Lab WHOS – Windows Hardware Online Service http://www.microsoft.com/whdc Http://winqual.microsoft.com - PowerPoint PPT Presentation

Citation preview

Page 1: 驱动程序的质量测试方法与 WHQL 认证

驱动程序的质量测试方法与驱动程序的质量测试方法与WHQLWHQL 认证认证

王承罡王承罡微软中国技术中心微软中国技术中心

Page 2: 驱动程序的质量测试方法与 WHQL 认证
Page 3: 驱动程序的质量测试方法与 WHQL 认证

内 容内 容什么是什么是 WHQL?WHQL?HCTHCT 测试工具的理解与使用测试工具的理解与使用几个重要的驱动测试工具几个重要的驱动测试工具如何调试如何调试 HCTHCT 发现的测试错误发现的测试错误如何在线提交如何在线提交 HCTHCT 测试结果测试结果驱动程序数字签名的未来策略驱动程序数字签名的未来策略

Page 4: 驱动程序的质量测试方法与 WHQL 认证

缩写对照表缩写对照表WHQL – Windows Hardware Quality WHQL – Windows Hardware Quality LabLabWHOS – Windows Hardware Online WHOS – Windows Hardware Online ServiceService

http://www.microsoft.com/whdchttp://www.microsoft.com/whdcHttp://winqual.microsoft.comHttp://winqual.microsoft.com

DFW - Designed for Windows Logo DFW - Designed for Windows Logo ProgramProgramDQS – Driver Quality Signature DQS – Driver Quality Signature ProgramProgramDDK – Driver Development KitDDK – Driver Development KitHCT – Hardware Compatible TestHCT – Hardware Compatible TestDigital Signature – Digital Signature – 驱动程序数字签名驱动程序数字签名 .cat .cat filefileSymbol - Symbol - 驱动程序符号文件驱动程序符号文件 .pdb file.pdb file

Page 5: 驱动程序的质量测试方法与 WHQL 认证

WHQLWHQL 测试测试完成完成 HCTHCT 自测试自测试在线提交在线提交 HCTHCT 测试结果测试结果在线获得来自在线获得来自 MicrosoftMicrosoft 的数字签名的数字签名申请申请 Designed for Windows Designed for Windows 徽标 徽标 (( 可选可选 ))

Page 6: 驱动程序的质量测试方法与 WHQL 认证

HCT HCT 测试准备测试准备选择正确的硬件分类选择正确的硬件分类

已有分类不能涵盖的设备归类于“已有分类不能涵盖的设备归类于“ unclassified”unclassified”搭建符合要求的硬件测试平台搭建符合要求的硬件测试平台

用作测试的用作测试的 PCPC 机必须有机必须有 Designed for Designed for Windows Windows 徽标徽标 ..所有包含的设备必须有所有包含的设备必须有 Designed for Designed for Windows Windows 徽标徽标 ..按照要求搭建测试网络按照要求搭建测试网络

搭建符合要求的软件测试环境搭建符合要求的软件测试环境安装安装 Windows XPWindows XP 或或 Windows Server Windows Server 20032003 操作系统操作系统安装含有数字签名的设备驱动程序安装含有数字签名的设备驱动程序安装最新的安装最新的 HCTHCT 工具集工具集 ..

Page 7: 驱动程序的质量测试方法与 WHQL 认证
Page 8: 驱动程序的质量测试方法与 WHQL 认证
Page 9: 驱动程序的质量测试方法与 WHQL 认证

HCTHCT 工具集工具集是由多个测试工具组成的测试包是由多个测试工具组成的测试包总线相关测试总线相关测试 . USB, PCI, 1394, . USB, PCI, 1394, 等等等等驱动程序质量测试驱动程序质量测试 . Check INF, Driver . Check INF, Driver Verifier, Driver Path ExerciserVerifier, Driver Path ExerciserACPIACPI 功能测试功能测试 . ACPI Sleep, . ACPI Sleep, 等等等等压力测试压力测试 , System Stress, , System Stress, 等等等等硬件功能测试硬件功能测试还包含有一些独立测试工具子集还包含有一些独立测试工具子集 : NDIS: NDIS 网络网络功能测试集功能测试集 , DCT, DCT 图形测试工具集图形测试工具集 , , 等等等等

Page 10: 驱动程序的质量测试方法与 WHQL 认证

HCTHCT 中的驱动程序质量测试工具中的驱动程序质量测试工具Driver VerifierDriver Verifier

跟踪跟踪 1414 项不同的驱动程序执行状态,识别出 项不同的驱动程序执行状态,识别出 I/OI/O 验证验证 , , 内存池使用内存池使用 , , 过少的资源状态或其它问题过少的资源状态或其它问题Driver Path ExerciserDriver Path Exerciser

测试所有的测试所有的 IRPIRP 处理以识别出内存泄露问题处理以识别出内存泄露问题Check INFCheck INF

检查检查 INFINF 文件语法文件语法Public importPublic import

检测驱动程序是否调用了“非法的”功能调用检测驱动程序是否调用了“非法的”功能调用

Page 11: 驱动程序的质量测试方法与 WHQL 认证

其它驱动程序质量测试工具其它驱动程序质量测试工具PREfast for Drivers (PREfast for Drivers ( 包含于包含于 WDKWDK中中 ))

分析驱动程序内存泄露、 分析驱动程序内存泄露、 pool tagspool tags 的不正确使用和其它可能的不正确使用和其它可能发生的错误发生的错误Call Usage VerifierCall Usage Verifier

检测初始化错误检测初始化错误 , IRP, IRP 堆栈错堆栈错 , , 和和 spin Locksspin Locks 和和interlocked listsinterlocked lists 一致性错误一致性错误

Static Driver VerifierStatic Driver Verifier给出错误的分支条件,来检测驱动程序中可能存在的执行路径有关的问题。给出错误的分支条件,来检测驱动程序中可能存在的执行路径有关的问题。这些错误条件包括二次调用这些错误条件包括二次调用 IoCompleteRequestIoCompleteRequest 例程例程 . . 仅对仅对 CC 语言语言程序有效程序有效 . .

WinDBG ----Windows debug toolWinDBG ----Windows debug tool通过双机调试,发现蓝屏错误的原因通过双机调试,发现蓝屏错误的原因

Page 12: 驱动程序的质量测试方法与 WHQL 认证

HCTHCT 测试中测试中……

依照联机文档的步骤配置测试环境开始一步步依照联机文档的步骤配置测试环境开始一步步测试,多数测试是自动测试,不需要人工干预测试,多数测试是自动测试,不需要人工干预认真研读测试规范(认真研读测试规范( Test SpecificatioTest Specificationn ))网上查阅 网上查阅 WHQL ErrataWHQL Errata如果测试环境发生硬件变化,需要重新测试如果测试环境发生硬件变化,需要重新测试典型测试时间:典型测试时间:

系统测试总时间约系统测试总时间约 100100 小时小时未归类未归类 USBUSB 设备测试约设备测试约 88 小时小时

Page 13: 驱动程序的质量测试方法与 WHQL 认证

调试 调试 HCT HCT 测试错误测试错误重复测试重复测试人工验证人工验证排出设备原因 排出设备原因 使用 使用 WinDBG WinDBG 调试驱动程序调试驱动程序对比相同硬件分类的其它设备对比相同硬件分类的其它设备使用操作系统和驱动程序的使用操作系统和驱动程序的 checked buildschecked builds查找 查找 ErrataErrata向向 WHQL TeamWHQL Team 报告报告

Page 14: 驱动程序的质量测试方法与 WHQL 认证

让让 HCTHCT 做得更顺畅做得更顺畅需要申请合法的 需要申请合法的 PnP ID.PnP ID.测试前即增加 测试前即增加 xxx.cat xxx.cat 到 到 xxx.inf xxx.inf 文件文件中中 ..在在 HCTHCT 测试前完成测试前完成 PREPREffast ast 和 和 Driver Driver Verify Verify 测试测试不能忽略不能忽略 ACPIACPI 功能功能严格依照工业标准设计硬件的严格依照工业标准设计硬件的 FirmwareFirmware

Page 15: 驱动程序的质量测试方法与 WHQL 认证

在线提交在线提交 WHQLWHQL 测试结果测试结果申请申请 winqualwinqual帐号 帐号

网上提交经 网上提交经 Verisign Digital IDVerisign Digital ID 签名的 签名的 winqual.exewinqual.exe建立测试结果文件建立测试结果文件 : whqlhct.cab: whqlhct.cab下载和编辑下载和编辑WHQL readmeWHQL readme 文件文件 ..准备提交文件夹准备提交文件夹测试结果文件夹测试结果文件夹 : whqlhct.cab, readme.doc: whqlhct.cab, readme.doc驱动程序文件夹驱动程序文件夹 : : 驱动程序文件驱动程序文件 , *.sys, *.inf, *.sys, *.inf符号文件文件夹符号文件文件夹 (( 可选可选 ):*.pdb):*.pdb在线提交以上文件夹在线提交以上文件夹提交网址提交网址 : http://Winqual.microsoft.com: http://Winqual.microsoft.com使用 使用 Verisign Digital IDVerisign Digital ID 签名提交文件压缩包签名提交文件压缩包通过提交审核后,可在线下载驱动程序签名通过提交审核后,可在线下载驱动程序签名

Page 16: 驱动程序的质量测试方法与 WHQL 认证

驱动程序质量测试未来策略驱动程序质量测试未来策略开发与测试统一到一个工具包中开发与测试统一到一个工具包中

≈≈ DDK + HCT + DDK + HCT + 其它工具其它工具 集成文档 集成文档 , , 测试测试 , , 工具和开发环境工具和开发环境

可开发所有版本的可开发所有版本的 WindowsWindows 驱动程序驱动程序DTMDTM 替代替代 HCTHCT

DTM = DTM = 驱动程序测试管理器驱动程序测试管理器新增 新增 DQS DQS 程序程序

Driver Quality Signature ProgramDriver Quality Signature Program

计划与计划与 Windows Vista RCWindows Vista RC 一同发布一同发布

Page 17: 驱动程序的质量测试方法与 WHQL 认证

Appendix: Appendix: 网上资源:网上资源:微软中国技术中心微软中国技术中心 WHQLWHQL专栏专栏http://www.microsoft.com/china/CTC/http://www.microsoft.com/china/CTC/WHQL/whqlpage.aspWHQL/whqlpage.asp硬件驱动中心硬件驱动中心http://www.microsoft.com/whdc/http://www.microsoft.com/whdc/default.mspxdefault.mspx下载下载WHQLWHQL 测试工具:测试工具:http://www.microsoft.com/whdc/whql/http://www.microsoft.com/whdc/whql/WHQLdwn.mspxWHQLdwn.mspx下载驱动程序调试工具下载驱动程序调试工具 WinDBGWinDBG ::http://www.microsoft.com/whdc/devtools/http://www.microsoft.com/whdc/devtools/debugging/default.mspxdebugging/default.mspx查询查询WHQL ErrataWHQL Erratahttp://www.microsoft.com/whdc/whql/http://www.microsoft.com/whdc/whql/WHQLerr.mspxWHQLerr.mspx

WHQLWHQL 国内支持:国内支持:[email protected]@microsoft.com

Page 18: 驱动程序的质量测试方法与 WHQL 认证