A system and method for transferring data over an external transmission medium.
A host computer is coupled to a device through a serial bus. A transfer object
is configurable to encapsulate data transfer-related functionality, providing a
generic interface for transmission of data over a variety of external transmission
media and protocols. A user makes one or more transfer requests. Transfer objects
corresponding to each request are built and linked together to form a sequential
chain. The requests of the transfer objects are executed sequentially. If the current
transfer object is the first in the chain, the request is executed on a current
thread at passive level or higher, otherwise the request is executed on a system
(kernel) thread at dispatch level. When a response to the request returns, control
is returned to the current transfer object. The process is repeated until all transfer
objects are processed.