How can Bus driver notified Function driver

Hi All,
I am new to develop Windows driver. Currently there is a customer which request driver to a PCIe card which have a FPGA support several Serial Port and some other function. After reading on ntdev, I found several other topics which shared the same design so I understand that it will be best if i wrote a bus driver which talk read/write to FPGA registers and handle the interrupt. Another serial driver will talk with bus driver through an interface. My question is that I still don’t really understand how the ISR will notify the Function driver. All follow are Read/Write from Serial driver point of view.
-For Read operation I think it will be like : Serial driver will need to request Bus driver first. Interrupt came, ISR in bus driver will check which COM port make this interrupt then copy data from FPGA UART register to a driver buffer then return TRUE. After that DPC will send the data to serial driver by interface. Is this correct ?
-For Write operation : Serial driver will receive data from user application, then it will request an inverted call back to bus driver. When bus driver receive interrupt for Transmitter Holding Register empty, it will finish the call back and Serial driver can send data to Bus driver. This last part is just my assumption and I am not sure about this. Is there another way that bus driver can notify serial driver when Transmitter Holding Register empty interrupt came ?

Thank you for reading.

Tell me more about your other FPGA functions. You *might* consider using the multifunction driver to substitute the bus driver in your example. One advantage of that is that you can distribute interrupts to the underlying drivers.

Hi Shane,
It use the standard core of UART16550, with one legacy interrupt shared.

In that case I’d point you to using mf.sys

Hi Shane,
I saw in other topic that you also mentioned that you can use mf.sys for shared interrupt ( my register are separated). Can you please show me some suggestion on how to do it ?
Thank you very much,

How many BARs does this device expose?
How are the UARTs laid out?

If you can share that I might be able to help you figure out how to use mf.sys to fit your configuration.