A Hole In My Head

Doron Holan's musings on drivers and other nibbles and bits

Developing Drivers with the Windows® Driver Foundation, i.e. the WDF book, is apparently back in print!

Yeah! The book is now back in print (see Amazon)

Author: Doron Holan [MSFT] Date: 12/15/2010

Developing Drivers with the Windows® Driver Foundation, i.e. the WDF book, is apparently out of print

Looks like the going price on Amazon is >$250 :(. The good news is that you can still get the...

Author: Doron Holan [MSFT] Date: 08/25/2010

Arbitration and Translation, Part 3

This post is the third in a series.  You can see the others here, Part 1 and Part 2. What is an...

Author: Doron Holan [MSFT] Date: 05/06/2010

Translation and Windows

Arbitration and Translation, Part 2 Building on yesterday’s post, I’m going to try to explain how...

Author: Doron Holan [MSFT] Date: 05/06/2010

Arbitration and Translation, Part 1

A while back Jake Oshins answered a question on NTDEV about bus arbitration and afterwards I asked...

Author: Doron Holan [MSFT] Date: 05/05/2010

WDK v7.1 is now available

A refresh of the WDK is now available on connect. You can download the v7.1 WDK following the...

Author: Doron Holan [MSFT] Date: 02/28/2010

What is IRQL?

Jake Oshins wanted to write about IRQLs and I am gladly letting him use my blog as a platform. Here...

Author: Doron Holan [MSFT] Date: 02/02/2010

WDFREQUESTs are for sharing in KMDF v1.9

In my last post I described why a WDFREQUEST is unique to a particular WDFDEVICE.  There is one...

Author: Doron Holan [MSFT] Date: 03/05/2009

WDFREQUESTs are not for sharing

FYI: this is a bit of a long post, but I wanted to be thorough and illustrative and give some...

Author: Doron Holan [MSFT] Date: 03/04/2009

Great WinHEC presentation on device interfaces compared to device clases

[This is a repeat of a post I made to NTDEV, but I wanted to make sure I reached as many people as...

Author: Doron Holan [MSFT] Date: 02/03/2009

This has got to be one of the top FAQs out there: how do I set up a kernel debugger? I just stumbled...

Author: Doron Holan [MSFT] Date: 01/29/2009

Dude, what happened to Doron?

So, I have not written anything in over 6 months and yet I have posted on NTDEV and public...

Author: Doron Holan [MSFT] Date: 01/27/2009

How do I cancel an IRP that another thread may be completing at the same time?

Let's say that you allocated a PIRP and sent it down your device stack. You free the PIRP in the...

Author: Doron Holan [MSFT] Date: 06/30/2008

What should you change in a sample before you ship it?

I was going to write about how to do this, but the awesome folks at WHDC got to it before I...

Author: Doron Holan [MSFT] Date: 04/23/2008

The WDF 1.7 cointstallers are now available

After a long wait (thank you for your patience!), the WDF 1.7 coinstallers are now up on the connect...

Author: Doron Holan [MSFT] Date: 04/17/2008

Debugger commands (.step_filter) that make my life easier

This is a pretty cool and somewhat obscure debugger command.  It allows you to tell the...

Author: Doron Holan [MSFT] Date: 04/16/2008

EvtDevicePreprocessWdmIrp is not entirely free

One of the WDM escapes in KMDF is EvtDeviceWdmIrpPreprocess (or EvtDevicePreprocessWdmIrp in the API...

Author: Doron Holan [MSFT] Date: 04/02/2008

Using KeAcquireSpinLockAtDpcLevel is only a perf gain if you know you are DISPATCH_LEVEL

Well, that is certainly a long title ;). First, let us look at an approximate implementation of...

Author: Doron Holan [MSFT] Date: 03/28/2008

Inconceivableable

I have no idea who created the name for PNP_DEVICE_NOT_DISABLEABLE, but I probably have the same...

Author: Doron Holan [MSFT] Date: 03/18/2008

Once not disableable, forever not disableable

One interesting quirk about the PNP_DEVICE_NOT_DISABLEABLE state is that once it has been set and...

Author: Doron Holan [MSFT] Date: 03/18/2008

Returning failure from DriverEntry

One thing that is easily overlooked about implementing DriverEntry is that upon return !NT_SUCCESS,...

Author: Doron Holan [MSFT] Date: 03/17/2008

one of the books that started it all...

During my sophomore year at Cal Poly, I decided that I wanted to learn about threads,...

Author: Doron Holan [MSFT] Date: 03/12/2008

Getting 64 bit Vista to open my Inbox the way I want it to

A bit over a year ago I had to figure out why my Mail key started behaving differently on Vista vs...

Author: Doron Holan [MSFT] Date: 03/11/2008

A must have book for any Windows developer

I saw a book, Advanced Windows Debugging, in the Microsoft company store and quickly read through...

Author: Doron Holan [MSFT] Date: 12/19/2007

Device installation on Vista failing when it used to work?

There is a hotfix for setupapi.dll, read the KB article http://support.microsoft.com/kb/937187 and...

Author: Doron Holan [MSFT] Date: 11/21/2007

Why I should not be writing applications ;)

The first driver I owned when I started at Microsoft in 1997 was i8042prt.sys, the driver that...

Author: Doron Holan [MSFT] Date: 11/09/2007

How to share HW resources with another driver not in the same PnP hierarchy

First, I have to say that I don't agree with this design pattern at all. I think it leads to too...

Author: Doron Holan [MSFT] Date: 10/24/2007

WdfDeviceRetrieveDeviceInterfaceString and PDOs

When you initially create a PDO, it takes a few steps for PnP to recognize it. I wrote this problem...

Author: Doron Holan [MSFT] Date: 10/22/2007

Setting a security descriptor on a legacy device object

Setting the security descriptor allows you to control who can open a handle to the device object....

Author: Doron Holan [MSFT] Date: 10/16/2007

Fast Resume and how if affects your driver

Fast resume, which was introduced in Windows XP, is often mentioned when implementing power support...

Author: Doron Holan [MSFT] Date: 10/15/2007

Vista IO manager changes in handling FILE_DEVICE_SECURE_OPEN

After having the IO manager developer review my last 2 posts, he pointed out to me that the IO...

Author: Doron Holan [MSFT] Date: 10/05/2007

Making sure the IO manager evaluates the security of your device

Last time I wrote about how the IO manager handles the creation of file handles and pointed out a...

Author: Doron Holan [MSFT] Date: 10/04/2007

Devices and namespaces (or how the IO manager handles file creation)

Ever wonder how the creation of a handle works? It doesn't matter type of resource the handle you...

Author: Doron Holan [MSFT] Date: 10/03/2007

I am back

First off, man have I been lame. I fell off the blogging horse and it has taken me nearly 3 months...

Author: Doron Holan [MSFT] Date: 10/02/2007

Having two names is not necessarily better than one, part 2

Previously I wrote about what happens when there are 2 devices in a stack with a name and all of the...

Author: Doron Holan [MSFT] Date: 07/12/2007

Of Pipes and Endpoints

If you look at the KMDF headers, you will see two names, pipes and endpoints, that refer to the same...

Author: Doron Holan [MSFT] Date: 07/10/2007

User empathy is a weird thing

I figured that I had a good deal of empathy for a developer who had to write a driver. I have spent...

Author: Doron Holan [MSFT] Date: 06/25/2007

Why does WDF have its own (Wdf)False?

I mean, come on! Another false value? You have the C++ false, the Windows FALSE and now another one....

Author: Doron Holan [MSFT] Date: 06/22/2007

OT: Viewing a multi page TIF in Vista

Here at Microsoft, we have a central fax number and a fax "secretary" which routes the fixes as TIF...

Author: Doron Holan [MSFT] Date: 06/11/2007

I’m a slacker

Sorry about being silent for so long. Things got quite busy with a new project and I kept on...

Author: Doron Holan [MSFT] Date: 06/11/2007

You can find some WinHEC related videos here, including one with Mark Russinovich.

Author: Doron Holan [MSFT] Date: 05/25/2007

Attending BlueHat today

Spending all day listening to security related talked at BlueHat. Mark Russinovich gave the...

Author: Doron Holan [MSFT] Date: 05/10/2007

As I wrote about previously, naming your FDO has some side effects that you may not want to incur....

Author: Doron Holan [MSFT] Date: 05/03/2007

Having two names is not necessarily better than one

Every physical device object (PDO) must have a name. Furthermore, if you read the entire MSDN page,...

Author: Doron Holan [MSFT] Date: 04/18/2007

For those of you who are trying to find the WDK download link on WHDC, it is not longer there. It...

Author: Doron Holan [MSFT] Date: 04/11/2007

Better control over /GS stack checking in your driver

Michael Howard has a great posting on improvements made in the compiler with respect to the /GS flag...

Author: Doron Holan [MSFT] Date: 04/10/2007

Problems with not having a current IRP stack location, part 2

This problem falls into the category being hidden by a macro that does not indicate in its name what...

Author: Doron Holan [MSFT] Date: 04/09/2007

Your completion routine context can be anything you want

It sounds obvious, but sometimes it needs to be stated. For instance, let's say that you are...

Author: Doron Holan [MSFT] Date: 04/06/2007

Filtering HID collections and setting I/O flags

Over the past 3 years or so, I have been casually referring to KMDF as the ultimate driver compat...

Author: Doron Holan [MSFT] Date: 03/26/2007

Changes to !poreqlist

I posted about !poaction and !poreqlist about a year ago. I tend to use these extensions whenever I...

Author: Doron Holan [MSFT] Date: 03/23/2007

Next>