Windows驅動開發入門 -- 理清基本概念

china_jeffery發表於2019-01-15

一、DDK、WDM、WDF、WDK

我們知道開發Windows平臺的應用程式離不開微軟提供的SDK,同樣開發Windows驅動也離不開微軟提供的類似SDK的開發包。但是驅動模型的發展經歷了幾個過程,每個過程都有不同的驅動開發包,所以導致很多初學者容易弄混。

下面通過圖表的形式列出各種驅動開發包的名稱和區別:

驅動模型 驅動開發包 驅動副檔名 支援的系統 備註
Vxd Windows 95 DDK .vxd Windows 95/98/ME,不支援Windows NT 過於古老,基本可以忽略
WDM(Windows Driver Model) DDK(Device Development Kit) .sys Windows 2000/XP/2003
WDF (Windows Driver Foudation) WDK(Windows Device Kit) .sys Windows Vista及以後的版本 WDM為基礎進行了建模和封裝,提供了物件導向和事件驅動的驅動程式開發框架,顯著特點是降低了開發難度

WDF有KMDF(核心模式的驅動程式)和UMDF(使用者模式的驅動程式)兩種模式:
KMDF = Kernel-Mode Driver Framework
UMDF = User-Mode Driver Framework

相關文章