一、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/