Introduction

Hi everybody. My name is Ilias Tsigkogiannis (pronounced as ee-LEE-us chee-go-YA-nis... tough, right? :) ) and I am a new addition to the Microsoft community (2-3 months old). I am working as a Software Development Engineer (SDE) in the User-Mode Driver Framework (UMDF) team. I recently got my Master's degree from UCLA (go Bruins!) in the area of embedded systems. Even though I've written drivers for embedded devices, I am still new in the windows drivers world. You can find additional information for me at http://nesl.ee.ucla.edu/person/show/62 or http://www.ee.ucla.edu/~ilias/ (currently outdated).

The reason that I've picked this title for my blog is to indicate the difficulty of driver development. Although "bus driving" and "driver writing" share one common word, they have nothing else in common, even metaphorically speaking. A bus driver needs to follow a path, i.e. the road, in order to reach his destination. His way is predetermined from the beginning to the end. On the other hand, a driver writer, especially a beginner, has no strict guidelines to follow.

During this initial period at Microsoft my main goal has been to become quickly familiar with the internals of the windows platform and with the development of windows drivers. The internet has been quite valuable in this task, since I've found lots of information, however in the case of driver development the problem doesn't have to do with the quantity, but with the quality and with the organization of the data. Most of the data is scattered around (mailing lists, websites, newsgroups, blogs, etc) and it's hard for a beginner to gather everything by himself. Fortunately for me, I got several useful pointers and directions even from my first day at Microsoft.

The goal of this blog is to gather all this information in one place, so that it can be searched easily. Therefore, most of my posts (at least the initial ones) will be mostly consisted of pointers to external links or books that I've found useful for me. As time goes by (and I become more familiar with the subject) I'll be able to write down more "personal" posts.

Finally, I would like to say that I'll be happy to provide any information on driver development, however it's really possible that I won't be able to answer more advanced questions. Therefore, I would like to point you to 2 more advanced blogs:

1)Peter Wieland's "Pointless Blathering" : Peter is the Development Lead for the User-Mode Driver Framework (UMDF), which is the new Microsoft's framework that will allow the development of drivers that reside in user-mode and not in the kernel (more about it in future posts)! Cool, right? :)

2)Doron Holan's "Hole in My Head" : Doron is working on the the Kernel-Mode Driver Framework (KMDF), which is the framework for kernel-mode drivers that will substitute the current Windows Driver Model or WDM (again, I'll provide more information in future posts).

Both of them are really technical and knowledgeable, since they've got years of experience in this field.