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

Home NTDEV
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

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: https://www.osr.com/osr-learning-library/


PCI MMIO event trigger

AvalonAvalon Member Posts: 27

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.

Comments

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!
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 15 Jun 2020 LIVE ONLINE
Writing WDF Drivers 22 June 2020 LIVE ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA