Welcome to MSDN Blogs Sign in | Join | Help

July 2006 - Posts

A lot of developers have a great experience with KMDF, but then they sometimes hit a wall. They add a chunk of code and the drivers start failing because something in the new code was not implemented correctly. The first question that comes to mind is Read More...
Broadly speaking, there are two (*) types of PIRPs in Windows. By "type" I do not mean the MajorFunction (e.g. IRP_MJ_Xxx) of the PIRP. Rather, a PIRP can be categorized as either threaded or non-threaded. Hopefully I will be able to introduce and clearly Read More...
The short answer isthat you can't ;). Once you have opened a HANDLE by specifying FILE_FLAG_OVERLAPPED, you must provide an OVERLAPPED structure pointer to any HANDLE based API that requires it. If you don't provide the pointer, the results are undefined. Read More...
Totally unrelated to kernel model programming...my friend Scott Selfon, a Senior Audio Specialist (according to Outlook ;) ) on the Xbox 360 team, was interviewed by Major Nelson . It is a pretty interesting conversation about audio from how it is created Read More...
Dr Dobb's has an article, Device Trails: How Windows remembers your connection , that I just found out about. Nothing earth shattering, but an interesting read from a security and auditing perspective. Read More...
At first glance, this is a "what were they thinking when they designed this?" type of issue, but after a little inspection it becomes a little more clear. So, when would the PDEVICE_OBJECT DeviceObject parameter to your completion routine ever be NULL? Read More...
While I don't write apps or drivers for the Macintosh, some of you out there probably do. If you have not already seen it, they posted a Secure Coding Guide ( PDF ) which is focused on OS X, but has generic recommendations as well. I just started reading Read More...
One thing that I have always found clunky is stack frame navigation in windbg/kd. Previously, I thought you had only a couple of options. The first option, if you are using WinDBG, is that you can bring up the call stack window. I have found that this Read More...
IoRegisterPlugPlayNotification() is a pretty scary looking function at first glance. The documentation is not that simple either. So what does this function do and why do you want to use it? IoRegisterPlugPlayNotification() does 2 things (OK 3, but the Read More...
You can download the package from WHDC . It is hard for me to keep track of when they go public, we get internal drops more often and so it is hard for me to know when fixes see the (external) light of day. Enjoy. Read More...
Did you know that there are times when you must free Irp->MdlAddress in your driver? Even more importantly, not only freeing Irp->MdlAddress , but the entire chain of MDLs? But even more importantly then freeing the entire chain, but also unlocking Read More...
This is pretty cool, WHDC has a page linking my blog and a bunch of other Microsoft blogs relating to the kernel, driver writing and the platform. Read More...
Ever notice that the KMDF DDIs do not actually have KMDF in their names? Well, there is an interesting history behind that. When the project started, the framework was called DFX, as in Driver Frameworks (X), similar to how MFC was originally called AFX Read More...
I have been getting quite a few personal emails with specific questions on how to write a driver or how to a specific technology works or how to fix a particular problem. I welcome the emails, but I want these discussions to be public so that they are Read More...
One thing you learn very quickly when writing a driver is that NTSTATUS is used almost everywhere . The consistency is nice, especially compared to user mode where errors can be an HRESULT , LONG , or DWORD (yes they are all the same underlying type, Read More...
 
Page view tracker