Hey guys,
I’m an absolute newbie to the kernel land. I’m very much interested in
Kernel Development. I don’t know where to begin. Yes, I know windows
internals. I read Windows Internals 5th edition.
I’ve searched for archives and found this article.
http://www.osronline.com/article.cfm?article=20 but it is 5 years old. Lot
of things might have changed during these 5 years.
I don’t have any specific purpose. I’m just an enthusiastic learner. Can any
give me a learning path (suggested readings etc…). Which device should I
target to get good kernel dev experience.
Start by getting “Developing Drivers with the Windows Driver Foundation”
by Orwick and Smith. Plus get “Programming the Windows Driver Model
Second Edition” by Oney.
Seriously consider taking a class, you can read all you want but a good
class such as OSR teaches will show you is important in the large amount
of documentation out there.
As far as what type of driver, it depends on what your goal is. Windows
contains a number of driver models, the skills for each are different in
some ways.
Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
From: KishoreKumar Bairi [mailto:xxxxx@gmail.com]
Posted At: Tuesday, March 30, 2010 8:18 AM
Posted To: ntdev
Conversation: Getting Started Writing Windows Drivers
Subject: Getting Started Writing Windows Drivers
Hey guys,
I’m an absolute newbie to the kernel land. I’m very much interested in
Kernel Development. I don’t know where to begin. Yes, I know windows
internals. I read Windows Internals 5th edition.
I’ve searched for archives and found this article.
http://www.osronline.com/article.cfm?article=20 but it is 5 years old. Lot
of things might have changed during these 5 years.
I don’t have any specific purpose. I’m just an enthusiastic learner. Can
any give me a learning path (suggested readings etc…). Which device
should I target to get good kernel dev experience.
__________ Information from ESET Smart Security, version of virus
signature database 4984 (20100330) __________
The message was checked by ESET Smart Security.
http://www.eset.com
I think that a good starting point is to pick a type of driver with which to start.
If you’re interested in writing a driver for something that uses actual hardware, then I would pick something from the WDK samples for which (a) you have the necessary hardware and (b) can be unloaded without rebooting (most). In this case, I would definitely agree with Don’s advice to learn KMDF.
If you’re interested in doing some sort of ‘software only’ driver, then I would first come up with an idea that you would like to try and then start to write it as a legacy/NT4 style driver. There are no longer samples like this in the current WDK (Win7 RTM SP1), but if you download the Vista RTM WDK, its version of ‘ioctl’ will work.
Although it’s certainly possible to write a ‘software only’ driver other ways, I personally think that its just a lot simpler in the NT4 style.
Once you make a choice, the real fun begins - getting windbg to work.
Good luck,
mm
configure your PC with WDK, SDK and Visual C++ then go through all samples
inside SDk and WDk.
On Tue, Mar 30, 2010 at 8:10 PM, wrote:
> I think that a good starting point is to pick a type of driver with which
> to start.
>
> If you’re interested in writing a driver for something that uses actual
> hardware, then I would pick something from the WDK samples for which (a) you
> have the necessary hardware and (b) can be unloaded without rebooting
> (most). In this case, I would definitely agree with Don’s advice to learn
> KMDF.
>
> If you’re interested in doing some sort of ‘software only’ driver, then I
> would first come up with an idea that you would like to try and then start
> to write it as a legacy/NT4 style driver. There are no longer samples like
> this in the current WDK (Win7 RTM SP1), but if you download the Vista RTM
> WDK, its version of ‘ioctl’ will work.
>
> Although it’s certainly possible to write a ‘software only’ driver other
> ways, I personally think that its just a lot simpler in the NT4 style.
>
> Once you make a choice, the real fun begins - getting windbg to work.
>
>
> Good luck,
>
> mm
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
–
Inderjit Kumar
9049235798
“KishoreKumar Bairi” wrote in message
news:xxxxx@ntdev…
…
> I don’t have any specific purpose.
Then the chance to get any specific answer is slim 
> I’m just an enthusiastic learner. Can any
> give me a learning path (suggested readings etc…).
Suggestion #0: avoid tampering in kernel, at least when you don’t deal with
real hardware.
Avoid writing kernel drivers if some other solution for your Real Problem
can be found.
>Which device should I
> target to get good kernel dev experience.
IMHO a good choice may be an USB-connected widget. Affordable USB kits
are on sale, for learners, enthusiasts and rapid hardware prototyping.
You can roll your own driver, based on software provided with these kits.
USB also has upgrade path to usermode drivers (winusb, umdf, libusb…).
Good luck,
– pa
you can target your network card for learning purpose.
On Wed, Mar 31, 2010 at 7:28 PM, Pavel A. wrote:
> “KishoreKumar Bairi” wrote in message
> news:xxxxx@ntdev…
> …
>
> I don’t have any specific purpose.
>>
>
> Then the chance to get any specific answer is slim 
>
>
> I’m just an enthusiastic learner. Can any
>> give me a learning path (suggested readings etc…).
>>
>
> Suggestion #0: avoid tampering in kernel, at least when you don’t deal with
> real hardware.
> Avoid writing kernel drivers if some other solution for your Real Problem
> can be found.
>
>
> Which device should I
>> target to get good kernel dev experience.
>>
>
> IMHO a good choice may be an USB-connected widget. Affordable USB kits
> are on sale, for learners, enthusiasts and rapid hardware prototyping.
> You can roll your own driver, based on software provided with these kits.
> USB also has upgrade path to usermode drivers (winusb, umdf, libusb…).
>
> Good luck,
> – pa
>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
–
Inderjit Kumar
9049235798
On Wed, Mar 31, 2010 at 19:33, Indrajit Kumar wrote:
> you can target your network card for learning purpose.
This sounds interesting. Writing a network card driver and capturing all the
packets that are sent and received would be an interesting project. Right?
If this is good enough for a beginner please give more information specific
to this. I’m using Intel PRO/100 VE Desktop
Adapterhttp:</http:>.
I guess I’ll be needing more information regarding the hardware (may be some
kind of datasheets or something). By the way which operating system would be
a good choice xp/vista/7?
I’m going to get these books.
1. “Developing Drivers with the Windows Driver Foundation” by Orwick and
Smith.
2. “Programming the Windows Driver Model Second Edition” by Oney.
What else? Please tell me what all things I need to do (in order).
Take a look at the pcidrv sample in the WDK, it supports your adapter.
Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
From: KishoreKumar Bairi [mailto:xxxxx@gmail.com]
Posted At: Wednesday, March 31, 2010 10:48 AM
Posted To: ntdev
Conversation: Getting Started Writing Windows Drivers
Subject: Re: Getting Started Writing Windows Drivers
On Wed, Mar 31, 2010 at 19:33, Indrajit Kumar
wrote:
you can target your network card for learning purpose.
This sounds interesting. Writing a network card driver and capturing all
the packets that are sent and received would be an interesting project.
Right? If this is good enough for a beginner please give more information
specific to this. I’m using Intel PRO/100 VE Desktop Adapter. I guess I’ll
be needing more information regarding the hardware (may be some kind of
datasheets or something). By the way which operating system would be a
good choice xp/vista/7?
I’m going to get these books.
1. “Developing Drivers with the Windows Driver Foundation” by Orwick and
Smith.
2. “Programming the Windows Driver Model Second Edition” by Oney.
What else? Please tell me what all things I need to do (in order).
Information from ESET Smart Security, version of virus
signature database 4988 (20100331)
The message was checked by ESET Smart Security.
http://www.eset.com
There is not really a fixed-order that will guarantee success, or a guaranteed easiest route.
Starting off with those books seems a good idea ( I should get them as well ). But from my point of view there is no way to learn something better than by doing it(and failing a hundred times).
So far I have only written software drivers to support a usermode application which I am now changing to ‘use’ the KMDF ( for some reason all the abbreviations in the driver world have confused me for a long time… and still do a bit: WDF, WDM etc. ).
So I’d say you should take a look at the examples that were posted, and just start. If you get stuck… ask your question here( after trying to figure it out yourself first of course… thats the best way to learn ) 
> -----Original Message-----
From: xxxxx@gmail.com [mailto:xxxxx@gmail.com]
But from my point of view there is no way to learn something better
than by doing it(and failing a hundred times).
I have to take exception to the above claim. Personally, I always urge
people to take a class such as OSR’s. The thing about taking a good
class is not that they will teach you everything, but that they teach
you how to find out more by yourself.
Too many times I see people asking questions on the forums or at a
consult who were self-taught and never learned the approaches finding
the answers. I want to tell them to “go find it themselves” but the
bottom line is they can’t and are doomed to keep grinding through.
Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
-----Original Message-----
From: xxxxx@gmail.com [mailto:xxxxx@gmail.com]
Posted At: Wednesday, March 31, 2010 11:19 AM
Posted To: ntdev
Conversation: Getting Started Writing Windows Drivers
Subject: RE: Getting Started Writing Windows Drivers
There is not really a fixed-order that will guarantee success, or a
guaranteed
easiest route.
Starting off with those books seems a good idea ( I should get them as
well ).
But from my point of view there is no way to learn something better
than by
doing it(and failing a hundred times).
So far I have only written software drivers to support a usermode
application
which I am now changing to ‘use’ the KMDF ( for some reason all the
abbreviations in the driver world have confused me for a long time…
and still
do a bit: WDF, WDM etc. ).
So I’d say you should take a look at the examples that were posted,
and just
start. If you get stuck… ask your question here( after trying to
figure it
out yourself first of course… thats the best way to learn ) 
__________ Information from ESET Smart Security, version of virus
signature
database 4988 (20100331) __________
The message was checked by ESET Smart Security.
http://www.eset.com
> The thing about taking a good class is not that they will teach you everything, but that they teach
you how to find out more by yourself.
That is a good point, I am one of those people who asked questions and hit myself on the head when the answer was relatively easy to find but I just didn’t think about it(know where to look). But Windows kernel development courses aren’t widely available, especially not for us non-Americans (Dutchy speaking here).
I am going to enroll in a Computer Security master next year (coming from a Mechanical engineering bachelor ) so we will have some ‘Operating System internals/security’ courses but the focus mainly on Linux while Windows internals interests me more.
So WinDbg/KD should be your best friend as well as Intel/AMD CPU
manuals.
–
Krzysztof Uchronski
-----Original Message-----
From: xxxxx@gmail.com [mailto:xxxxx@gmail.com]
Posted At: Wednesday, March 31, 2010 4:54 PM
Posted To: ntdev
Conversation: Getting Started Writing Windows Drivers
Subject: RE: Getting Started Writing Windows Drivers
The thing about taking a good class is not that they will teach you
everything, but that they teach
you how to find out more by yourself.
That is a good point, I am one of those people who asked questions and
hit myself on the head when the answer was relatively easy to find but I
just didn’t think about it(know where to look). But Windows kernel
development courses aren’t widely available, especially not for us
non-Americans (Dutchy speaking here).
I am going to enroll in a Computer Security master next year (coming
from a Mechanical engineering bachelor ) so we will have some ‘Operating
System internals/security’ courses but the focus mainly on Linux while
Windows internals interests me more.