[Home] [GoingWare's Bag of Programming Tricks] [crawford@goingware.com]

Subclassing an I/O Kit Device Driver

If you came here looking for more information on my MacHack 2003 talk, you've come to the right place.

However, I just got back from the conference, and I'm really tired, and I have some pressing work to do, so this page is going to be Under Construction for a little while.

The program FWDemo I showed off in the Best Hack Contest wasn't really meant to be a hack at all, but the sample code for my talk. Unfortunately I didn't get it together to put it on the server for the conference CD, so it's not on the CD at all. I'll be posting it here after I rest up.

At some point I'll post an article here about this, that will cover everything I addressed in my talk as well as some things I didn't have time to cover. But I probably won't be able to write it real soon.

In the meantime, you can look at the presentation slides from my talk.

Please bookmark this page and come back later. If you don't see measurable progress in a reasonable time, feel free to pester me at crawford@goingware.com

Here is the synopsis of my talk from the MacHack 18 content page:

The C++ architecture of the Mac OS X I/O Kit allows you to extend or alter the functionality of an existing device driver by subclassing it. This also helps you to work around OS X' exclusive access mechanism that sometimes prevents you from opening existing user space interfaces. Mike will show how to write a driver subclass, get it to load in place of an existing driver while still making use of the original, and how to communicate with it from user space by writing a Core Foundation plugin. As a specific example Mike will subclass IOFireWireSerialBusProtocolTransport to send SCSI Command Descriptor Blocks over FireWire via the SBP2 protocol, under control from a user space application that uses a plugin to interface to the kernel.

Valid XHTML 1.0!