Every time I teach a class — every single time — I learn something. Sometimes I learn that I’m not nearly as patient as I wish I was. But two weeks ago, Jon, who was in a group of interesting and capable driver developers I had the pleasure of working with, brought to my attention […]
When is a WHILE Not a while?
I have a pretty good life. There are a lot of indicators of this, but one in particular is that I have the luxury of being annoyed by things like the issue that’s the topic of this blog post. I was reading some code from Microsoft the other day, and I noticed that a loop I […]
Setting up a 1394 Kernel Debug Connection (Video)
Setting up a kernel debug connection can be intimidating at first, but it’s actually quite straightforward once you have the steps. It’s the sort of thing that’s much easier to demonstrate than it is to explain, so here’s a video of Scott Noone walking through the process.
Using WDF Queues with Manual Dispatch Type (Video)
There’s an old saying that if you ask two developers a question you’ll get three answers. We decided to test that theory by posing a simple challenge: explain WDF Queues with Manual dispatch type. Check out Peter Viscarola’s response here: And then see what Scott Noone had to say:
WDK Visual Studio Integration: A Good or Bad Thing? (Video)
The WDK being integrated into Visual Studio is certainly a big change, but is a good one? Peter and I are asked our opinions on WDK Visual Studio integration all the time, so we decided that it was time to get together and discuss it. Sure, we could have come to a consensus and published an article […]
What WDK Version Am I running?
I know, you’re looking at the title of this blog post and you’re wondering: How can these people make an entire blog post out of such a simple question. Simple? I wish it were so. Read on, intrepid developer… read on. If you’re anything like me, you use multiple systems to do your work. Many […]
Kx Headers in the Windows 8.1 WDK
It’s commonly known that the Windows Kernel uses two standard function prefixes to differentiate externally callable functions (Ke) from private, or internal, functions (Ki). There is, however, a third prefix used in the Kernel that isn’t quite as common: Kx. This prefix is used for internal functions that are processor architecture specific. For example, KxFlushEntireTb […]
EvtIoInCallerContext Callback: Called Even for I/O Operations You Don’t Queue
As we were putting the finishing touches on the material for our new Advanced WDF Seminar, we got to discussing some details of how the EvtIoInCallerContext Event Processing Callback works. Our discussion centered around…
MSFT Ready To Engage Again With The Broader Driver Dev Community?
There were several comments over on NTDEV about how there was only a single driver related presentation at the just-concluded //Build conference. Frankly, I was surprised there was even one! If you haven’t seen it, you can check out well-know MSFT lead Peter Wieland’s excellent presentation here. In the presentation Peter talks about the coming Shark’s […]
Is DMA Cache Coherent on ARM?
On NTDEV we had an interesting discussion about interlocked operations, which, being an NTDEV discussion, took many twists and turns along the way. Out of all the various tangents that occurred, one stuck out to me as it’s something that was worth highlighting: who is responsible for guaranteeing cache coherency of DMA operations on Windows? For example, imagine a […]