A Critical Analysis of the Windows mLAN Driver

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Optimizing Device Drivers For Terminal Servers Plug And Play Device Redirection Framework Gaurav Daga Program Manager Windows Terminal Server Microsoft.
WDM 드라이버의 기본 구조 What is WDM?
Google's android as an application environment for DTV decoder system Consumer Electronics (ISCE), 2010 IEEE 14th International Symposium on, 7-10 June.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
© 2008 Cisco Systems, Inc. All rights reserved.CIPT1 v6.0—5-1 Implementing Media Resources, Features, and Applications Implementing Cisco Unified Video.
Architectural Support for OS March 29, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
I/O Channels I/O devices getting more sophisticated e.g. 3D graphics cards CPU instructs I/O controller to do transfer I/O controller does entire transfer.
Modifying the SCSI / Fibre Channel Block Size Presented by Keith Bonneau, John Chrzanowski and Craig O’Brien Advised by Robert Kinicki and Mark Claypool.
IEEE 1394 / FireWire Nick Pennella 4/17/03. Introduction  -Originally Created by Apple and standardized as IEEE1394 in 1995  -Was intended to be used.
Device Driver for Generic ASC Module - Project Presentation - By: Yigal Korman Erez Fuchs Instructor: Evgeny Fiksman Sponsored by: High Speed Digital Systems.
Chapter 5 Input/Output I/O Hardware I/O Software Software Layers Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Copyright ©: Nahrstedt, Angrave, Abdelzaher
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
计算机系 信息处理实验室 Lecture 12 I/O System
Kristian Naess Qicai Guo Roy Torres Mark Bacchus Yue Kun Alberto Chestaro.
IEEE-1394 Data Link Design Review Sherry Womack Erik Pace ECE 4040 Dr. Martin Brooke.
Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
Chapter 8 Input/Output. Busses l Group of electrical conductors suitable for carrying computer signals from one location to another l Each conductor in.
CHAPTER 13: I/O SYSTEMS Overview Overview I/O Hardware I/O Hardware I/O API I/O API I/O Subsystem I/O Subsystem Transforming I/O Requests to Hardware Operations.
Introduction to USB Development. USB Development Introduction Technical Overview USB in Embedded Systems Recent Developments Extensions to USB USB as.
CSCI-235 Micro-Computer in Science The Network. © Prentice-Hall, Inc Communications  Communication is the process of sending and receiving messages 
OPERATING SYSTEM OVERVIEW. Contents Basic hardware elements.
Microprocessor-based Systems
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-1: I/O Management Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
COMP 3438 – Part I - Lecture 4 Introduction to Device Drivers Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
A Critical Analysis of the Windows mLAN Driver Supervisor: Prof. Foss By: Shaun Miles.
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
Project Proposal for Integrated Control and Connection management Robby Gurdan and Richard Foss.
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent University.
A Critical Analysis of the Windows mLAN Driver Supervisor: Prof. Foss By: Shaun Miles.
A Comparative Study of the Linux and Windows Device Driver Architectures with a focus on IEEE1394 (high speed serial bus) drivers Melekam Tsegaye
Chapter 2 Operating System Overview
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Slide 5-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Processes Introduction to Operating Systems: Module 3.
Unit OS A: Windows Networking A.4. Lab Manual. 2 Copyright Notice © David A. Solomon and Mark Russinovich These materials are part of the Windows.
Organisasi Sistem Komputer Materi VIII (Input Output)
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
1 FireWire Justin Garcia Michael Ripley Stefani Ryan Nathan Wilkinson.
PART 7 CPU Externals CHAPTER 7: INPUT/OUTPUT 1. Input/Output Problems Wide variety of peripherals – Delivering different amounts of data – At different.
System Software Design Colin Gatlin May 12, 2009 Western Washington University.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Device Driver Concepts Digital UNIX Internals II Device Driver Concepts Chapter 13.
Overview of Windows Driver Development Reference: us/gstart/hh/gstart/gs_intro_031j.asp.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
IEEE 1394 The Cable Connection to Complete the Digital Revolution By: Jay Webb.
IEEE 1394b Real-Time Systems Lab. 박 준 호. Real Time Systems Lab. Contents IEEE 1394 Overview IEEE 1394 Specifications P1394a, P1394b, P1394.1, OHCI IEEE.
Progress Report Hwayoung Chae. Contents  Hierarchy of 1394 Device Driver  Linux 1394 Modules  libiec61883 Test Codes  libdv1394 Test Codes.
Chapter 6 Input/Output Organization
Operating Systems (CS 340 D)
Chapter 3: Windows7 Part 4.
Installing and Troubleshooting Hardware
Created by Vivi Sahfitri
Universal Serial Bus (USB)
Chapter 13: I/O Systems.
Presentation transcript:

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

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

mLAN

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

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

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

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

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

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

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

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

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

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

mLAN driver object model

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

IOCTL code handling

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)

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

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

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

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

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

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

Questions? Thank you