Completing an Isochronous Data Transfer

Once a device no longer needs to transfer data, the driver must inform the bus that the operation is complete, and then deallocate the isochronous resources it allocated when setting up.

Drivers must follow these steps to clean up:

  1. If the driver has begun an isochronous operation through the REQUEST_ISOCH_LISTEN or REQUEST_ISOCH_TALK bus requests, it must issue the REQUEST_ISOCH_STOP request to signal the bus driver to stop the isochronous operation.

  2. Any buffers that remain attached to a resource handle must be detached by using the REQUEST_ISOCH_DETACH_BUFFERS request.

  3. If the driver has allocated a resource handle, it must deallocate it through the REQUEST_ISOCH_FREE_RESOURCES request.

  4. If the driver has a channel allocated, it must deallocate it through the REQUEST_ISOCH_FREE_CHANNEL request.

  5. The driver must deallocate any bandwidth it has allocated by using the REQUEST_ISOCH_FREE_BANDWIDTH request.