Sign in
Pointless Blathering
Peter Wieland's thoughts on Windows driver development, and occasional rants about computing in general.
Tags
Code
Device Drivers General
DMA
KMDF
Other
Pages
Storage Drivers
UMDF
Vista
Browse by Tags
MSDN Blogs
>
Pointless Blathering
>
All Tags
>
device drivers general
Tagged Content List
Blog Post:
New KMDF white-paper out on writing a bus driver
PeterWieland
Penny Orwick has been working on a white paper that talks abut using KMDF to write a bus driver. It’s been stalled waiting for us lazy developers to review it, but it finally came out last night: http://www.microsoft.com/whdc/driver/wdf/KMDFBusDrv.mspx
on
21 Oct 2008
Blog Post:
Measuring DPC time
PeterWieland
At the DDC this year we had some very useful “community forums”. I generally come out of these feeling like I've been beaten with a sack of oranges, and this year was no exception. But one question in particular struck my eye – someone was saying that MS didn’t provide any useful tools for figuring out...
on
6 Oct 2008
Blog Post:
WDK available in other languages
PeterWieland
This is pretty cool, though my high-school french isn't sufficient to appreciate it completely. The WDK content on MSDN has been translated into multiple languages. It's a machine translation and to make up for the inconsistencies they do side-by-side english & other language. It...
on
24 Sep 2007
Blog Post:
My UMDF driver has some data - how do I get it to my app?
PeterWieland
This came up as a question on NTDEV today. After I thought about it for a bit I realized it was actually a pretty good question. You've started writing your driver, or at least thinking about your driver. You know you'll get some data back from the device and you need to get it to the app. How do you...
on
5 Feb 2007
Blog Post:
Do UMDF drivers require signing?
PeterWieland
To quote from Rev. Lovejoy : Shoo, short answer: "Yes" with an "If", long answer "No" - with a "But. There are two types of driver signing, which complicates the answer. As usual any answers I provide are probably vague and can be overridden by standard documentation. In this case the...
on
23 Jan 2007
Blog Post:
Fixing the UMDF USB samples to install both on XP & Vista
PeterWieland
UMDF's content in the WDK contains a handful of examples for controlling a USB device. Unfortunately they only show how to do it on Vista. The problem was that WinUSB's co-installer wasn't added to the WDK until very late - too late for us to be able to change our samples to show how to use it. WINUSB...
on
10 Jan 2007
Blog Post:
Glossary Definition of "WDM"
PeterWieland
I got looped into a discussion about the WDK glossary entry for "Windows Driver Model". It got me thinking about how difficult it is to explain things in the driver space to non-driver folks. When I was working in storage I used to have this problem all the time. Someone, usually a family member...
on
23 Oct 2006
Blog Post:
Does Windows have a "Scheduler"
PeterWieland
The question came up on the NTDEV mailing list a while back about how the "Scheduler" works in Windows … specifically about what thread it ran on and how it got control. The answer is that you should ignore this idea that there's a "scheduler" as an independent entity. It doesn't exist like that...
on
20 Oct 2006
Blog Post:
Meet my boss
PeterWieland
Nar's talk on the NT I/O manager is now up on channel 9.
on
2 Oct 2006
Blog Post:
Ilias Tsigkogiannis has started a Blog about learning to write Windows Drivers
PeterWieland
Ilias is the latest addition to the UMDF development team. I'm really excited that he's decided to start blogging about his initial experience learning about how WDM and UMDF drivers work. Hopefully this can serve as a helpful introduction for anyone who is just starting off with driver development.
on
28 Sep 2006
Blog Post:
COM in UMDF
PeterWieland
UMDF defines all of its interfaces using COM interfaces, rather than the flat C-style DDI that the KMDF team used. When kernel developers see this their first question is often "why did you do that?" and it's an understandable question. I had a long discussion at WinHEC about this exact topic. First...
on
15 Sep 2006
Blog Post:
Building the UMDF 1.0 (beta) samples
PeterWieland
I'm sorry it's taken me so long to write about this. The last week or two have been pretty hectic as we try to lockdown for Vista. But we still want people to download the UMDF 1.0 beta, and here are the instructions for that. The first step, of course, is to install the WDK. You can...
on
28 Jun 2006
Blog Post:
UMDF 1.0 (for XP only) beta is FINALLY avaialble
PeterWieland
YIPPY!!! Sometimes it seems like releasing software is more complicated than developing it. We really wanted to have this at WinHEC, but that just wasn't going to happen. Fortunately I have an amazing team to help push through all the problems and process imposed upon us. So we have a beta release...
on
15 Jun 2006
Blog Post:
Windows Driver Kit Beta 2 is finally available
PeterWieland
I got back from vacation today and went to connect.microsoft.com to see if the WDK beta was up yet, and i'm happy to say that it is. It's a fairly large (2.3 GB) ISO image to download and i'm pulling it down now to make sure it works okay. Here are the steps i had to follow to get into...
on
30 May 2006
Blog Post:
GetScatterGatherList will coallesce contiguous SG list entries
PeterWieland
GregH asked me an interesting question at WinHEC today - one for which I didn't immediately know the answer. He was wondering whether the new DMA DDIs (Get|PutScatterGatherList) would return a single SG entry for each page, or whether they would coallesce physically contiguous pages into a single entry...
on
25 May 2006
Blog Post:
UMDF is almost available for play
PeterWieland
I finished my talk on UMDF at WinHEC yesterday. It seems to have gone reasonably well, so I'm relieved about that. The bad news is that we couldn't make our beta support for XP available due to some internal logistical problems, but it's still on the horizon. Even though the XP support isn't available...
on
24 May 2006
Blog Post:
What is DMA (Part 9): I/O MMUs and why you'll wish you'd used the DMA DDI in 3 or 4 years
PeterWieland
Perhaps you've read through all of my posts about DMA and still think that using the DMA DDIs is optional. After all you've built a 64-bit card, and you're not using DAC so you don't have to worry about busses being downgraded on you (or maybe you don't believe in the boogyman either). Sure someone might...
on
11 May 2006
Blog Post:
What is DMA (Part 8) - BuildScatterGatherList
PeterWieland
Since i'm on vacation next week, i thought i'd tackle something light this week. Last time i talked about GetScatterGatherList and PutScatterGatherList and how much better they are than the older method of doing DMA. But as much as I like these two functions, they have one major problem that hit us...
on
6 Apr 2006
Blog Post:
What is DMA (part 7) - Scatter Gather DMA the "new" way
PeterWieland
Yesterday i talked about how to do your DMA operations the old way. And it's painful. Very, very painful. Fortunately for those of you with bus-mastering controllers there's a much easier way. AllocateAdapterChannel suffers from some real problems. It can't fail if the system is low on...
on
30 Mar 2006
Blog Post:
What is DMA (Part 6) - Scatter Gather DMA the "old" way
PeterWieland
What Is DMA (Part 6) - Scatter Gather DMA the "old" way To be honest, it has been a long, long time since i've needed to support slave-mode DMA or packet-based non-scatter-gather DMA. To talk about those i'd probably have to do some (gulp) research. Also I'm not sure how much they apply to modern...
on
21 Mar 2006
Blog Post:
What is DMA (Part 5) - Packet Based DMA
PeterWieland
Packet Based DMA Last time i talked about using common buffer to stage your DMA operations. Doing this allows you to coallesce very fragmented packets, which can be very valuable, but it does complicate your DMA operations. After all someone has to manage the common buffer that you allocated. The...
on
20 Mar 2006
Blog Post:
What is DMA (Part 4) - Common Buffer
PeterWieland
The DMA API also allows you to create a section of kernel memory which you can share between your driver and your device. This memory is known as "common buffer", and has a variety of uses with modern PCI devices. You can allocate a piece of common buffer by calling the AllocateCommonBuffer function...
on
9 Mar 2006
Blog Post:
What is DMA (Part 3) - DMA Translation & Map Registers
PeterWieland
Previously in this sequence I talked some about what DMA is, and some of the common models for programming DMA on a device. Like most code, your driver usually deals with virtual addresses for data buffers. Your DMA engine (be it slave or bus-mastering) is on the other side of the MMU and so can't...
on
2 Mar 2006
Blog Post:
What is DMA (Part 2) - DMA to a Driver
PeterWieland
Yesterday i talked a little about "what DMA is". Today i want to talk a little bit about how devices use DMA) DMA to a Driver From the driver's point of view there are two aspects to DMA. The first is how you prepare your data for DMA transfers. The second is how you program the device to initiate...
on
28 Feb 2006
Blog Post:
What Is DMA (Part 1)
PeterWieland
What Is DMA? DMA is a way for you to offload the work of transferring data between main memory and the device onto your device. This is in contrast to programmed I/O (PIO) where you have the processor copying data between main memory and the device. PIO results in high data-rates (processors are...
on
27 Feb 2006
Page 1 of 1 (25 items)