Windows Driver Frameworks
此条目包含指南或教学内容。 (2014年10月18日)  | 
| 其他名称 | Windows Driver Foundation | 
|---|---|
| 开发者 | 微软 | 
| 当前版本 | 
  | 
| 源代码库 | |
| 操作系统 | Microsoft Windows | 
| 类型 | 软体开发工具、API | 
| 许可协议 | MIT授权条款[2] | 
| 网站 | learn | 
Windows Driver Frameworks(Windows驱动程序框架,简称WDF,前称Windows Driver Foundation),是微软公司所提供的驱动程式开发技术的集合,包括Kernel-Mode Driver Framework(核心模式驱动程式架构,KMDF)、User-Mode Driver Framework(使用者模式驱动程式架构,UMDF)以及PREfast plug-in for Drivers(PFD),目的是要改善目前Windows平台的驱动程式品质,可支援Windows 2000以及更新的作业系统之最新驱动程式架构。WDF架构提供了非同步输入输出、分层式驱动程式、随插即用(PNP)、电源管理(Power Management),以及Windows管理规范(Windows Management Instrumentation,WMI)等功能。
User-Mode Driver Framework
[编辑]用户模式驱动程序框架(User-Mode Driver Framework)是内核模式驱动程序框架(Kernel-Mode Driver Framework)的子集合,提供即插即用(PNP)、电源管理(Power Manager)、异步输入输出等功能。
Kernel-Mode Driver Framework
[编辑]Kernel-Mode Driver Framework(核心模式驱动程式架构,简称KMDF),是美国微软公司推出的视窗驱动程式基础(Windows Driver Foundation)之一,建构Windows XP与Windows Server 2003的核心模式(Kernel-Mode)驱动程式所需的基本功能,包括对随插即用(PNP)、电源管理(Power Manager)、I/O伫列、直接记忆体存取(DMA)、Windows Management Instrumentation(WMI)和同步处理等的完整支援。KMDF的设计并不能用来取代WDM,它提供“Skeletal WDM”(一个骨架)建置来替代WDM;目前,KMDF并不支援汇流排筛选驱动程式(Bus Filter Driver)。
PREfast
[编辑]PREfast(Prefast.exe)是静态的原始码分析工具(static source code analysis tool),可侦测原始程式码中不易用一般编译器找到的特定类型错误,目前已整合至Visual Studio 2005 Team Suite中,使用时只要设定‘Enable Code Analysis For C/C++’为Yes即可。
PREfast的工作
[编辑]- 变数未初始化
 
 void init() {
     int a;
     int b;
     b = a;
 }
- 运算元优先权的问题
 
 void priority() {
     int a = 1;
     int b = 1;
     int c = 1;
     if(a & b == c)
        return ;
 }
- 记忆体溢位问题
 
 void overrun() {
      char buf[100];
     char buf2[200];
     int  i = 100;
 
     sprintf(buf, "size%d" , i);
     strcpy(buf, buf2);
 }
Kernel-Mode Code Signing
[编辑]微软提供测试时期的类别签章认证,可以让使用者产生所需要的CER档与CAT档。
首先,使用文字编辑器建立一个 .cdf 档案,包含要加入目录的档案及其属性的清单。
 [CatalogHeader]
 Name=Good.cat
 PublicVersion=0x0000001
 EncodingType=0x00010001
 CATATTR1=0x10010001:OSAttr:2:6.0
 
 [CatalogFiles]
 ...
- 产生一个cer档
 
 makecert -pe -ss PrivateCertStore -n CN=Contoso.com(Test) ContosoTest.cer
makecert.exe 可制作cer格式的证书,即X.509证书。
- 产生一个cat档
 
 MakeCat -v Good.cdf
 Signability.exe /auto /cat /driver:package_directory /os:512
- 产生cat档签证
 
 SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t
 http://timestamp.verisign.com/scripts/timestamp.dll Good.cat
- 安装签证过的cat档
 
使用CryptCATAdminAddCatalog API
- 验证
 
 Signtool verify /kp /c tstamd64.cat toaster.sys
相关条目
[编辑]参考资料
[编辑]- ^ Release 10.0.15063.0. 2017年6月22日 [2018年3月15日].
 - ^ Windows Driver Frameworks. GitHub. Microsoft. [2017-02-15].
 
外部链接
[编辑]- Kernel-Mode Code Signing Walkthrough (页面存档备份,存于互联网档案馆)
 - Windows Driver Foundation Homepage
 - Windows Driver Kit
 - [1] OSR Online, including many articles about WDF, KMDF, and Windows driver development.
 - Introducing Windows Driver Framework,written by well-known Windows driver developer, Walter Oney.
 - Building and deploying a basic WDF Kernel Mode Driver,CodeProject
 - Developing a WDF USB Kernel Mode Driver for the OSR USB FX2,CodeProject