Introduction
Why do we use QEMU?
Pros and cons of using a QEMU virtual device
Driver implementation stages
Communication between a device and its
driverI/O address space
Interrupts
Line-based interrupts
Message-signaled interrupts
Bus mastering
Test device specifications
Structure of the device I/O memory
Interrupts
Device description in QEMU
Initializing the device in QEMU
Working with the I/O memory space
Working with interrupts
Working with DMA memory
Processing requests
QEMU device
Implementing a WDF
driver for the test device
The minimum
driverInitializing device resources
Working with I/O memory
Interrupt handling
Working with DMA
Sending requests to the device
Processing requests from a user mode application
Testing and debugging
Quality control of
driver code
Driver installation
Driver communication
Implementing
driver unit tests
Implementing
driver autotest
Driver verification with
Driver Verifier and WDF Verifier
References