A client driver requests data packet transfers from a peripheral device
through a protocol stack and a host controller. The protocol stack
receives the data transfer request and allocates the request into the
host controller schedule. The host controller schedule requests the data
of the peripheral device, and directs the received data into previously
allocated buffers. The host controller then sends a signal to the client
driver that the respective buffers are filled. The host controller can
then deactivate the instructions in the host controller schedule until
further notice so that the instructions do not need to be deleted from
the schedule. The client driver extracts the data from the buffer, and
sends a signal to the host controller that the buffer can be used again.
The request in the host controller schedule can then be reactivated
without having to necessarily re-insert new instructions into the host
controller schedule.