Developing Drivers with WDF: References

Updated: April 27, 2007

Chapter 1: Introduction to WDF
White PaperDeveloping Drivers with WDF: News and Update (WHDC)
White PaperUsing Checked Builds of Windows (WHDC)
Windows MultimediaChannel 9 Web site sponsored by MSDN
WHDC Portal/NodalDebugging Tools for Windows (WHDC)
WHDC Portal/NodalMicrosoft Hardware Newsletter (WHDC)
WHDC Portal/NodalWHDC Web site
WHDC Portal/NodalWindows Driver Foundation (WHDC)
WHDC Portal/NodalWindows Driver Kit (WHDC)
WHDC Portal/NodalWinHEC Web site
OtherBlogs by Microsoft driver development experts
OtherConferences and Training for Developers (WHDC)
OtherDebugging Tools and Symbols - Resources (WHDC)
OtherHardware and Driver Developer Community (WHDC)
OtherSymbols Package (server)
OtherSymbols Package (WHDC)
This link leaves the Microsoft.com siteOpen Systems Resources Web site
Microsoft.comMicrosoft newsgroup home page
Microsoft.comUMDF Objects and Interfaces (WDK)
Microsoft.comUser Account Control (MSDN)
Microsoft.comWDK documentation as part of the MSDN Library

Chapter 2: Windows Driver Fundamentals
White PaperHow do I keep my driver from running out of kernel-mode stack? (WHDC)
OtherDriver Fundamentals Resources (WHDC)
This link leaves the Microsoft.com siteOperating Systems, Stallings
Microsoft.comMicrosoft Windows Internals, Solomon and Russinovich
Microsoft.comDevice Management (WDK)
Microsoft.comGetting Started with Windows Drivers (WDK)
Microsoft.comManaging Hardware Priorities (WDK)
Microsoft.comObject Management (WDK)

Chapter 3: WDF Fundamentals
Microsoft.comWriting Secure Code, Howard and LeBlanc
Microsoft.comCreating Reliable and Secure Drivers (WDK)
Microsoft.comKernel-Mode Driver Framework Design Guide (WDK)
Microsoft.comUser-Mode Driver Framework Design Guide (WDK)

Chapter 4: Overview of the Driver Frameworks
White PaperFAQ: Questions from Driver Developers about Windows Driver Foundation (WHDC)
White PaperWDM to KMDF Porting Guide (WHDC)
Microsoft.comGetting Started with Kernel-Mode Driver Framework (WDK)
Microsoft.comHandling Driver Failures (WDK)
Microsoft.comInterpreting Bug Check Codes (WDK)
Microsoft.comIntroduction to UMDF (WDK)
Microsoft.comService User Accounts (MSDN)

Chapter 5: WDF Object Model
Microsoft.comKernel-Mode Driver Framework Objects (WDK)
Microsoft.comUMDF Objects and Interfaces (WDK)

Chapter 6: Driver Structure and Initialization
Microsoft.comControlling Device Access in Framework-Based Drivers (WDK)
Microsoft.comCreating Secure Device Installations (WDK)
Microsoft.comDevice Interface Classes (WDK)
Microsoft.comDllMain (MSDN)
Microsoft.comSDDL for Device Objects (WDK)
Microsoft.comSecuring Device Objects (WDK)
Microsoft.comUsing Device Installation Functions (MSDN)
Microsoft.comUsing Device Interfaces (WDK)
Microsoft.comUsing GUIDs in Drivers (WDK)

Chapter 7: Plug and Play and Power Management
WHDC Portal/NodalPlug and Play - Architecture and Driver Support (WHDC)
Microsoft.comPnP and Power Management in Framework-Based Drivers (WDK)
Microsoft.comSupporting PnP and Power Management in UMDF Drivers (WDK)
Microsoft.comUSB Power Management (WDK)

Chapter 8: I/O Flow and Dispatching
White PaperDeveloping Drivers with WDF: News and Update (WHDC)
White PaperI/O Completion/Cancellation Guidelines (WHDC)
Microsoft.comCompleting I/O Requests (WDK)
Microsoft.comHandling I/O Requests in Framework-based Drivers (WDK)
Microsoft.comSECURITY_IMPERSONATION_LEVEL (MSDN)

