110 likes | 201 Views
A Critical Analysis of the Windows mLAN Driver. Supervisor: Prof. Foss By: Shaun Miles. Yamaha – using FireWire to connect studio devices via 1394 nodes implementing the mLAN architecture Allows easy connection of equipment in a professional environment Moving away from legacy studios
E N D
A Critical Analysis of the Windows mLAN Driver Supervisor: Prof. Foss By: Shaun Miles
Yamaha – using FireWire to connect studio devices via 1394 nodes implementing the mLAN architecture Allows easy connection of equipment in a professional environment Moving away from legacy studios peer-to-peer transfer of data – no need for host server serial bus – high speed standardised, structured architecture What is mLAN?
Can have PC host controller • modelling device connection • connects input/output plugs between devices • allows easy routing of audio/video • To understand the approach taken by Yamaha, must understand the Windows Driver Model (WDM) • drivers must conform to WDM architecture • handle I/O requests (IRP) from system • call system services in response • issue IRP’s to other drivers
mLAN Device PC 1 2 3 4 0 IEEE1394 Interface Card mLAN Driver I am looking at… • Driver: how the host controller communicates with the firewire bus and connected devices via interface card in PC • Understand Driver design and development • Understand yamaha’s mLAN driver approach
WDM • System creates Physical Device Object (PDO) on device detection • contains physical attributes of device • used for configuration and Power management • PDO creates Functional Device Object (FDO) • represents device • models device functionality • Driver creates instance of FDO on driver load • associated with PDO • interacts with device • can have many instances
Windows Kernel: • Power Management • handles device power management messages • I/O Manager • builds suitable IRP’s from requests from applications • passes IRP’s to driver stack • PnP Manager • manages device objects that represent physical devices • Manages PDO’s and enumerates FDO’s
Kernal Space PnP Manager I/O Manager Power Management IRP Upper Filter IRP IRP Functional IRP IRP Lower Filter IRP IRP Bus HAL Hardware Bus • Function driver • understands how to make the hardware work • implements functionality of device • initiates I/O operations • Bus driver • manages connection between the hardware and computer • Filter drivers • optional secondary or support drivers • usually implemented by vendor
Application user space kernel space IOCTL calls CmLanBus mLAN (child) Device 1394 ASIO WDM AUDIO WDM MIDI CmLanBusDriver mLAN bus driver kernel space hardware mLAN Driver Analysis • CmLANBusDriver - extends KDevice • handles driver initialisation, device management • PDO of driver • CmLanBus – extends KPnPDevice • implements PnP, Power and IRP management functionality • FDO of driver • KClass – template class for driver – Driver Development classes
I Propose… • To make a critical analysis of the driver, and in doing so • produce an OO design document – model driver • produce an API for the Windows mLAN Driver • easier means to develop applications for mLAN • for further research purposes • attempt to improve or suggest relevant improvements to the driver
Time Line • due to nature of project, time line is not concrete and exact length can undetermined • Second term: • Produce OO design document • Evaluate Driver • Literature Review • Third Term: • Investigate driver for weaknesses • Produce API • Project Poster • Improve driver • Fourth Term: • Finish and test API • Write short paper • Write thesis
Questions? Thank you