tags:

views:

314

answers:

5

I'm pretty much a total idiot when it comes to writing hardware drivers, however I'm fairly decent at C/C++.

I have a for fun project I want to work on that is attempting to use a device as a network tether proxy.

What I would like to do is create a driver that appears to be a network driver to windows, but actually sends/receives through a USB port connected to another device.

I have a pretty good idea of what needs to be implemented, but I don't know quite where to start looking for research info.

Any pointers?

+2  A: 

This article from codeproject is a tutorial on creating a WDM driver. I can't vouch for its correctness, but a quick skim showed a lot of information. It should be a good starting point for research.

Harper Shelby
+4  A: 

Get the DDK It has lots of documentation and sample drivers to start from.

Steve Fallows
+2  A: 

I haven't gone through it thoroughly yet, but this article seems like a good introduction to programming device drivers in Windows.

EDIT: Read it. It gives a good introduction to device drivers, briefly introducing related concepts and common pitfalls with good external links. Worth reading if you know nothing about drivers.

Simon Jensen
A: 

Avoid codeproject (not professional at all) Download the MS DDK with the dozens of samples (professional)

+1  A: 

Apart from the DDK documention, a commonly recommended book is Oney's Programming the Microsoft Windows Driver Model (WDM). Though these days you might be able to just only develop for the newer windows driver foundation (WDF), which greatly reduces efforts in making your driver PnP and power aware.

Then the resources at OSR are great, both for beginners and advanced discussions, including essays, tutorials and mailing lists. OSR also has demo hardware kits to help you get started developing drivers for real devices.

Ben Schwehn