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/
The company I work for designs and manufactures various types of I/O cards.
A customer is currently seeing some strange interrupt behavior with one of our PCIe digital I/O boards. This board and the WDM driver (written by a consultant) have been around for years. We can’t reproduce the problem and no other customers have reported it. My knowledge of kernel drivers and kernel debugging is limited.
I’m hoping one of you may have some ideas on what might be going on.
The customer runs a console application which writes a few registers to configure change-of-state interrupts. He then changes the voltage on the input channel. He should get an interrupt at this point, but he doesn’t. If he uses the console app to read any register on board, then he will see the interrupt.
We had the customer repeat the test using a debug build of the driver with DebugView. No ISR trace statements were seen when the channel was toggled. A subsequent register read was required to see them.
Windows 10 Enterprise LTSC
Rackmount computer with Xeon W-2123 CPU
Board is using MSI
The board’s registers are mapped into user space. The console application read/writes the board through a user space pointer.
Ideally, we would be able to get our hands on their system and hook it up to a bus analyzer. However, that doesn’t seem likely.
I realize this isn't a lot to go on but any ideas?
|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!|
|Writing WDF Drivers||12 September 2022||Live, Online|
|Internals & Software Drivers||23 October 2022||Live, Online|
|Kernel Debugging||14 November 2022||Live, Online|
|Developing Minifilters||5 December 2022||Live, Online|