USB interrupt transfers are "interrupt-like" because the host promises a guaranteed maximum latency for requesting or sending data. There is no interrupt for applications to capture.
For IN endpoints, the HID driver requests data according to the bInterval value in the endpoint descriptor. To retrieve received data from the HID driver's buffer, applications can use ReadFile or Filestream methods. There is no way to know in advance is data is available. To read data continuously, use a loop, a timer, or a thread that reads data and notifies the main application when data is available.
If the application can't keep up with the reports, use a bigger read buffer. If multiple reports are available, the read operation will return as many as fit in the buffer.
Jan