IRQL Priority Problems

Hoping someone can help us with a KMFD driver on Windows 7 problem we’ve encountered. Our driver was written to support some custom hardware used to communicate with avionics equipment. Everything works well and we’re almost at the end of the project. We have one target device (out of many) that is giving us some problems. It appears to be a timing problem where we have slightly longer than expected gaps in transmission between buffers (32 word buffer).

The problem happens because our driver is CPU dependent and has no DMA support. The transmitter raises it’s buffer empty interrupt right before putting the last word in the buffer on the line. Most of the time, the interrupt gets handled efficiently and the buffer is refilled during the time the last word is being transmitted. In this case, the time delta between words is consistent and there is no gap. On occasion, it appears another driver in the system is preempting ours. This results in a delay in refilling the buffer and we get a longer than expected delta between words.

This is not a new problem with this driver. I had to make some adjustments to threading and affinity to fix it before. It was really, really bad, but I got it to the point it is pretty consistent and interrupts get handled almost real-time (obviously, windows is not real-time). I researched and research looking for a way to increase the IRQL of our driver and give it a higher priority so it can’t be preempted but came up empty handed.

Can any tell us if there is a way we can increase the priority? Or know of any tools that will help us figure out what driver is preempting ours (without causing further latency)?

Any help would be greatly appreciated.

Wrong list… my apologies. Please remove.