Chapter 9: I/O Targets
Microsoft.comACCESS_MASK (WDK)
Microsoft.comHandling I/O Requests in Framework-based Drivers (WDK)
Microsoft.comObject Names (WDK)
Microsoft.comSpecifying WDF Directives (WDK)
Microsoft.comWinUsb_SetPipePolicy (WDK)
Microsoft.comWINUSB_SETUP_PACKET (WDK)
Microsoft.comZwCreateFile (WDK)

Chapter 10: Synchronization
White PaperLocks, Deadlocks, and Synchronization (WHDC)
Microsoft.comSynchronization (MSDN)
Microsoft.comSynchronization Techniques (WDK)

Chapter 11: Driver Tracing and Diagnosability
Microsoft.comAdding Event Tracing to Kernel-Mode Drivers (WDK)
Microsoft.comCan I customize DoTraceMessage? (WDK)
Microsoft.comControlling Event Tracing Sessions (Platform SDK)
Microsoft.comDoTraceMessage (WDK)
Microsoft.comEvent Tracing (MSDN)
Microsoft.comUsing UUIDGEN.EXE (MSDN)
Microsoft.comWPP Software Tracing (WDK)

Chapter 12: WDF Support Objects
Microsoft.comAllocating System-Space Memory (WDK)
Microsoft.comExAllocatePoolWithTag (WDK)
Microsoft.comIntroduction to WMI (WDK)
Microsoft.comKernel-Mode Driver Framework Design Guide (WDK)
Microsoft.comPropVariantInit (MSDN)
Microsoft.comSupporting WMI in Framework-based Drivers (WDK)
Microsoft.comUser-Mode Driver Framework Design Guide (WDK)
Microsoft.comWindows Management Instrumentation (WDK)

Chapter 13: UMDF Driver Template
Microsoft.comDevice Setup Classes (WDK)
Microsoft.comDllMain (MSDN)
Microsoft.comINF AddService Directive (MSDN)

Chapter 14: Beyond the Frameworks
Microsoft.comKernel-Mode Driver Architecture (WDK)

Chapter 15: Scheduling, Thread Context, and IRQL
White PaperInterrupt Architecture Enhancements in Windows Vista (WHDC)
Microsoft.comMicrosoft Windows Internals
Microsoft.comDo Waiting Threads Receive Alerts and APCs? (WDK)
Microsoft.comKeRegisterNmiCallback (WDK)
Microsoft.comLocking Pageable Code or Data (WDK)
Microsoft.comPAGED_CODE (WDK)
Microsoft.comPAGED_CODE_LOCKED (WDK)
Microsoft.comSpecifying Priority Boosts When Completing I/O Requests (WDK)
Microsoft.comWriting a Bug Check Callback Routine (WDK)

Chapter 16: Hardware Resources and Interrupts
White PaperInterrupt Architecture Enhancements in Windows Vista (WHDC)
Microsoft.comHardware Abstraction Layer Routines (WDK)
Microsoft.comMmMapIoSpace (WDK)

Chapter 17: Direct Memory Access
Microsoft.comDMA Verification (Driver Verifier) (WDK)
Microsoft.comHandling DMA Operations in Framework-Based Drivers (WDK)

Chapter 18: An Introduction to COM
Microsoft.comInside COM from Microsoft Press
Microsoft.comATL documentation (MSDN)
Microsoft.comCOM (Platform SDK)
Microsoft.comDllMain (Platform SDK)
Microsoft.comThe Interface Definition Language (IDL) File (MSDN)

Chapter 19: How to Build WDF Drivers
White PaperC++ for Kernel Mode Drivers: Pros and Cons (WHDC)
Microsoft.comBuild (WDK)
Microsoft.comBuild Utility Limitations and Rules (WDK)
Microsoft.comBuild Utility Reference (WDK)
Microsoft.comBuilding and Loading a Framework-based Driver (WDK)
Microsoft.comBuilding Drivers (WDK)
Microsoft.comUtilizing a sources File Template (WDK)

