Windows PCI Device Driver Development Guide: Supporting Function Level Reset (FLR)

Windows PCI Device Driver Development Guide: Supporting Function Level Reset (FLR)

In the previous article (Implementing a PCIe Device in Qemu: Implementing Function Level Reset (FLR)), we added the FLR functionality to the PCIe device simulated in Qemu and triggered the reset operation of the device by writing to the PCIe configuration space using windbg. However, the FLR triggered by manually writing to the configuration space … Read more

Windows PCI Device Driver Development Guide: How to Trigger User-Space Events from Interrupt Handlers

Windows PCI Device Driver Development Guide: How to Trigger User-Space Events from Interrupt Handlers

In the article on interrupt handling in drivers, we introduced how to add logic for handling periodic Timer interrupts in the driver for our simulated PCIe device. To test the Timer counting functionality, we also created a user-space test program that reads the Timer’s count register every second. While this approach can test whether the … Read more

Windows PCI Device Driver Development Guide: How to Create a Test Signature for Drivers

Windows PCI Device Driver Development Guide: How to Create a Test Signature for Drivers

In previous articles, we introduced how to write a simple WDF PCI driver, mentioning that Windows drivers need to be signed after compilation, and we used test signatures in our experiments. This article will explain how to create a test signature for the driver. Before discussing test signatures, let’s briefly introduce the principle of Windows … Read more