Sign in
A Hole In My Head
Doron Holan's musings on drivers and other nibbles and bits
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Options
About
Email Blog Author
RSS for posts
Atom
RSS for comments
OK
Search
Tags
Coding Thoughts
Design Patterns
KMDF
WDF
WDK Docs
WDM
WinDBG/KD Fun
Archive
Archives
December 2010
(1)
August 2010
(1)
May 2010
(3)
February 2010
(2)
March 2009
(2)
February 2009
(1)
January 2009
(2)
June 2008
(1)
April 2008
(4)
March 2008
(6)
December 2007
(1)
November 2007
(2)
October 2007
(8)
July 2007
(2)
June 2007
(4)
May 2007
(3)
April 2007
(5)
March 2007
(6)
February 2007
(6)
January 2007
(7)
December 2006
(6)
November 2006
(11)
October 2006
(9)
September 2006
(8)
August 2006
(17)
July 2006
(15)
June 2006
(9)
May 2006
(16)
March 2006
(20)
February 2006
(17)
Posts
Subscribe via RSS
Sort by:
Most Recent
|
Most Views
|
Most Comments
Excerpt View
|
Full Post View
A Hole In My Head
How do I debug a failed device install or disable?
Posted
over 7 years ago
by
Doron Holan [MSFT]
5
Comments
Debugging a failed device install or disable can be tough. The error could be hidden in the depths of the system and it might take awhile to figure it out. The error code on the device might be of some help, but it is not always clear. For instance, you...
A Hole In My Head
Symbolic links need protection?
Posted
over 7 years ago
by
Doron Holan [MSFT]
0
Comments
It is not like I go read the WDK docs in my spare time, but one day I did and I came across IoCreateUnprotectedSymbolicLink . Huh? An unprotected symbolic link? I knew about IoCreateSymbolicLink (which by induction would be a protected symlink), but...
A Hole In My Head
I want my sleep key back! (or how to hibernate a machine from your app)
Posted
over 7 years ago
by
Doron Holan [MSFT]
11
Comments
One of the first things I do when I get a new desktop machine or install a new build of Windows is to map the Sleep button on my keyboard to hibernate instead of suspend. Hibernate makes more sense for these machines because they will never run on...
A Hole In My Head
A NULL and zero wait timeout are not the same
Posted
over 7 years ago
by
Doron Holan [MSFT]
5
Comments
When you call KeWaitForSingleObject or KeWaitForMultipleObjects you can provide a pointer to a timeout value. What value you pass for the pointer value makes a huge difference. This subtle distinction is something that first time driver writers do not...
A Hole In My Head
How do I know which symbolic link is being opened?
Posted
over 7 years ago
by
Doron Holan [MSFT]
1
Comments
In my last post I showed how you can distinguish between to different device interfaces being opened on the same device object. While device interfaces are the Microsoft party line for how to expose a PnP device object which can be opened, I realize...
A Hole In My Head
How do I know which device interface is being opened?
Posted
over 7 years ago
by
Doron Holan [MSFT]
4
Comments
Let's say your device supports two interfaces and you want to expose both of them on the same device object. Furthermore, let's say that the I/O interface to each device interface is different. For instance, let's say that one interface allows only...
A Hole In My Head
New for Windows Vista: thread agnostic I/O
Posted
over 7 years ago
by
Doron Holan [MSFT]
3
Comments
When an I/O is issued on behalf of a system service call (for example NtReadFile, NtWriteFile, etc), the I/O manager creates a threaded IRP and then issues the I/O. I previously wrote about this. Today, Paul has returned as a guest writer and will...
A Hole In My Head
Formatting a WDFREQUEST for any IRP_MJ code
Posted
over 7 years ago
by
Doron Holan [MSFT]
2
Comments
In KMDF, the WDFIOTARGET object provides an abstraction for sending I/O to another PDEVICE_OBJECT and tracking all pending I/O. The WDFIOTARGET also provides formatting for specific types of I/O: read, write, IOCTL, and internal IOCTL. The WDFUSBDEVICE...
A Hole In My Head
Look Ma, I'm on Channel 9!
Posted
over 7 years ago
by
Doron Holan [MSFT]
5
Comments
I was interviewed for channel 9 a couple of weeks ago, you see the interview here . We talked about KMDF, the state machines and the future of driver development. I had a great time doing the interview, hopefully you like it as well. Please let me know...
A Hole In My Head
Debugger command (!list) that makes my life easier
Posted
over 7 years ago
by
Doron Holan [MSFT]
7
Comments
Yesterday I introduced the dl command and demonstrated some of its limitations. Today I will talk about !list . Let's take yesterday's data structure, MY_DATA. What if the LIST_ENTRY is at the end of the structure or there is more data in your structure...
A Hole In My Head
Debugger command (dl) that makes my life easier
Posted
over 7 years ago
by
Doron Holan [MSFT]
2
Comments
The use of the LIST_ENTRY structure in WDM is quite pervasive. It is used for nearly all list keeping tasks. I have used it extensively in the past and KMDF uses it quite a bit as well. There are two debugger commands that help in viewing the contents...
A Hole In My Head
IoSetCompletionRoutineEx is not a drop in replacement for IoSetCompletionRoutine
Posted
over 7 years ago
by
Doron Holan [MSFT]
3
Comments
Yesterday I wrote about the evolution of work items. Work items evolved because there was a need to have a reference on the device object until the work item's callback routine returned. As I illustrated yesterday, there is a small piece of assembly...
A Hole In My Head
Why is there an Ex and Io work item in WDM?
Posted
over 7 years ago
by
Doron Holan [MSFT]
8
Comments
Have you ever looked at the work item APIs and wondered why there are two different types of work items? Or for that matter, why are there so many work item APIs? As Paul wrote last week, the work item API set has grown for Vista. Today I will try...
A Hole In My Head
Turning setupapi logging up to 11
Posted
over 7 years ago
by
Doron Holan [MSFT]
3
Comments
When debugging a failed device install, one of the first things you should do is look at the %windir%\setup*.log files (yes files, there are a few of them and the names changed in Vista). But what if the logs do not have enough information for you to...
A Hole In My Head
Enhanced Work Item Support in Vista
Posted
over 7 years ago
by
Doron Holan [MSFT]
2
Comments
While writing the threaded and non-threaded PIRP entry, I had the I/O manager developers review what I wrote to make sure I was giving out correct information. After the review, the I/O manager folks wanted to know if they could write some guest entries...
A Hole In My Head
Viewing your KMDF log in a mini-dump (and other post mortem features)
Posted
over 7 years ago
by
Doron Holan [MSFT]
0
Comments
Your KMDF driver log can also be available in a mini-dump under certain circumstances. If you have a full kernel dump or a full memory dump, the log will be always present (barring any memory corruption or problems writing out the dump file). KMDF...
A Hole In My Head
Customizing the KMDF log for your driver
Posted
over 7 years ago
by
Doron Holan [MSFT]
0
Comments
Yesterday I talked about the KMDF log. The KMDF log is a great tool to debug why a DDI call has failed or diagnose the cause of a bugcheck in your driver. You can customize different attributes of the log so that you can better debug your driver....
Page 1 of 1 (17 items)