Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results


More Info on Driver Writing and Debugging

The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.

Check out The OSR Learning Library at:

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

PCI MMIO event trigger

AvalonAvalon Member Posts: 32

Is it possible to create a kernel object like KEVENT that will react to some change in physical memory if pointed to it correctly. We have a MMIO region of physical memory from the PCIe device, that will occupy regions between x and y, that contains structured data.

If that PCI device placed into phys mem x[0x100] a byte that if set to 1, signalling structure data between 0-0x100 is ready, otherwise wait.

Now the simplest solution would be polling but that is not clean. So can I create some type of kernel event which has some signal field which I could place on x[0x100], and the hardware can set that byte in physical mem.

  1. So for test one a simple way for hardware memory map to sync with a kernel driver.
  2. And for test two, if I wanted the driver to trigger immediately, would I consider some interrupt generated from the PCI device, or what are your thoughts for signalling? I don't know all the details about there hardware device and what they can support just yet.


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Developing Minifilters 24 May 2021 Live, Online
Writing WDF Drivers 14 June 2021 Live, Online
Internals & Software Drivers 27 September 2021 Live, Online
Kernel Debugging TBD 2021 Live, Online