Windows Driver Foundation

產品介紹,程式框架,核心驅動架構,原始碼工具,cat檔,

產品介紹

Windows Driver Foundation(視窗驅動程式基礎,簡稱WDF),是微軟公司所提供的驅動程式開發技術的集合,包括Kernel-Mode Driver Framework(核心模式驅動程式架構,KMDF)、User-Mode Driver Framework(用戶模式驅動程式架構,UMDF)以及PREfast plug-in for Drivers(PFD),目的是要改善目前Windows平台的驅動程式品質,可支持Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008和 Windows 7,以及更新的作業系統上之最新驅動程式架構。WDF架構提供了異步輸入輸出、分層式驅動程式、隨插即用(PNP)、電源管理(Power Manager),以及視窗管理規範(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.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()
{
charbuf[100];
charbuf2[200];
int i =100;
sprintf(buf, "size%d", i);
strcpy(buf, buf2);
}

cat檔

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檔
使用CryptCATAdminAddCatalogAPI
驗證
Signtool verify/kp /c tstamd64.cat toaster.sys

相關詞條

熱門詞條

聯絡我們