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)
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...
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...
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...
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...
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...
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...
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...
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...
Date: 02/03/2009
MSDN link on how to set up a user or kernel debugger
This has got to be one of the top FAQs out there: how do I set up a kernel debugger? I just stumbled...
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...
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...
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...
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...
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...
Date: 04/16/2008
EvtDevicePreprocessWdmIrp is not entirely free
One of the WDM escapes in KMDF is EvtDeviceWdmIrpPreprocess (or EvtDevicePreprocessWdmIrp in the API...
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...
Date: 03/28/2008
Inconceivableable
I have no idea who created the name for PNP_DEVICE_NOT_DISABLEABLE, but I probably have the same...
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...
Date: 03/18/2008
Returning failure from DriverEntry
One thing that is easily overlooked about implementing DriverEntry is that upon return !NT_SUCCESS,...
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,...
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...
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...
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 https://support.microsoft.com/kb/937187 and...
Date: 11/21/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...
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...
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....
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...
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...
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...
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...
Date: 10/03/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...
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...
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...
Date: 06/25/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...
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...
Date: 06/11/2007
Link to some WinHEC related videos
You can find some WinHEC related videos here, including one with Mark Russinovich.
Date: 05/25/2007
Attending BlueHat today
Spending all day listening to security related talked at BlueHat. Mark Russinovich gave the...
Date: 05/10/2007
Creating symbolic links for an anonymous FDO or filter
As I wrote about previously, naming your FDO has some side effects that you may not want to incur....
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,...
Date: 04/18/2007
The WDK ISO download link has been moved off of WHDC
For those of you who are trying to find the WDK download link on WHDC, it is not longer there. It...
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...
Date: 04/10/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...
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...
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...
Date: 03/23/2007