Developing Drivers with the Windows Driver Foundation (Pro Developer)
|
Chapter 1: Introduction to WDF
- What Criteria Did We Use for Creating WDF APIs?
- Finding Resources for Each Chapter
- Staying Up to Date with WDF
Chapter 2: Windows Driver Fundamentals
- Asynchronous I/O?
- Using the Kernel Stack
Chapter 3: WDF Fundamentals
- WDF Design Criteria for Plug and Play and Power Management
- Why Did I Choose to Work on WDF?
Chapter 4: Overview of the Driver Frameworks
- Evolutionary versus Revolutionary Changes
- Applications and UMDF Drivers
- When to Implement a Callback
- WDF, UMDF, and WUDF
- Why Use Side Objects?
- 32-bit and 64-bit UMDF Drivers
- Drivers and User Interfaces
- KMDF and WDM
Chapter 5: WDF Object Model
- About Method Naming
- Deletion, Disposal, Cleanup, and Destruction
- On Implementing Object Cleanup and Deletion in KMDF
- Exception: Completed I/O Requests
- Using Callback Objects and Context Areas
- About Context Area Design…
Chapter 6: Driver Structure and Initialization
- On Driver Initialization
- On the UMDF Sample Programming Pattern
- Device Interfaces and Symbolic Links
Chapter 7: Plug and Play and Power Management
- State Machines and the Clear Contract
- KMDF, Storage Devices, and Hibernation
- Stop Idle and Deadlocks
- System Power State Queries
Chapter 8: I/O Flow and Dispatching
- CloseHandle and Cleanup
- Validating I/O Control Codes
- Why Transfer Type Doesn't Matter for UMDF
- Are Memory Objects Necessary?
- Conceptual Inversion in Naming Input and Output Buffers
- Queues as Building Blocks
- Pending Requests and I/O Event Callback Status
- File Objects and I/O Requests in UMDF
- Unbalanced Create and Cleanup/Close Requests
- Another Way to Look at Mark and Unmark
- Self-Managed I/O and the Power State Machine
Chapter 9: I/O Targets
- File Objects and Intra-stack Files
- Managing Memory Objects with Different Buffer Lifetimes
- When to Complete a Request in a WDF Driver
- How UMDF Cancels Requests
- Why Should I Use a File Handle I/O Target Instead of the Windows API?
- Why KMDF Doesn't Support Isochronous Endpoints
- When to Start the Continuous Reader
Chapter 10: Synchronization
- The Microsoft WDF Team on Synchronization…
- The Golden Rule of Synchronization…
- Has WDF Simplified Request Cancellation?
Chapter 13: UMDF Driver Template
- What to Do Next
Chapter 14: Beyond the Frameworks
- For UMDF Drivers that Run on Windows XP
Chapter 19: How to Build WDF Drivers
- UMDF Tips
Chapter 21: Tools for Testing WDF Drivers
- Tracing Techniques for Testing Drivers
- What's the Difference between Driver Verifier and KMDF Verifier?
- Maintaining Released Drivers
Chapter 23: PREfast for Drivers
- PREfast and the Visual Studio Code Analysis Tool
- Tips for Filtering PREfast Results
- Effect of Inline Assembler on PREfast Results
- Annotations Are Like the Notes on a Blueprint
Chapter 24: Static Driver Verifier
- SDV and Microsoft Research
- Under the Hood: How the SDV Verification Engine Works
- Rule Hierarchies and Preconditions-Solving the Problem of Complicated Rules
|