Intro

A bit about me:

  • I grew up in the Bay Area and got my B.S in CSc from Cal Poly, SLO
  • I have been working at MSFT for 8.5 years and counting...
  • We own a 100+ year old house, so I have become intimately familiar with home repair ... and now search overstock.com for power tools (which I find personally hilarious because the whole reason I was attracted to programming was based on the problem that I was not good with my hands I was afraid I was going to cut a finger off rather quickly...).

I have been writing drivers the entire time I have been working at MSFT.  That is a bit strange compared to alot of my friends at MSFT, folks tend to move around from job to job over the years.  Anyways, here are the things that  I have worked on / owned over the years:

  • input
    • i8042prt.sys (e.g. PS/2)
    • kbdclass, mouclass,
    • sermouse,
    • hidgame
    • gameenum
    • etc...
  • the Bluetooth core v1.0
    • HCI
    • SDP (client, server, parser, database, caching)
    • L2CAP
  • Kernel Mode Driver Framework (KMDF)
    • pnp/power/power policy state management
    • WDFIOTARGET
    • WMI
    • collections
    • etc...

in addition to drivers, i have had my hands in various parts of user mode (ports class installer, bug fixes in desk.cpl during Windows 2000, bits of BTH UI, etc.), so I am not a pure KM junkie.  I write in C and C++ (a limited subset); I have used C# to implement a couple of KMDF related build tools as well.

 

I am currently working on KMDF, KMDF is a part of the greater WDF (Windows Driver Foundation) initiative at Microsoft.  WDF's goal is to improve driver quality.  We want to improve quality on a variety of fronts, from development time (SDV, PreFAST for drivers) and at runtime (KMDF, UMDF). 

 

BTW, you can download KMDF (And the server 2003 SP1 DDK) from here, https://www.microsoft.com/whdc/driver/wdf/KMDF_pkg.mspx

 

My goal for this blog is to talk about WDM and KMDF driver issues and desing patterns, from the simple and mundane to the hard and esoteric.  I have a ton of repeated questions that i answer all the time, I am open to suggestions for new topics and general banter ;).