Response Interrupt Transfer-IN Request

I am new in developing the Windows Device Driver. The goal is to share the USB devices on the LAN. After some studies, I try to develop a virtual USB bus driver to access those devices over the Ethernet.

My question is how to response the Interrupt Transfer-in Requests. My program receives the interrupts and stores the information automatically, not on demand. I found my program receives the requests continuously and thus exhausts the system performance. By connecting the device on PC and using Usbsnoop utility, I found the bus driver blocked the requests when no data available. I modified my program to simulate the process and it solved the problem. After some further tests, I found another problem. That is, for some devices, my program can not receive URB_FUNCTION_ABORT_PIPE and/or URB_FUNCTION_RESET_PIPE, the requests for my program to stop blocking and return to the caller, when the drivers related those devices call CloseHandle. And so, the requests keep blocking and the upper-layer programs using the devices can not be terminated.

Please advice, thanks.