I have developed a WDM driver for a PCI card. For some reason, the IoConnectInterrupt on a specific slot. IoConnectInterrupt returns STATUS_INVALID_PARAMETER. At first I just thought there was something wrong with the motherboard. You see, if a move the PCI card to another PCI slot, the card works just find. IoConnectInterrupt returns STATUS_SUCCESS.
Now I just found out that one of our customers is having the same problem. However, this customer only has one PCI slot which means the customer cannot move the PCI card to another slot.
Here’s the weird part, we have another PCI card of a different type that works just find in that slot. I took a look at the parameters passed to IoConnectInterrupt between the card that does not work and the one that does, and they are the same. There are two different drivers but the Start Device intitialization of the drivers are basically the same.
I am using the translated info vice the raw info from PCM_PARTIAL_RESOURCE_LIST during the Start Device processing.
I have searched the internet and I have found suggestion of what might be causing the problem but nothing so far has fixed the problem.
The engineering says there are no difference between the cards. We think it might be an OS thing but not really sure. Maybe a motherboard but again there is no proof.
All the parameters to IoConnectInterrupt are the same between each card on that specific slot. It just that one card works and the other one does not.
I move the card to another slot and both cards work just find.
Any ideas or suggestions.