Is your feature request related to a problem? Please describe.
The USBMIDI2.sys driver currently does not limit the number of USB packets it can store to transmit. In theory the driver can back log messages, increasing the latency through driver for USB OUT messages. This creates non-predictability for the applications ultimately using the driver.
Describe the solution you'd like
The driver should maitain a minimal buffer depth for servicing the USB data to and from the device.
Describe alternatives you've considered
a 3 or 4 USB Packet storage limit, 1 for currently transmitting, one for processing data to be transmitted and 1 for the next packet to transmit.
Do you wish to contribute a solution?
Yes
Additional context
This comes from evaluation of optimization of device driver architecture. It moves the latency to the Streaming engine which has a large buffer of USB events. This buffer management should also be considered for further performance optimization. The transmission and reception of data from the service through to the physical hardware should be consistent and as low latent as possible.
Is your feature request related to a problem? Please describe.
The USBMIDI2.sys driver currently does not limit the number of USB packets it can store to transmit. In theory the driver can back log messages, increasing the latency through driver for USB OUT messages. This creates non-predictability for the applications ultimately using the driver.
Describe the solution you'd like
The driver should maitain a minimal buffer depth for servicing the USB data to and from the device.
Describe alternatives you've considered
a 3 or 4 USB Packet storage limit, 1 for currently transmitting, one for processing data to be transmitted and 1 for the next packet to transmit.
Do you wish to contribute a solution?
Yes
Additional context
This comes from evaluation of optimization of device driver architecture. It moves the latency to the Streaming engine which has a large buffer of USB events. This buffer management should also be considered for further performance optimization. The transmission and reception of data from the service through to the physical hardware should be consistent and as low latent as possible.