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.