Chapter 20: How to Install WDF Drivers
White PaperDeveloping Drivers with the Windows Driver Foundation (WHDC)
White PaperDevice Installation Rules for Windows Vista (WHDC)
White PaperKernel-Mode Code Signing Walkthrough (WHDC)
White PaperUsing the Driver Install Framework (DIFx) (WDK)
WHDC Portal/NodalDriver Installation white papers (WHDC)
WHDC Portal/NodalDriver Signing Requirements for Windows (WHDC)
WHDC Portal/NodalWindows Logo Web site
OtherDistributing Drivers on Windows Update (WHDC)
Microsoft.comAdding the Reflector (WDK)
Microsoft.comChkINF documentation (WDK)
Microsoft.comCode-Signing Best Practices (WDK)
Microsoft.comCreating a Catalog File for a PnP Driver Package (WDK)
Microsoft.comCreating an INF File (WDK)
Microsoft.comDevCon documentation (WDK)
Microsoft.comDevice Installation (WDK)
Microsoft.comDevice Installation Design Guide (WDK)
Microsoft.comDevice Manager Error Messages (WDK)
Microsoft.comExplanation of error codes generated by Device Manager (MSDN)
Microsoft.comFramework Library Versions (WDK)
Microsoft.comGuidelines for Using SetupAPI (WDK)
Microsoft.comHow Setup Selects Drivers (WDK)
Microsoft.comInstalling a Framework-based Driver (WDK)
Microsoft.comInstalling Just the Checked Operating System and HAL (WDK)
Microsoft.comInstalling UMDF Drivers (WDK)
Microsoft.comTroubleshooting Device Installation (WDK)
Microsoft.comUninstalling Drivers and Devices on Windows Vista (WDK)
Microsoft.comWriting a Device Installation Application (WDK)

Chapter 21: Tools for Testing WDF Drivers
ToolsKernRate and KRView (WHDC)
White PaperDriver Verifier in Windows Vista (WHDC)
OtherWindows Error Reporting: Getting Started (WHDC)
Microsoft.comApplication Verifier
Microsoft.comChkINF (WDK)
Microsoft.comCompiler for x64 64-Bit Environments (WDK)
Microsoft.comDebugging a Framework-based Driver (WDK)
Microsoft.comDevCon (WDK)
Microsoft.comDevice Path Exerciser (WDK)
Microsoft.comDriver Development Tools (WDK)
Microsoft.comDriver Verifier (WDK)
Microsoft.comDriver Verifier Manager (Windows XP and Later) (WDK)
Microsoft.comHandling Driver Failures (WDK)
Microsoft.comInstalling Just the Checked Operating System and HAL (WDK)
Microsoft.comPlug and Play Driver Test (WDK)
Microsoft.comPNPCPU (WDK)
Microsoft.comPoolMon (WDK)
Microsoft.comPwrTest (WDK)
Microsoft.comVerifier Command Line (WDK)
Microsoft.comWindows Device Testing Framework (WDK)

Chapter 22: How to Debug WDF Drivers
White PaperUsing Checked Builds of Windows (WHDC)
WHDC Portal/NodalDebugging Tools for Windows (WHDC)
OtherSymbols Package (server)
OtherSymbols Package (WHDC)
Microsoft.comBoot Configuration Data (BCD)
Microsoft.comBoot Options for Driver Testing and Debugging (WDK)
Microsoft.comInstalling Just the Checked Operating System and HAL (WDK)
Microsoft.comTrace Message Prefix (WDK)

Chapter 23: PREfast for Drivers
Microsoft.comHow to: Specify Additional Code Information (MSDN)
Microsoft.comPREfast for Drivers (WDK)
Microsoft.comUsing a Pragma Warning Directive (WDK)

Chapter 24: Static Driver Verifier
White PaperStatic Driver Verifier (WHDC)
This link leaves the Microsoft.com siteThorough Static Analysis of Device Drivers (EuroSys 2006 conference)
Microsoft.comDefect Viewer (WDK)
Microsoft.comLibrary Processing in Static Driver Verifier (WDK)
Microsoft.comMicrosoft Research: SLAM
Microsoft.comPreparing to Run Static Driver Verifier (WDK)
Microsoft.comProviding a Template for Tech Transfer (MSR)
Microsoft.comResults Pane (WDK)
Microsoft.comScanning the DriverEntry Routine (WDK)
Microsoft.comSdv-map.h (WDK)
Microsoft.comStatic Driver Verifier (WDK)
Microsoft.comStatic Driver Verifier Commands (WDK)
Microsoft.comStatic Driver Verifier Limitations (WDK)
Microsoft.comStatic Driver Verifier Options File (WDK)



Was This Information Useful?