If you want to pursue the mouse angle, you have moufiltr in the ddk to
base your driver on. BUT, it is considered a secure device, so you if
you want to talk to your filter, you need to create a 2ndary control
device object so that you can talk to it.
For more info for how to do that
http://support.microsoft.com/default.aspx?scid=kb;en-us;262305
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Don Ward
Sent: Wednesday, January 26, 2005 5:19 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Training Question
The first thing I’d say is that many (perhaps the majority) of useful
drivers don’t actually touch the hardware themselves, they merely “add
value” or, in some cases, subtract it. They delegate the “real work” of
handling the hardware to the lowest level driver in the stack. Time was
when
many drivers were monolithic: At one end the user, at the other the bare
iron. These days it’s a more layered affair.
You are using a dedicated test machine that isn’t your development
machine,
right? You don’t care if one minute it’s working fine, the next it’s
dead
and you might have to reinstall everything. Don’t do this sort of thing
on
any machine that you have an immediate use for, or which contains data
you
can’t recover/replace.
So, to start with I’d suggest a simple filter driver over a device you
don’t
really care about: the mouse comes to mind. Stick a filter over it that
does
nothing. Add a control interface that returns statistics. Once you have
something like that working, play with it - add an Ioctl that swaps left
and
right buttons. Add another that reverses the direction of movement or
rotates it. Stop it working altogether. Disable double clicks. Whatever.
When you’ve got comfortable with the environment, then start touching
actual
hardware: maybe buy a cheap sound card and see if you can replace one,
or
more, of the drivers for it.
Where to start looking for an example to modify? The toaster stuff is
where
a lot of people start. If you do choose the mouse as your first target,
there may be some better examples in the DDK than the toaster, I haven’t
been near the mouse stuff in ages (NT3.5), so my recollection is almost
certainly out of date.
Don
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Steve Johnson
Sent: 26 January 2005 23:56
To: Windows System Software Devs Interest List
Subject: [ntdev] Training Question
Hi all,
I’m new to the kernel. I’ve been writing user mode stuff for
about 8 years and I’m looking to add to my skill set and have
a bit of fun/challenge as well. I’ve consulted the resources
mentioned in the OSR Online FAQs, including Oney’s book.
I’ve been able to set up debugging and write some test code.
As pleased as I am with that start, that’s not real driver
programming. What I’d like to do is pick up some devices (or
use some non-critical existing ones) and actually write some
real, functional drivers. Is there any simple hardware out
there for which I would have access to sufficient
specifications to do this? If so, what kinds of devices
should I start with? If this is not possible, what would you
recommend that I do to make some progress in this new territory?
TIA for any help.
–
Steve Johnson
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com