iOS Native Application Development

Have Queries? Ask us +91 72592 22234

Course Overview

Course Content

What Is the I/O Kit?

  • Before You Begin
  • I/O Kit Features
  • Design Principles of the I/O Kit
  • Limitations of the I/O Kit
  • Language Choice
  • Using Namespaces in an I/O Kit Driver
  • Using Static Constructors in an I/O Kit Driver
  • The Parts of the I/O Kit
  • Frameworks and Libraries
  • Applications and Tools
  • Other I/O Kit Resources
  • Should You Program in the Kernel?
  • When Code Should Reside in the Kernel
  • Alternatives to Kernel-Resident Code

Architectural Overview

  • Driver Layering
  • Families and Drivers
  • Drivers and Nubs
  • The Anatomy of an I/O Connection
  • The Runtime Environment of Device Drivers
  • Runtime Features
  • Kernel Programming Constraints
  • The I/O Registry and the I/O Catalog
  • Driver Matching
  • The I/O Kit Class Hierarchy
  • The OS Classes
  • The General I/O Kit Classes
  • The I/O Kit Family Classes
  • Controlling Devices From Outside the Kernel
  • The Device - Interface Mechanism
  • POSIX Device Files

The I/O Registry

  • I/O Registry Architecture and Construction 37
  • The I/O Registry Explorer 39

Driver and Device Matching

  • Driver Personalities and Matching Languages
  • Driver Matching and Loading
  • Driver Matching
  • Device Probing
  • Driver Loading
  • Device Matching

The Base Classes

  • The libkern Base Classes
  • Object Creation and Disposal (OSObject)
  • Runtime Type Information (OSMetaClass)
  • Defining C++ Classes in libkern
  • The I/O Kit Base Classes
  • Dynamic Driver Registration (IORegistryEntry)
  • Basic Driver Behavior (IOService)

I/O Kit Families

  • Drivers and Families
  • Families As Libraries
  • Library Versioning
  • Library Loading
  • The Programmatic Structure of Families
  • Typical Classes
  • Naming and Coding Conventions
  • Creating An I/O Kit Family

Handling Events

  • Work Loops
  • Work Loop Architecture
  • Shared and Dedicated Work Loops
  • Examples of Obtaining Work Loops
  • Event Sources
  • Handling Interrupts
  • Handling Timer Events
  • I/O Requests and Command Gates

Managing Data

  • Handling I/O Transfers
  • Memory Descriptors and Memory Cursors
  • Memory in an I/O Request
  • Issues With 64 - Bit System Architectures
  • Relaying I/O Requests
  • More on Memory Descriptors
  • More on Memory Cursors
  • DMA and System Memory
  • Dealing With Hardware Constraints
  • IOMemoryCursor Subclasses

Managing Power

  • Power Events
  • The Power Plane: A Hierarchy of Power Dependencies
  • Devices and Power States
  • Deciding How to Implement Power Management in Your Driver
  • Implementing Basic Power Management
  • Implementing Advanced Power Management
  • Defining and Using Multiple Power States
  • Changing the Power State of a Device
  • Implementing Idleness Determination and Idle Power Saving
  • Receiving Notification of Power-State Changes in Other Devices
  • Receiving Shutdown and Restart Notifications
  • Keeping Power On for Future Device Attachment

Managing Device Removal

  • The Phases of Device Removal
  • Making Drivers Inactive
  • Clearing I/O Queues
  • Detaching and Releasing Objects

Customer Reviews

Thanks to Xpertised and the tutor who walked me through all the topics with Practical exposure which is helping me in my current project.

Course was quite helpful in terms of understanding of concepts and practicality. Its really a very friendly environment to learn. The timing were mutually chosen, as we both are working professional. I am quite satisfied with the course.


For Batch Details
Call us at: +91 7259222234

Not sure? Consult Our Experts

Looking for a Training for


My Team/Organization

I agree to be contacted over mail or phone

Call us at: +91 7259222234