一、KMDF版本号与WDK和OS的对应关系
KMDF的版本号基本上都是伴随着WDK的发布而更新的,而WDK的更新一般又是和OS是同步的,比如:Win7对应WDK7,Win8对应WDK8,Win8.1对应WDK8.1,Win10对应WDK10
从VS2012开始支持建立驱动工程。VS2012支持WDK 8.0,对应的KMDF默认版本是1.11。VS2013支持Win 8.1,对应的KMDF默认版本是1.13。
每次新版本WDK的发布,会对应着KMDF版本的更新,其对应关系如下:
KMDF version |
Release method |
Included in this version of Windows |
Drivers using it run on † |
1.17 |
Windows 10, Version 1511 WDK |
Windows 10, Version 1511 |
Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), Windows 10 Mobile, Windows 10 IoT Core (IoT Core), Windows Server 2016 Technical Preview |
1.15 |
Windows 10 WDK |
Windows 10 WDK |
Windows 10 for desktop editions, Windows 10 Mobile, IoT Core, Windows Server 2016 Technical Preview |
1.13 |
Windows 8.1 WDK |
Windows 8.1 |
Windows 8.1 and later |
1.11 |
Windows 8 WDK |
Windows 8 |
Windows Vista and later |
1.9 |
Windows 7 WDK |
Windows 7 |
Windows XP and later |
1.7 |
Windows Server 2008 WDK |
Windows Vista with Service Pack 1 (SP1), Windows Server 2008 |
Windows 2000 and later |
1.5 |
Windows Vista WDK |
Windows Vista |
Windows 2000 and later |
1.1 |
Download only |
None |
Windows 2000 and later |
1.0 |
Download only |
None |
Windows XP and later |
二、KMDF版本与库文件名的关系
这里的库文件名指的是框架库文件(如Wdf01000.sys)和辅助安装程序文件(WdfCoInstaller01000.dll),两个文件的命名都与KMDF的版本密切相关。
KMDF的版本号可分为两个部分:主版本号、次版本号,则
框架库文件的命令规则为:
库的文件名包含主要版本号。文件名的格式为:
Wdf<MajorVersionNumber>000.sys
主要版本号使用两个字符。例如,版本为 1.0 的库的文件名为 Wdf01000.sys。版本 1.1、1.2 等等也都命名为 Wdf01000.sys,且每个新次要版本的库文件都会覆盖之前版本的文件。
如果使用了主要版本 X 的库开发驱动程序,则该驱动程序可在属于主要版本 X 的任何次要版本上运行。
辅助安装程序文件的命令规则为:
内核模式驱动程序框架驱动程序的辅助安装程序随 Windows Driver Kit (WDK) 一起分发。驱动程序包必须将此辅助安装程序包括在驱动程序的 .sys 和 INF 文件所在的相同目录中。
辅助安装程序的文件名采用以下格式:
WdfCoInstaller<主版本号><次版本号>.dll
主版本号使用两个字符,次版本号使用三个字符。例如,辅助安装程序 1.0 版本的文件名为 WdfCoInstaller01000.dll,将来可能发布的版本 3.2 的文件名则为 WdfCoInstaller03002.dll。
驱动程序包包括的辅助安装程序的版本必须与开发驱动程序所使用的框架库的版本相符。
参考资料:
https://msdn.microsoft.com/zh-cn/library/ff544226(v=vs.85).aspx
https://msdn.microsoft.com/zh-cn/library/ff542842(v=vs.85).aspx
http://www.yiiyee.cn/Blog/vs2012-1/