List of Figures


Chapter 1: Introduction to WDF

Figure 1-1: Simplified drawing of the USB learning device

Chapter 2: Windows Driver Fundamentals

Figure 2-1: Windows core operating system architecture
Figure 2-2: The device stack
Figure 2-3: Sample Plug and Play device tree
Figure 2-4: How a device stack handles IRPs

Chapter 4: Overview of the Driver Frameworks

Figure 4-1: Conceptual view of the WDF model
Figure 4-2: UMDF driver and infrastructure
Figure 4-3: KMDF driver and infrastructure

Chapter 5: WDF Object Model

Figure 5-1: Driver and device callback objects in the Fx2_Driver sample
Figure 5-2: Sample object tree
Figure 5-3: Parent-child relationships among UMDF objects
Figure 5-4: Parent-child relationships among the KMDF objects

Chapter 6: Driver Structure and Initialization

Figure 6-1: Flow of control for a UMDF driver
Figure 6-2: Flow of control for a KMDF driver

Chapter 7: Plug and Play and Power Management

Figure 7-1: Steps in framework startup and shutdown sequences
Figure 7-2: Device enumeration and startup sequence for a UMDF driver
Figure 7-3: Device enumeration and startup sequence for KMDF FDO or filter DO
Figure 7-4: Device addition/startup sequence for PDO
Figure 7-5: Device power-down and orderly removal sequence for a UMDF driver
Figure 7-6: Device power-down and orderly removal sequence for KMDF FDO and filter DO
Figure 7-7: Device power-down and orderly removal sequence for PDO
Figure 7-8: Surprise-removal sequence for a UMDF driver
Figure 7-9: Surprise-removal sequence for a KMDF driver

Chapter 8: I/O Flow and Dispatching

Figure 8-1: Overview of I/O request path from application to device
Figure 8-2: I/O request path through the UMDF device stack
Figure 8-3: I/O request path through a KMDF driver
Figure 8-4: The WDF request processing pipeline
Figure 8-5: Flow of I/O requests through the framework

Chapter 9: I/O Targets

Figure 9-1: UMDF I/O dispatchers
Figure 9-2: WDF I/O request object, WDF memory object, and buffer
Figure 9-3: USB abstraction
Figure 9-4: USB configuration

Chapter 10: Synchronization

Figure 10-1: Threads without locks on a multiprocessor system
Figure 10-2: Threads without locks on a single-processor system
Figure 10-3: Threads with a lock on any system
Figure 10-4: Device synchronization scope
Figure 10-5: Queue synchronization scope for a KMDF driver

Chapter 11: Driver Tracing and Diagnosability

Figure 11-1: Software tracing architecture
Figure 11-2: Viewing a trace log file by using TraceView
Figure 11-3: A real-time TraceView session for Osrusbfx2

Chapter 15: Scheduling, Thread Context, and IRQL

Figure 15-1: Thread interruption on a single-processor system
Figure 15-2: Thread interruption on a multiprocessor system

Chapter 17: Direct Memory Access

Figure 17-1: Conceptually connecting device and memory bus by using map registers
Figure 17-2: How a fragmented buffer is translated by using map registers
Figure 17-3: DMA implementation in KMDF drivers

Chapter 18: An Introduction to COM

Figure 18-1: Schematic drawing of a UMDF driver DLL
Figure 18-2: A typical COM object
Figure 18-3: VTable
Figure 18-4: HRESULT layout

Chapter 22: How to Debug WDF Drivers

Figure 22-1: The WinDbg UI
Figure 22-2: Task Manager displaying WUDFHost processes
Figure 22-3: WinDbg Locals window for CMyDevice--CreateInstance
Figure 22-4: Output from the !dumpdevstacks debugger extension
Figure 22-5: Output from the !wdfrequest debugger extension for Fx2_Driver
Figure 22-6: Output of the !wdfdevice debugger extension for Osrusbfx2
Figure 22-7: Output from the !wdfrequest debugger extension for Osrusbfx2
Figure 22-8: Viewing trace messages with WinDbg
Figure 22-9: KMDF log for Osrusbfx2

Chapter 23: PREfast for Drivers

Figure 23-1: PREfast Message List screen
Figure 23-2: PREfast View Annotated Source screen
Figure 23-3: PREfast Message List screen in filter view
Figure 23-4: Example 1-Uninitialized variables and NULL pointers
Figure 23-5: Example 2-Implicit order of evaluation
Figure 23-6: Example 3-Calling a function at incorrect IRQL
Figure 23-7: Example 4-Valid error reported in the wrong place
Figure 23-8: Example 5-Function type class mismatch
Figure 23-9: Example 6-Incorrect enumerated type

Chapter 24: Static Driver Verifier

Figure 24-1: Results pane in an SDV report
Figure 24-2: Icons used in SDV results
Figure 24-3: A rule violation in SDV Defect Viewer




Developing Drivers with the Microsoft Windows Driver Foundation
Developing Drivers with the Windows Driver Foundation (Pro Developer)
ISBN: 0735623740
EAN: 2147483647
Year: 2007
Pages: 224

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net