A stream class driver for use in a computer operating system functions
together with a minidriver. The minidriver is associated with a
particular design for an adapter, which is a hardware device that
generates or receives streaming data. The stream class driver deals with
common operating system tasks such as direct memory access,
scatter/gather memory use and Plug n Play. The stream class driver is
independent of the hardware design and can therefore function with any
type of streaming device or external buses such as USB or IEEE 1394. the
minidriver functionality is limited to only those functions required by
the unique aspects of the hardware and for the minimum requirements of
operation, thereby minimizing the complexity and burden of designing
minidrivers for hardware devices.