Creation of an Object Model and Object Oriented API for
the Windows mLAN Driver
Computer Science Honours, Rhodes University
Supervisor: Prof. R. Foss
This short paper is serves the purpose of exposing the inner-workings of the Windows music Local Area
Network (mLAN) driver to aid in further research of the mLAN system. mLAN represents an innovative
environment for networked high-speed transmission of real-time audio and MIDI streams. An exploration
of the mLAN architecture and the Windows Driver Model gives us insight into the core concepts central
to the creation of the mLAN driver. This understanding will be expressed by developing an object model
of the mLAN driver.
model of the mLAN driver. With this as a base to 1. Introduction
understanding the structure of the mLAN driver, Prompt and on time delivery of data is the there will be a description of the nature of the IO cornerstone of any real-time system. In a Control (IOCTL) codes.
professional environment, such as a music studio,
the precise delivery of audio data dictates the The music Local Area Network (mLAN) 2.
speed (and to an extent, the success) of the Architecture
project. Legacy studios are an array of equipment
and a mass of analogue and digital audio cables. Yamaha began developing a system to proved Configuring the studio becomes a task unto its single cable connections between the arrays of own, time consuming and complex. The standard audio studio equipment in an attempt to assortment of analogue and digital cables depends 1394 (Firewire) was chosen as the foundation on on the nature of the equipment used, representing top of which to build the mLAN system, for it a number of different formats of transmitting addressed the many aspects required of the audio and control data. mLAN provides a proposed system. The mLAN system can operate scalable high-performance real-time audio independently of a central server or a host network system, which allows the digital transfer controller, not requiring the use or the power of a of audio and control data. computer. Responsibility of management and
control of the bus is automatic and falls to This short paper takes a brief look at the mLAN selected nodes on the bus. Using the computer as system and other topics relevant to development a tool to visually model the bus and to manage of a Windows Driver. A look at the concepts the connection of nodes extends the functionality inherent to the development of the mLAN system of the mLAN system.
will take place in the next section. Exploring the
underlying mLAN architecture will set the 2.1 IEEE 1394
context for the mLAN driver. A brief summary of
relevant concepts of the Windows Driver Model IEEE 1394 is a specification that defines a serial will help to give the needed background to bus architecture with a common set of core understand what the mLAN driver accomplishes. features that is an extension to the Control and This will all help in explaining a high-level object Status Registers (CSR) architecture [Anderson,
Page 1 of 6 Creation of an Object Model and Object Oriented API for the Windows mLAN Driver
1999]. The CSR is a standard definition to permit chips [AE Notes, 2005]. The chips, ASICs easier implementation of software, and allows (Application Specific Integrated Chips), provide interoperability between Firewire on different an interface between the IEEE 1394 node and the platforms. It is based on the ISO/IEC 13213 studio equipment. They also control the transfer specification that standardises the offset locations bit-rate, the encapsulation and extraction of audio within the initial register address space. The CSR and MIDI data into sequences, and the specifies the arrangement of an addressable space construction of the Common Isochronous range containing data structures that identify the Protocol (CIP) packets. These CIP packets components of the bus, be it a bus, a bridge or a (comprising a CIP header and several CIP data node, the components state and other information. blocks) make up the payload data of the
isochronous packets that in turn form the Features responsible for the usage of Firewire as isochronous streams. The CIP formatting is based the mLAN system are as follows: on the IEC 61883-1 specification for data flow
and connection management [AE Notes, 2005]. ; High speed bus with scalable performance
The payload of the CIP packet is the AM824 (8 The throughput speed of the bus satisfies
bit label and 24 bit Audio/Music data) block the high bandwidth of any real-time audio
format given by the IEC 61883-6 specification. processing system, allowing a network of
The CIP header contains data that provides a many devices capable of transmitting and
mechanism for synchronising the reassembly of receiving streams of audio data.
the audio/music data. ; Plug and play support
The bus orchestrates the automatic
The isochronous packets are constructed by the configuration of newly added devices.
IEEE 1394 node Link Layer. Packets are Each time a device is added or removed
identified by a channel number that has a single the bus automatically re-enumerates itself,
corresponding stream. Each packet within a forming a new bus topology. This is done
stream comprises several data blocks, which are independently and without the
made up of a number of quadlets (4-byte blocks) intervention of a host system.
[AE Notes, 2005]. Sequences are designated by ; Eliminate host processor/memory bottleneck
the series of quadlets corresponding to a position Processing any amount of multimedia data
in each data block of that packet. Sequences and requires a robust system to handle the
plugs are core to the functionality of the mLAN large and time-dependant flow of data. By
system, in that each sequence is issued from an eliminating the need for a central server
output plug and gathered by an input plug [AE the bus is free to automatically direct the
Notes, 2005]. A plug is an abstraction formed by transfer of data between the devices,
the Enabler, representing the input and output thereby removing a potential bottleneck.
capabilities of the studio equipment. The Enabler This is supported by the use of peer-to-
is software on the computer that interacts with the peer transactions
Transporters (device-specific enumeration of the ; Support for Isochronous data streams
plugs) and allows connection a management. It is Firewire provides support for isochronous
the plugs that the studio equipment can send and packet streaming, satisfying the need for a
receive data on the bus. constant transfer rate in an audio system.
This is a high-priority transfer mode that
A computer must have a driver to know how to guarantees delivery of data at constant
interface to any attached hardware device. IEEE rate.
1394 is a bus, such that each device on the bus is
seen as a node. A host controller (the card that 2.2 The mLAN extension
allows the computer to connect to the bus) must
appear as a node in order for the computer to The mLAN system extends the IEEE 1394 CSR
interact with the bus [McKenzie, 2003]. The architecture by implementing several different
computer’s host controller must have an IEEE registers and by using a series of application level
Page 2 of 6 Creation of an Object Model and Object Oriented API for the Windows mLAN Driver
1394 driver in order to interact with the computer. operations on underlying physical devices or Microsoft ships low level drivers for all the major busses connected to the device. Once again, the device and bus types for the vendor-supplied miniport driver is tailored for vendor specific drivers to make use of. These vendor drivers form operations. The hardware bus driver is supplied client drivers that provide access to the vendor by Microsoft and should not be replaced. specific functionality of the device. The Windows