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 site.  To get the bits go to http://connect.microsoft.com Log in using your passport account Navigate to the WDF page (I don’t know where it lives in the connection directory, sigh) Choose Downloads on the left The…

2

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 potential security hole.  If there is a namespace (or path) after your device’s name in the path passed to CreateFile, the IO managed does not evaluate the security settings set on your device and relies on your driver…

1

Of Pipes and Endpoints

If you look at the KMDF headers, you will see two names, pipes and endpoints, that refer to the same concept.  They can be confusing, I had to spend a few minutes explaining them to one our technical writers awhile back explaining why we had two names in the first place (and, yes, there is a…

0

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. Furthermore, another boolean type (BOOL, BOOLEAN, bool)? … at least we didn’t add one a traditional Boolean type. What gives? If I were not a member of the WDF team I would question their design skills,…

3

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 allocating your own IRP, your context contains I/O related data (like a URB) and you encounter the issue where the DeviceObject passed to your I/O completion routine is NULL. Adding another stack location is one solution I wrote…

0

Which callback is called on surprise or graceful removal?

WDF performs a lot of state tracking for you, from PnP to power state to the number of outstanding I/Os. In particular to this question, WDF abstracts surprise removal and graceful removal from you. WDF also handles all of the standard things that you must perform on surprise or graceful removal: disabling device interfaces, destroying…

0