Hi,
welcome!
In ReactOS we mostly use legacy and WDM drivers. WDF framework is
absent in ReactOS (though drivers compiled with it may boot, I don't
think anyone tested that though).
The current USB driver is done in a so-called NT4-style, which means
it is a legacy driver, having monolithic structure - all parts, which
should really be apart in a modern PnP way - e.g. usbport, usbhub,
usbhid, etc - are all parts of one driver, and there is a special
small "device manager" and "driver manager" inside it which help
"load" (just initialize) the respective builtin driver.
I collected a few docs regarding Windows XP's implementation of a USB
stack quite a while ago. Maya also says she has done some work in
this direction - it would be good if she could share the results too.
As for general direction, of course the preferred way is to implement
it Windows 2003 way. Start from scratch, use existing stubs, or just
tear apart the existing nt4compat driver - converting it to a plug
and play driver (thus remove a bunch of PCI bus scanning from it),
creating a usb bus driver which would be able to load usb device
drivers. That's up to you, I'll help with either of those.
Coding style for kernelmode code could be found in the wiki. Enjoy
the process! :)
WBR,
Aleksey Bragin.
On Jul 31, 2009, at 3:45 PM, John Jackson wrote:
Hello all. My name is John Jackson and I'm looking
to start doing
driver development on Reactos. I've worked as a C++ / C# programmer
for about 7 years, and I want to get back into more hard-core C
development. Driver writing appeals to me since it sounds like a real
challenge. I've never programmed drivers before, but I've been reading
up on it and looking at code. (Also, I don't mean any of my questions
or wordings in a negative way, I'm not entirely sure how to phrase
some of my questions)
I'd like to start by working on USB support. I've taken a couple
glances through svn, and I've got some questions.
1. Does the reactos build environment support Windows Driver Framework
or just the Windows Driver model?
2. I see under /drivers/usb there is an nt4compat folder. I understand
basic usb keyboard/mouse support comes from here, but it's not coded
using the new driver models introduced in xp. Is anyone currently
working on a "proper" usb implementation? I see there are several
stubs in /drviers/usb/ that just return true.
3. I assume the place to start with usb support is bus drivers? Do
usb1 and usb2 mean different bus drivers? (I've not read up much on
usb yet, I'm still trying to wrap my head around driver development)
I'll try to get on the irc channel either tomorrow or Sunday to say hi
in person, but I think this is a good start for conversation.
--John Jackson
--taladon(a)gmail.com
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev