1 / 25

A Critical Analysis of the Windows mLAN Driver

A Critical Analysis of the Windows mLAN Driver. Supervisor: Prof. Foss By: Shaun Miles. Overview. mLAN system IEEE 1394 IEC 61883 WDM DriverStudio Framework Object model IOCTL analysis Conclusion and Questions. mLAN. mLAN cont. Bus manages itself – no server

arleen
Download Presentation

A Critical Analysis of the Windows mLAN Driver

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Critical Analysis of the Windows mLAN Driver Supervisor: Prof. Foss By: Shaun Miles

  2. Overview • mLAN system • IEEE 1394 • IEC 61883 • WDM • DriverStudio Framework • Object model • IOCTL analysis • Conclusion and Questions

  3. mLAN

  4. mLAN cont. • Bus manages itself – no server • PC is useful tool – connection management • Application suit • Driver makes PC look like mLAN device

  5. FireWire – IEEE 1394 • Flexible serial bus • Fast – good for real time multimedia • Control and Status Register architecture • Standardises offset locations • Node – addressable entity

  6. Asynchronous or Isochronous • Asynchronous – control packets • Data integrity • Any time arrival • Isochronous – streaming packets • Continuous stream • CIP – IEC 61883 • Ideal for real-time systems

  7. IEC 61883.6 • High level streaming standard • Audio and music data transmission • Based on mLAN specification • Common isochronous packet – CIP • AM824 • 8 bit label • 24 bit audio/music data

  8. Why study the driver? • To understand the driver • Platform to investigate mLAN potential • Model driver for future extensions • Audio/video extension?

  9. Windows Driver Model • Kernel-mode vs user-mode drivers • All kernel-mode drivers – WDM drivers • Supports PnP – device management • Driver – communication pathway – I/O • Layered architecture – driver stack

  10. IO request packet Further specifies the type of request within the major category All IRPs have a major function code Categorises type of request Target device object of the I/O request Specifies IOCTL code if has major function code of IRP_MJ_DEVICE_ CONTROL

  11. I/O Control code • Means for driver responding to IO request • Custom codes for special drivers – mLAN • Definable codes with handler routine • Communication pathway • Contained in IRP – IO request packet • Use DeviceIoControl • IOCTL code • Handle to device - GUID • Input/output buffer

  12. PnP Manger I/O Manger System Registry Object Manger – system addressable memory Driver object Device Object The kernel User-mode space Application Ah, a new device This is the driver to load WIN32 API IRP DriverEntry AddDevice IRP Handler New Device!!

  13. DriverStudio • Driver development tool • C++ class library framework • Utility classes • Forms skeleton, backbone of driver • Encapsulates essential driver features • Used by mLAN

  14. mLAN driver object model

  15. Kernel Streaming Minidriver • Stream Minidriver • Filter driver • Controls adapter • Stream Adapter • Controls stream • Controls hardware • Stream • Data processing of media stream

  16. IOCTL code handling

  17. mLAN IOCTL codes • Grouped by underlying functionality • IEEE 1394 asynchronous requests • IEEE 1394 isochronous streaming • IEC 61883 • ASIO – Audio Streaming Input Output • WDM Streaming (KS)

  18. WDM Streaming (KS) • Inter-driver communication • KS Minidriver to mLAN

  19. ASIO • Implements ASIO driver functionality • Overrides ASIO classes • Used by applications for audio record and playback

  20. Asynchronous IEEE 1394 • Asynchronous communication with bus via Firewire bus driver • Allocate/deallocate bus resources • Channel • Bandwidth • Address range • Driver state information

  21. Isochronous IEEE 1394 • Allocate/deallocate stream resource • Start stream creates WDM minidriver to control stream • Make several requests to Firewire driver to service initial request

  22. 61883 • Uses 61883 protocol driver • Formatting of stream data • Used for plug modelling and connectivity • Plug – input/output • Start/end point of stream

  23. Conclusion • Driver is clearly structured • Modules based on functionality • Compilation problems due to incompatability issues • Analysis done manually, time consuming and messy • Missed out on powerful debugging tool

  24. Questions? Thank you

More Related