Windows Driver Foundation
维基百科,自由的百科全书
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,以及更新的作業系統上之最新驅動程式架構。WDF架構提供了非同步輸入輸出、分層式驅動程式、隨插即用(PNP)、電源管理(Power Manager),以及視窗管理規範(Windows Management Instrumentation,WMI)等功能。
目录 |
[编辑] User-Mode Driver Framework
詳見UMDF
使用者模式驅動程式框架(User-Mode Driver Framework)是核心模式驅動程式框架(Kernel-Mode Driver Framework)的子集合,提供隨插即用(PNP)、電源管理(Power Manager)、非同步輸出輸入等功能。
[编辑] Kernel-Mode Driver Framework
詳見KMDF
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(Prefast.exe)是靜態的原始碼分析工具(static source code analysis tool),可偵測原始程式碼中不易用一般編譯器找到的特定類型錯誤,目前已整合至Visual Studio 2005 Team Suite中,使用時只要設定‘Enable Code Analysis For C/C++’為Yes即可。
[编辑] PREfase的工作
- 變數未初始化
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
[编辑] 相關條目
[编辑] 外部連結
- 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
|
|
---|---|
圖形: | DirectX · Direct3D · Graphics Device Interface (GDI) · Windows Image Acquisition · Desktop Window Manager · Windows Presentation Foundation |
音效: | DirectSound · DirectMusic · XACT · SAPI |
多媒體: | DirectShow · Windows Media · Media Foundation |
資料存取: | Microsoft Data Access Components · ADO.NET · ADO.NET Entity Framework |
通訊: | Winsock · Telephony Application Programming Interface |
管理: | Windows Management Instrumentation |
元件模型: | Component Object Model (COM) · COM+ · Distributed Component Object Model · .NET |
驅動程式: | Windows Driver Model · Windows Driver Foundation |
安全性: | Cryptographic Application Programming Interface · Windows CardSpace |
.NET: | .NET Framework · ASP.NET · ADO.NET · .NET Remoting · Windows Presentation Foundation · Windows Communication Foundation · Windows Workflow Foundation · Windows CardSpace · XNA · Silverlight |