I have bus_driver in which I want to route the child specific interrupts to appropriate child (only).
I followed below to pass the child Isr() func_address to bus_driver
But since I have to call WdfInterruptCreate() in bus_Driver PrepHw(), I will not yet have the Child Isr(). Only after bus completes D0Entry() etc, child FDO loads. I could provide a generic top level ISR() in bus_Driver and then route (call only appropriate child ISR()) based on the vector/MsgId. Not much I guess, but this just involves an extra func call.
Rather is there anyway for the bus_Driver to re-hook a different ISR() for the granted vectors? that way, the top-level redirection is done by HW/OS itself.
Also looks like due to my device stack (Net-Adapter), there is not really much I need to do (for this vector) in the Isr()/Dpc(). I just have to mark corresponding SW descriptor(s) as complete/handled. So was thinking of doing (or atleast test) all this in Isr() itself.