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/
we have a MSI-X device that supports 4 messages and we are using a WDM driver (legacy code base) with IoConnectInterruptEx. The interrupt connection works for all 4 messages and we do not get any error. But, if I look at the MSI-X table entry, on some system, I see the control field to be 1 meaning it is masked. Sometimes the msg data is 0 or a value.
In the working system, I dump the value of the MSI-X table and see the control being 0 even before calling IoConnectInterruptEx. On the non-working system, I see 1 even after IoConnectInterruptEx.
By disabling the driver and reenabling it, the MSI-X table gets populated correctly. Also I have Windows 10 2004. I did swap the hard disk and the problem stays with the system.
My question is, who does the filling up of the MSI-X table and when?
thanks for any pointers or stuff to look at.
|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||7 Dec 2020||LIVE ONLINE|
|Internals & Software Drivers||25 Jan 2021||LIVE ONLINE|
|Developing Minifilters||8 March 2021||LIVE ONLINE|