A Critical Analysis of the Windows mLAN Driver Supervisor: Prof. Foss By: Shaun Miles.
-
Upload
lee-jennings -
Category
Documents
-
view
212 -
download
0
Transcript of A Critical Analysis of the Windows mLAN Driver Supervisor: Prof. Foss By: Shaun Miles.
A Critical Analysis of the Windows mLAN Driver
Supervisor: Prof. Foss
By: Shaun Miles
Overview
What is mLAN? Project Focus Windows Driver Model – more in depth mLAN Driver Analysis Timeline Questions?
What is mLAN?
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 Isochronous and Asynchronous transfer methods Standardised – built on CSR architecture or 1394
What is mLAN cont…
Can have PC host controller modelling device connection connects input/output plugs between devices allows easy routing of audio
mLAN Driver
1
mLAN Device
PC
IEEE1394 Interface Card
2 3 4
0
Project Focus
Windows drivers must conform to WDM architecture provides defined communication stream how applications access hardware/devices call appropriate system services
mLAN Driver: virtual management of devices on the firewire bus via interface card in PC Understand yamaha’s mLAN driver approach Driver design: object model and sequence diagrams Write IOCTLs wrapper classes
Windows Driver Model - WDM Architecture for Windows Operating system
designing developing
Kernel-mode driver system calls has to be reliable
Layered approach driver stacks moves away from monolithic drivers
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
handles & allocates hardware resource requests
I/O Request Packets – IRP’s
Built by I/O Manager In response to application system communicates with kernel-mode drivers
Driver Communication packets requests an action from device handled by relevent driver in stack passed on until request is satisfied
IOCTLs
I/O Control Codes – part of IRP Specifies function or action other than
read/write requests Defined by unique code Project focus: IOCTLs wrapper classes
Interface an application can communicate directly with a device via its driver
Device and Driver Objects
Driver object used by I/O Manager to access driver code contains pointers to driver entry routines created in I/O Manager on driver install and load
Device object represents a logical, virtual, or physical device handles I/O requests (IRP’s) does most of the processing
Example of driver
stack
Applications
WIN32
PnP Manager
I/O Manager Power Management
Client Driver
HAL
IRP
IRP
IRP
IRP
IRP
IRP
IRP
User Space
Kernal Space
Hardware Bus
Host Controller
PCI
1394Bus
Simplified view
I/O manager creates IRP
Drivers pass down until request satisfied
mLAN Driver Analysis CmLANBusDriver
Driver object handles driver
initialisation, device management
CmLanBus Device object implements PnP,
Power and IRP management functionality
Makes use of other client drivers
Application
WDMMIDI
1394 ASIO WDM AUDIO
CmLanBusDriver mLAN bus driver
CmLanBusmLAN (child) Device
user space
kernel space
kernel space
hardware
IOCTL calls
Time Line Third Term:
Produce Object Model Extrapolate Sequence Diagrams Write IOCTLS wrapper classes for driver Project Poster
Fourth Term: Finish and test IOCTLS wrappers Write short paper Write thesis
Questions?
Thank you