Learning

Hi,

I have a question about ‘leaning’ to develop drivers.
I’m still student and in my stage (practical) period I went to a company
who develops measurement devices. Also on USB.
They used a standaard (example) usb driver from Cypress. All the
hardware settings where done by a Delpy program, just past through the
driver and without change the driver put it to the device.

After a while they asked me if I could make the driver ‘smart’. So the
driver needed to have a global interface who is the same for different
kind of devices. Well ofcouse very interesting for me, so I started. I
made it and the preformance are much more better. For so far my stage.

Now after my stage I’m still interested in writing driver and I’m now
working partially in that company. I learned the most from examples and
the book “Ms Windows driver model” from Walter Oney.

Now I know a little more about driver I find out how less I know from
all the possibilities.

Where can I start, is there some study? Or is the only way to learn it
from examples? I read on OSR that cowboy programming in drivers is ‘not
possible’, but how I become better than that?

Greetings
Marten Lootsma

Marten,

Since you are asking how to be better, you have taken the first step.
If possible take a class to learn more about driver writing. Attend
conferences to learn more. Beyond this much of this is just good
development practices, my take on this is at
http://www.microsoft.com/whdc/resources/mvp/xtremeMVP_drv.mspx#ECAA


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Remove StopSpam from the email to reply

“Marten Lootsma” wrote in message news:xxxxx@ntdev…
> Hi,
>
> I have a question about ‘leaning’ to develop drivers.
> I’m still student and in my stage (practical) period I went to a company
> who develops measurement devices. Also on USB.
> They used a standaard (example) usb driver from Cypress. All the
> hardware settings where done by a Delpy program, just past through the
> driver and without change the driver put it to the device.
>
> After a while they asked me if I could make the driver ‘smart’. So the
> driver needed to have a global interface who is the same for different
> kind of devices. Well ofcouse very interesting for me, so I started. I
> made it and the preformance are much more better. For so far my stage.
>
> Now after my stage I’m still interested in writing driver and I’m now
> working partially in that company. I learned the most from examples and
> the book “Ms Windows driver model” from Walter Oney.
>
> Now I know a little more about driver I find out how less I know from
> all the possibilities.
>
> Where can I start, is there some study? Or is the only way to learn it
> from examples? I read on OSR that cowboy programming in drivers is ‘not
> possible’, but how I become better than that?
>
> Greetings
> Marten Lootsma
>

Marten,

Device drivers is een echt gespecialiseerd en beperkt regio om te werken. Er
is maar weinig driver werk in Nederland jammer genoeg (of onze inzetplanners
zoeken verkeerd, kan ook) . Ik ben zelf en zogenamde ‘expert’ met tien jaar
ervaring. Mijn Stetson draag ik neit, en laat er thuis op de kapstok blijven
hangen. Maar ik schrijf dagelijks meestal internet payment systemen in java,
en maar een of twee keer per jaar heb ik een beetje driver werk te doen.
Binnen “device drivers” zit er veel meer specialismes. Netwerk (NDIS),
Graphics, Printers, File Systemen, Filters, Bus Drivers, SCSI, USB enz. Ze
zijn allemaal, min of meer, apart en anders van elkaar.

Daarom om werk te vinden heb je altijd de kip-ei probleem. De meeste
opdrachtgevers zoeken ervaring in een echt beperkt veld. Als oplossing, zoek
eerst en stagiereposting. (dat heb je al gedaan zie ik) En nu? Dat kan ik
niet verder adviseeren. Sorry.

Eigenlijk zijn de kosten van studie hoog in tijd en/of geld. Zoek een baan
waar ze tijd en geld hebben voor training, en vraag voor een OSR training
course in de intake interview. Normaal gesproken zou er echt en
trainingsbudget in staat zijn, maar vaak is het niet zo in het praktijk.

De meeste NT boeken praten onderanderen over user mode, en dit is niet wat
je wil. De boek Programming the Windows Driver Model van Walter Oney is echt
een goede keus van je. Mischien was het beter als de tweede boek te lezen.
Lees dan ook The Windows Device Driver Book van Mason & Viscarola. Dit is nu
‘de bibel’ voor driver programmeurs.

Als je interesse in file-systems hebben, of wat dieper willen gaan als
studieproject, is er een boek van Rasheed Nagar (Inside the Windows NT File
Systems). File systemen zijn maar een applicatie van de lessen in de
Mason/Viscarola boek, en de uitlegging van dit ingewikkeld subject geeft
inzicht aan, en een gevoel van, de praktijk en de werking van Windows in een
beperkt arena. Dit maakt wat je leert meer concreet.

Met die drie, heb je een goed biblioteek thuis, als reference. Er is ook een
boek van Art Baker die korter en minder goed is maar is ook leesbar en
sneller dan de anderen. En andere perspectief is ook handig als je problemen
hebben om iets te verstaan.

Het probleem met boeken is dat ze snel verlopig wordt, maar als je die
boeken hebben, lees en verstaan, ben je klaar voor de DDK. Lees snel alles
in de DDK, and dan begin nog eens, twee of drie keren. Leer wat erin zit.
Dan als je een probleem heeft klinkt een bel in je hoofd. Lezen van de DDK
kan je nooit gegoeg doen. Ja soms is het droog en vervelend, soms vaag, en
nee, de DDK is niet helemaal compleet.

Subscribe naar “The NT Insider” dit is zonder kosten naar je huis gestuurd.
Lees ook de archive op hun website www.osronline.com. Hierin stand veel
specifieke artikels, ragen een antworden, en alles is (bijna) altijd
interessant te lezen.
(Op deze website vind je ook een online versie van de laaste DDK help).

Maak jezelf thuis met de bouwtools. Classike bouwen van drivers is met hulp
van MSVC, nu .NET Maar dit alleen als een gemakkelijk en handig IDE met
browsing mogelijkheden. Dit kan gekoppeld worden met hulp van een batch file
(ddkbuild.bat ook van de OSR website) naar de Windows DDK waar de echt
compiler en linker zit. Ook heeft de Windows SDK en kleiner rol te spelen.
De debugger WinDbg is ook heel erg belangrijk om te studieren.

In mijn ervaring, zonder een browser en debugger werk je heel inefficient en
stom. Maar veel mensen doet het nog steeds. Dus als je de tooling kunnen
koppelen, en goed gebruiken heb je al een groot voordeel over de anderen
lauwe cowboys.

De tools moet je echt gebruiken (niet alleen maar lezen over wat ze doet).
Je heb dus twee computers nodig, een als test “target” voor je driver en de
andere (krachtiger) als debugger host en ontwikkel environment. MSVC, DDK,
SDK en WinDbg heb je nodig. Alleen is de compiler kostbaar, de rest zijn
aanwezig (hoop ik) voor de prijs van de CD en leveringskosten.

Vind jezelf exemplaren van goede installatie bestanden (INF files). Die zijn
nodig voor drivers en er is weinig greschreven over precies wat moet erin
zitten. Dus leer van exemplaren.

Laatst zijn er nu al veel handige gereedschappen van Russinovich zie
http://www.sysinternals.com/ntw2k/utilities.shtml
en ook veel extra test tools zoals driver verifier, chkinf enz, nu bvb met
de DDK geleverd.

En MSDN subscription kost, jammer, boven de 2K Euro merk p.a. maar dat is
ook van waarde. Echt onmisbaar als je professioneel driver werk moeten doen.

Ik wens je veel plesier (en bedankt voor de kans om mijn gebroken nederlands
te oefenen)!

Groeten,

Jack.

“Marten Lootsma” wrote in message news:xxxxx@ntdev…
> Hi,
>
> I have a question about ‘leaning’ to develop drivers.
> I’m still student and in my stage (practical) period I went to a company
> who develops measurement devices. Also on USB.
> They used a standaard (example) usb driver from Cypress. All the
> hardware settings where done by a Delpy program, just past through the
> driver and without change the driver put it to the device.
>
> After a while they asked me if I could make the driver ‘smart’. So the
> driver needed to have a global interface who is the same for different
> kind of devices. Well ofcouse very interesting for me, so I started. I
> made it and the preformance are much more better. For so far my stage.
>
> Now after my stage I’m still interested in writing driver and I’m now
> working partially in that company. I learned the most from examples and
> the book “Ms Windows driver model” from Walter Oney.
>
> Now I know a little more about driver I find out how less I know from
> all the possibilities.
>
> Where can I start, is there some study? Or is the only way to learn it
> from examples? I read on OSR that cowboy programming in drivers is ‘not
> possible’, but how I become better than that?
>
> Greetings
> Marten Lootsma
>

I’ll jump on this and prevent what I’m sure would be a never ending stream
of comments…

This is an English speaking list so please keep postings in English. Any
conversations in other languages should be considered OT and taken off list.

OSR List Slave

“Jack Heeley” wrote in message news:xxxxx@ntdev…
> Marten,
>
> Device drivers is een echt gespecialiseerd en beperkt regio om te werken.
> Er
> is maar weinig driver werk in Nederland jammer genoeg (of onze
> inzetplanners
> zoeken verkeerd, kan ook) . Ik ben zelf en zogenamde ‘expert’ met tien
> jaar
> ervaring. Mijn Stetson draag ik neit, en laat er thuis op de kapstok
> blijven
> hangen. Maar ik schrijf dagelijks meestal internet payment systemen in
> java,
> en maar een of twee keer per jaar heb ik een beetje driver werk te doen.
> Binnen “device drivers” zit er veel meer specialismes. Netwerk (NDIS),
> Graphics, Printers, File Systemen, Filters, Bus Drivers, SCSI, USB enz. Ze
> zijn allemaal, min of meer, apart en anders van elkaar.
>
> Daarom om werk te vinden heb je altijd de kip-ei probleem. De meeste
> opdrachtgevers zoeken ervaring in een echt beperkt veld. Als oplossing,
> zoek
> eerst en stagiereposting. (dat heb je al gedaan zie ik) En nu? Dat kan ik
> niet verder adviseeren. Sorry.
>
> Eigenlijk zijn de kosten van studie hoog in tijd en/of geld. Zoek een baan
> waar ze tijd en geld hebben voor training, en vraag voor een OSR training
> course in de intake interview. Normaal gesproken zou er echt en
> trainingsbudget in staat zijn, maar vaak is het niet zo in het praktijk.
>
> De meeste NT boeken praten onderanderen over user mode, en dit is niet wat
> je wil. De boek Programming the Windows Driver Model van Walter Oney is
> echt
> een goede keus van je. Mischien was het beter als de tweede boek te lezen.
> Lees dan ook The Windows Device Driver Book van Mason & Viscarola. Dit is
> nu
> ‘de bibel’ voor driver programmeurs.
>
> Als je interesse in file-systems hebben, of wat dieper willen gaan als
> studieproject, is er een boek van Rasheed Nagar (Inside the Windows NT
> File
> Systems). File systemen zijn maar een applicatie van de lessen in de
> Mason/Viscarola boek, en de uitlegging van dit ingewikkeld subject geeft
> inzicht aan, en een gevoel van, de praktijk en de werking van Windows in
> een
> beperkt arena. Dit maakt wat je leert meer concreet.
>
> Met die drie, heb je een goed biblioteek thuis, als reference. Er is ook
> een
> boek van Art Baker die korter en minder goed is maar is ook leesbar en
> sneller dan de anderen. En andere perspectief is ook handig als je
> problemen
> hebben om iets te verstaan.
>
> Het probleem met boeken is dat ze snel verlopig wordt, maar als je die
> boeken hebben, lees en verstaan, ben je klaar voor de DDK. Lees snel alles
> in de DDK, and dan begin nog eens, twee of drie keren. Leer wat erin zit.
> Dan als je een probleem heeft klinkt een bel in je hoofd. Lezen van de DDK
> kan je nooit gegoeg doen. Ja soms is het droog en vervelend, soms vaag, en
> nee, de DDK is niet helemaal compleet.
>
> Subscribe naar “The NT Insider” dit is zonder kosten naar je huis
> gestuurd.
> Lees ook de archive op hun website www.osronline.com. Hierin stand veel
> specifieke artikels, ragen een antworden, en alles is (bijna) altijd
> interessant te lezen.
> (Op deze website vind je ook een online versie van de laaste DDK help).
>
> Maak jezelf thuis met de bouwtools. Classike bouwen van drivers is met
> hulp
> van MSVC, nu .NET Maar dit alleen als een gemakkelijk en handig IDE met
> browsing mogelijkheden. Dit kan gekoppeld worden met hulp van een batch
> file
> (ddkbuild.bat ook van de OSR website) naar de Windows DDK waar de echt
> compiler en linker zit. Ook heeft de Windows SDK en kleiner rol te spelen.
> De debugger WinDbg is ook heel erg belangrijk om te studieren.
>
> In mijn ervaring, zonder een browser en debugger werk je heel inefficient
> en
> stom. Maar veel mensen doet het nog steeds. Dus als je de tooling kunnen
> koppelen, en goed gebruiken heb je al een groot voordeel over de anderen
> lauwe cowboys.
>
> De tools moet je echt gebruiken (niet alleen maar lezen over wat ze doet).
> Je heb dus twee computers nodig, een als test “target” voor je driver en
> de
> andere (krachtiger) als debugger host en ontwikkel environment. MSVC, DDK,
> SDK en WinDbg heb je nodig. Alleen is de compiler kostbaar, de rest zijn
> aanwezig (hoop ik) voor de prijs van de CD en leveringskosten.
>
> Vind jezelf exemplaren van goede installatie bestanden (INF files). Die
> zijn
> nodig voor drivers en er is weinig greschreven over precies wat moet erin
> zitten. Dus leer van exemplaren.
>
> Laatst zijn er nu al veel handige gereedschappen van Russinovich zie
> http://www.sysinternals.com/ntw2k/utilities.shtml
> en ook veel extra test tools zoals driver verifier, chkinf enz, nu bvb
> met
> de DDK geleverd.
>
> En MSDN subscription kost, jammer, boven de 2K Euro merk p.a. maar dat is
> ook van waarde. Echt onmisbaar als je professioneel driver werk moeten
> doen.
>
> Ik wens je veel plesier (en bedankt voor de kans om mijn gebroken
> nederlands
> te oefenen)!
>
> Groeten,
>
> Jack.
>
> “Marten Lootsma” wrote in message news:xxxxx@ntdev…
>> Hi,
>>
>> I have a question about ‘leaning’ to develop drivers.
>> I’m still student and in my stage (practical) period I went to a company
>> who develops measurement devices. Also on USB.
>> They used a standaard (example) usb driver from Cypress. All the
>> hardware settings where done by a Delpy program, just past through the
>> driver and without change the driver put it to the device.
>>
>> After a while they asked me if I could make the driver ‘smart’. So the
>> driver needed to have a global interface who is the same for different
>> kind of devices. Well ofcouse very interesting for me, so I started. I
>> made it and the preformance are much more better. For so far my stage.
>>
>> Now after my stage I’m still interested in writing driver and I’m now
>> working partially in that company. I learned the most from examples and
>> the book “Ms Windows driver model” from Walter Oney.
>>
>> Now I know a little more about driver I find out how less I know from
>> all the possibilities.
>>
>> Where can I start, is there some study? Or is the only way to learn it
>> from examples? I read on OSR that cowboy programming in drivers is ‘not
>> possible’, but how I become better than that?
>>
>> Greetings
>> Marten Lootsma
>>
>
>
>

Jack,

With my limited understanding of Dutch (I did two years of German, and I
grew up in Sweden, so I have some advantage over those who do not know any
Germanic language besides English) I think this would be a nice reply to
have in English on the list [I’m sure you intended to send it privately to Marten], at least parts of it.


Mats

xxxxx@lists.osr.com wrote on 01/20/2005 02:42:41 PM:

Marten,

Device drivers is een echt gespecialiseerd en beperkt regio om te werken.
Er
is maar weinig driver werk in Nederland jammer genoeg (of onze
inzetplanners
zoeken verkeerd, kan ook) . Ik ben zelf en zogenamde ‘expert’ met tien
jaar
ervaring. Mijn Stetson draag ik neit, en laat er thuis op de kapstok
blijven
hangen. Maar ik schrijf dagelijks meestal internet payment systemen in
java,
en maar een of twee keer per jaar heb ik een beetje driver werk te doen.
Binnen “device drivers” zit er veel meer specialismes. Netwerk (NDIS),
Graphics, Printers, File Systemen, Filters, Bus Drivers, SCSI, USB enz.
Ze
zijn allemaal, min of meer, apart en anders van elkaar.

Daarom om werk te vinden heb je altijd de kip-ei probleem. De meeste
opdrachtgevers zoeken ervaring in een echt beperkt veld. Als oplossing,
zoek
eerst en stagiereposting. (dat heb je al gedaan zie ik) En nu? Dat kan ik
niet verder adviseeren. Sorry.

Eigenlijk zijn de kosten van studie hoog in tijd en/of geld. Zoek een
baan
waar ze tijd en geld hebben voor training, en vraag voor een OSR training
course in de intake interview. Normaal gesproken zou er echt en
trainingsbudget in staat zijn, maar vaak is het niet zo in het praktijk.

De meeste NT boeken praten onderanderen over user mode, en dit is niet
wat
je wil. De boek Programming the Windows Driver Model van Walter Oney is
echt
een goede keus van je. Mischien was het beter als de tweede boek te
lezen.
Lees dan ook The Windows Device Driver Book van Mason & Viscarola. Dit is
nu
‘de bibel’ voor driver programmeurs.

Als je interesse in file-systems hebben, of wat dieper willen gaan als
studieproject, is er een boek van Rasheed Nagar (Inside the Windows NT
File
Systems). File systemen zijn maar een applicatie van de lessen in de
Mason/Viscarola boek, en de uitlegging van dit ingewikkeld subject geeft
inzicht aan, en een gevoel van, de praktijk en de werking van Windows in
een
beperkt arena. Dit maakt wat je leert meer concreet.

Met die drie, heb je een goed biblioteek thuis, als reference. Er is ook
een
boek van Art Baker die korter en minder goed is maar is ook leesbar en
sneller dan de anderen. En andere perspectief is ook handig als je
problemen
hebben om iets te verstaan.

Het probleem met boeken is dat ze snel verlopig wordt, maar als je die
boeken hebben, lees en verstaan, ben je klaar voor de DDK. Lees snel
alles
in de DDK, and dan begin nog eens, twee of drie keren. Leer wat erin zit.
Dan als je een probleem heeft klinkt een bel in je hoofd. Lezen van de
DDK
kan je nooit gegoeg doen. Ja soms is het droog en vervelend, soms vaag,
en
nee, de DDK is niet helemaal compleet.

Subscribe naar “The NT Insider” dit is zonder kosten naar je huis
gestuurd.
Lees ook de archive op hun website www.osronline.com. Hierin stand veel
specifieke artikels, ragen een antworden, en alles is (bijna) altijd
interessant te lezen.
(Op deze website vind je ook een online versie van de laaste DDK help).

Maak jezelf thuis met de bouwtools. Classike bouwen van drivers is met
hulp
van MSVC, nu .NET Maar dit alleen als een gemakkelijk en handig IDE met
browsing mogelijkheden. Dit kan gekoppeld worden met hulp van een batch
file
(ddkbuild.bat ook van de OSR website) naar de Windows DDK waar de echt
compiler en linker zit. Ook heeft de Windows SDK en kleiner rol te
spelen.
De debugger WinDbg is ook heel erg belangrijk om te studieren.

In mijn ervaring, zonder een browser en debugger werk je heel inefficient
en
stom. Maar veel mensen doet het nog steeds. Dus als je de tooling kunnen
koppelen, en goed gebruiken heb je al een groot voordeel over de anderen
lauwe cowboys.

De tools moet je echt gebruiken (niet alleen maar lezen over wat ze
doet).
Je heb dus twee computers nodig, een als test “target” voor je driver en
de
andere (krachtiger) als debugger host en ontwikkel environment. MSVC,
DDK,
SDK en WinDbg heb je nodig. Alleen is de compiler kostbaar, de rest zijn
aanwezig (hoop ik) voor de prijs van de CD en leveringskosten.

Vind jezelf exemplaren van goede installatie bestanden (INF files). Die
zijn
nodig voor drivers en er is weinig greschreven over precies wat moet erin
zitten. Dus leer van exemplaren.

Laatst zijn er nu al veel handige gereedschappen van Russinovich zie
http://www.sysinternals.com/ntw2k/utilities.shtml
en ook veel extra test tools zoals driver verifier, chkinf enz, nu bvb
met
de DDK geleverd.

En MSDN subscription kost, jammer, boven de 2K Euro merk p.a. maar dat is
ook van waarde. Echt onmisbaar als je professioneel driver werk moeten
doen.

Ik wens je veel plesier (en bedankt voor de kans om mijn gebroken
nederlands
te oefenen)!

Groeten,

Jack.

“Marten Lootsma” wrote in message news:xxxxx@ntdev…
> > Hi,
> >
> > I have a question about ‘leaning’ to develop drivers.
> > I’m still student and in my stage (practical) period I went to a
company
> > who develops measurement devices. Also on USB.
> > They used a standaard (example) usb driver from Cypress. All the
> > hardware settings where done by a Delpy program, just past through the
> > driver and without change the driver put it to the device.
> >
> > After a while they asked me if I could make the driver ‘smart’. So the
> > driver needed to have a global interface who is the same for different
> > kind of devices. Well ofcouse very interesting for me, so I started. I
> > made it and the preformance are much more better. For so far my stage.
> >
> > Now after my stage I’m still interested in writing driver and I’m now
> > working partially in that company. I learned the most from examples and
> > the book “Ms Windows driver model” from Walter Oney.
> >
> > Now I know a little more about driver I find out how less I know from
> > all the possibilities.
> >
> > Where can I start, is there some study? Or is the only way to learn it
> > from examples? I read on OSR that cowboy programming in drivers is ‘not
> > possible’, but how I become better than that?
> >
> > Greetings
> > Marten Lootsma
> >
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at http://www.
> osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@3dlabs.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

> ForwardSourceID:NT0000B3B6

Jack,

Wouldn’t it be better not to “privatize” this forum and write “english” instead ?
I cannot imagine how this forum can remain living if everyone starts “chatting” in his native
language.

Christiaan ( From Belgium , who *by coincidence* can inserstand waht you wrote.

----- Original Message -----
From: “Jack Heeley”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Thursday, January 20, 2005 3:42 PM
Subject: Re:[ntdev] Learning

> Marten,
>
> Device drivers is een echt gespecialiseerd en beperkt regio om te werken. Er
> is maar weinig driver werk in Nederland jammer genoeg (of onze inzetplanners
> zoeken verkeerd, kan ook) . Ik ben zelf en zogenamde ‘expert’ met tien jaar
> ervaring. Mijn Stetson draag ik neit, en laat er thuis op de kapstok blijven
> hangen. Maar ik schrijf dagelijks meestal internet payment systemen in java,
> en maar een of twee keer per jaar heb ik een beetje driver werk te doen.
> Binnen “device drivers” zit er veel meer specialismes. Netwerk (NDIS),
> Graphics, Printers, File Systemen, Filters, Bus Drivers, SCSI, USB enz. Ze
> zijn allemaal, min of meer, apart en anders van elkaar.
>
> Daarom om werk te vinden heb je altijd de kip-ei probleem. De meeste
> opdrachtgevers zoeken ervaring in een echt beperkt veld. Als oplossing, zoek
> eerst en stagiereposting. (dat heb je al gedaan zie ik) En nu? Dat kan ik
> niet verder adviseeren. Sorry.
>
> Eigenlijk zijn de kosten van studie hoog in tijd en/of geld. Zoek een baan
> waar ze tijd en geld hebben voor training, en vraag voor een OSR training
> course in de intake interview. Normaal gesproken zou er echt en
> trainingsbudget in staat zijn, maar vaak is het niet zo in het praktijk.
>
> De meeste NT boeken praten onderanderen over user mode, en dit is niet wat
> je wil. De boek Programming the Windows Driver Model van Walter Oney is echt
> een goede keus van je. Mischien was het beter als de tweede boek te lezen.
> Lees dan ook The Windows Device Driver Book van Mason & Viscarola. Dit is nu
> ‘de bibel’ voor driver programmeurs.
>
> Als je interesse in file-systems hebben, of wat dieper willen gaan als
> studieproject, is er een boek van Rasheed Nagar (Inside the Windows NT File
> Systems). File systemen zijn maar een applicatie van de lessen in de
> Mason/Viscarola boek, en de uitlegging van dit ingewikkeld subject geeft
> inzicht aan, en een gevoel van, de praktijk en de werking van Windows in een
> beperkt arena. Dit maakt wat je leert meer concreet.
>
> Met die drie, heb je een goed biblioteek thuis, als reference. Er is ook een
> boek van Art Baker die korter en minder goed is maar is ook leesbar en
> sneller dan de anderen. En andere perspectief is ook handig als je problemen
> hebben om iets te verstaan.
>
> Het probleem met boeken is dat ze snel verlopig wordt, maar als je die
> boeken hebben, lees en verstaan, ben je klaar voor de DDK. Lees snel alles
> in de DDK, and dan begin nog eens, twee of drie keren. Leer wat erin zit.
> Dan als je een probleem heeft klinkt een bel in je hoofd. Lezen van de DDK
> kan je nooit gegoeg doen. Ja soms is het droog en vervelend, soms vaag, en
> nee, de DDK is niet helemaal compleet.
>
> Subscribe naar “The NT Insider” dit is zonder kosten naar je huis gestuurd.
> Lees ook de archive op hun website www.osronline.com. Hierin stand veel
> specifieke artikels, ragen een antworden, en alles is (bijna) altijd
> interessant te lezen.
> (Op deze website vind je ook een online versie van de laaste DDK help).
>
> Maak jezelf thuis met de bouwtools. Classike bouwen van drivers is met hulp
> van MSVC, nu .NET Maar dit alleen als een gemakkelijk en handig IDE met
> browsing mogelijkheden. Dit kan gekoppeld worden met hulp van een batch file
> (ddkbuild.bat ook van de OSR website) naar de Windows DDK waar de echt
> compiler en linker zit. Ook heeft de Windows SDK en kleiner rol te spelen.
> De debugger WinDbg is ook heel erg belangrijk om te studieren.
>
> In mijn ervaring, zonder een browser en debugger werk je heel inefficient en
> stom. Maar veel mensen doet het nog steeds. Dus als je de tooling kunnen
> koppelen, en goed gebruiken heb je al een groot voordeel over de anderen
> lauwe cowboys.
>
> De tools moet je echt gebruiken (niet alleen maar lezen over wat ze doet).
> Je heb dus twee computers nodig, een als test “target” voor je driver en de
> andere (krachtiger) als debugger host en ontwikkel environment. MSVC, DDK,
> SDK en WinDbg heb je nodig. Alleen is de compiler kostbaar, de rest zijn
> aanwezig (hoop ik) voor de prijs van de CD en leveringskosten.
>
> Vind jezelf exemplaren van goede installatie bestanden (INF files). Die zijn
> nodig voor drivers en er is weinig greschreven over precies wat moet erin
> zitten. Dus leer van exemplaren.
>
> Laatst zijn er nu al veel handige gereedschappen van Russinovich zie
> http://www.sysinternals.com/ntw2k/utilities.shtml
> en ook veel extra test tools zoals driver verifier, chkinf enz, nu bvb met
> de DDK geleverd.
>
> En MSDN subscription kost, jammer, boven de 2K Euro merk p.a. maar dat is
> ook van waarde. Echt onmisbaar als je professioneel driver werk moeten doen.
>
> Ik wens je veel plesier (en bedankt voor de kans om mijn gebroken nederlands
> te oefenen)!
>
> Groeten,
>
> Jack.
>
> “Marten Lootsma” wrote in message news:xxxxx@ntdev…
> > Hi,
> >
> > I have a question about ‘leaning’ to develop drivers.
> > I’m still student and in my stage (practical) period I went to a company
> > who develops measurement devices. Also on USB.
> > They used a standaard (example) usb driver from Cypress. All the
> > hardware settings where done by a Delpy program, just past through the
> > driver and without change the driver put it to the device.
> >
> > After a while they asked me if I could make the driver ‘smart’. So the
> > driver needed to have a global interface who is the same for different
> > kind of devices. Well ofcouse very interesting for me, so I started. I
> > made it and the preformance are much more better. For so far my stage.
> >
> > Now after my stage I’m still interested in writing driver and I’m now
> > working partially in that company. I learned the most from examples and
> > the book “Ms Windows driver model” from Walter Oney.
> >
> > Now I know a little more about driver I find out how less I know from
> > all the possibilities.
> >
> > Where can I start, is there some study? Or is the only way to learn it
> > from examples? I read on OSR that cowboy programming in drivers is ‘not
> > possible’, but how I become better than that?
> >
> > Greetings
> > Marten Lootsma
> >
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@compaqnet.be
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Marten,

To learn about various driver development subjects, sure you can take a
course. Otherwise, you can just hang out around here and read the posts…
NTDEV is a great place for learning from some of the best driver developers
in the world (yep it’s not just the US anymore ;). Be curious and take part
in the discussions! I’m sure you will find it rewarding.

To learn various bits, also read The NT Insider, a newsletter by OSR. You
can subscribe for free on their website.

Mat

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Marten Lootsma
Sent: Thursday, January 20, 2005 5:23 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Learning

Hi,

I have a question about ‘leaning’ to develop drivers.
I’m still student and in my stage (practical) period I went to a company
who develops measurement devices. Also on USB.
They used a standaard (example) usb driver from Cypress. All the
hardware settings where done by a Delpy program, just past through the
driver and without change the driver put it to the device.

After a while they asked me if I could make the driver ‘smart’. So the
driver needed to have a global interface who is the same for different
kind of devices. Well ofcouse very interesting for me, so I started. I
made it and the preformance are much more better. For so far my stage.

Now after my stage I’m still interested in writing driver and I’m now
working partially in that company. I learned the most from examples and
the book “Ms Windows driver model” from Walter Oney.

Now I know a little more about driver I find out how less I know from
all the possibilities.

Where can I start, is there some study? Or is the only way to learn it
from examples? I read on OSR that cowboy programming in drivers is ‘not
possible’, but how I become better than that?

Greetings
Marten Lootsma


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@encentrus.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Oops yes, Well its public anyway… Here’s what I meant to say Marten- in
case the Dutch was terrible!

Device drivers is a very specialised and limited area in which to work.
There isn’t much work in Holland sadly (or our work planners are looking in
the wrong place (can be). I am myself a so called ‘expert’ with ten years
experience. I leave my stetson at home on the hat stand. But day to day I’m
usually writing internet payment systems in java and only get a bit of
driver work once or twice a year.

Within “device drivers” there are many specialisms, Network (NDIS),
Graphics, Printers, File Systems, Filters, Bus Drivers, SCSI, USB etc. They
are all, more or less, seperate and different from each other.

So to find work there is always a chicken and egg problem. The majority of
employers are looking for experience in a very limited field. As a solution
look for work placement as a student (I see you’ve done that already) And
now? I can’t really advise you further sorry.

In fact study costs are high in time and/or money. Look for a job where they
have set aside time and money for training, and ask for an OSR training
course in your intake interview. Ususally there should be a training budget
in place, but often it isn’t the case in practice.

Most NT books talk about user mode amongst other things and this isn’t what
you want. The book “Programming the Windows Driver Model” by Walter Oney is
really a good choice by you. Maybe was it better as the second book to read.
Read then also The Windows Device Driver Book by Mason & Viscarola. This is
‘the bible’ for driver programmers these days.

If you are interested in file systems or want to go deeper as a study
project, there there is a book by Rasheed Nagar (Inside the Windows NT File
Systems). File systems are just one application of the lessons in the
Mason/Viscarola book, en the explanation from this complicated subject will
give you insights into and a feeling for the practice and workings of
Windows in a limited area. This would make what you learn more concrete.

With these three books you will have good home reference library. There is
also a book by Art Baker, that is shorter and less good than the others but
is also readable and quicker than the others. Another perspective is also
convenient if you have a problem understanding an issue.

The problem with books is that they quickly go out of date but if you have
read and understood these three books you are ready for the DDK. Read
quickly everything in the DKK and then begin again twice or three times (I
meant more slowly this time there!) Learn what is in there. Then if you have
a problem it should ring a bell. You can’t read the ddk often enough. Yes,
sometimes is it dry and boring and sometimes vague, and no it isn’t
absolutely complete.

Subscribe to “The NT Insider” this is sent to your house free. Also read the
archive on their website www.osronline.com. In there are many specific
articles questions and answers and nearly everything is always interesting
to read. (You can find an online version of the latest DDK on this website
too).
Make yourself at home with the build tools Classic building of drivers done
using MSVC, (now .NET). But this is only used as an easy and handy IDE with
browsing capability. This can be linked with help of a batch file
(ddkbuild.bat also from the OSR website) to the Windows DDK where the real
compiler and linker sits. Also the Windows SDK has a smaller role to play.

The debugger WinDbg is also very important to study. In my experience if you
work without a browser or a debugger you are working very inefficiently and
stupidly. But many people still do it this way. So if you can connect up
these tools and use them well, then you already have a big advantage of the
other lazy cowboys.

You really have to use the tools, (not just read about what they do).
So you’ll need two computers one as a test “target” for your driver and the
other (more powerful one) as debugger host an development envirnoment.
You’ll need MSVC, DDK, SDK and WinDbg. Only the compiler is expensive , the
rest are available (I hope) vor the price of the CD and delivery costs.

Find yourself examples of good installation files (INF files). These are
neccessary for drivers and there is very little written about what exactly
should be in them. So learn from examples.

A compartively recent development there are now a number of very handy tools
from (Mark) Russinovich see
http://www.sysinternals.com/ntw2k/utilities.shtml and also many extra test
tools such as driver verifier, chkinf etc, now delivered with the ddk for
example.

An MSDN subcription costs unfortunately over 2K Euro per annum but this is
also worth it. Really unmissable if you have to do professional work.

Have lots of fun (and thanks for the opportunity to practice my broken
Dutch)

Greetings,

Jack.

“Mats PETERSSON” wrote in message
news:xxxxx@ntdev…
>
>
>
>
>
> Jack,
>
> With my limited understanding of Dutch (I did two years of German, and I
> grew up in Sweden, so I have some advantage over those who do not know any
> Germanic language besides English) I think this would be a nice reply to
> have in English on the list [I’m sure you intended to send it privately to<br>&gt; Marten], at least parts of it.
>
> –
> Mats
>
> xxxxx@lists.osr.com wrote on 01/20/2005 02:42:41 PM:
>
> > Marten,
> >
> > Device drivers is een echt gespecialiseerd en beperkt regio om te
werken.
> Er
> > is maar weinig driver werk in Nederland jammer genoeg (of onze
> inzetplanners
> > zoeken verkeerd, kan ook) . Ik ben zelf en zogenamde ‘expert’ met tien
> jaar
> > ervaring. Mijn Stetson draag ik neit, en laat er thuis op de kapstok
> blijven
> > hangen. Maar ik schrijf dagelijks meestal internet payment systemen in
> java,
> > en maar een of twee keer per jaar heb ik een beetje driver werk te doen.
> > Binnen “device drivers” zit er veel meer specialismes. Netwerk (NDIS),
> > Graphics, Printers, File Systemen, Filters, Bus Drivers, SCSI, USB enz.
> Ze
> > zijn allemaal, min of meer, apart en anders van elkaar.
> >
> > Daarom om werk te vinden heb je altijd de kip-ei probleem. De meeste
> > opdrachtgevers zoeken ervaring in een echt beperkt veld. Als oplossing,
> zoek
> > eerst en stagiereposting. (dat heb je al gedaan zie ik) En nu? Dat kan
ik
> > niet verder adviseeren. Sorry.
> >
> > Eigenlijk zijn de kosten van studie hoog in tijd en/of geld. Zoek een
> baan
> > waar ze tijd en geld hebben voor training, en vraag voor een OSR
training
> > course in de intake interview. Normaal gesproken zou er echt en
> > trainingsbudget in staat zijn, maar vaak is het niet zo in het praktijk.
> >
> > De meeste NT boeken praten onderanderen over user mode, en dit is niet
> wat
> > je wil. De boek Programming the Windows Driver Model van Walter Oney is
> echt
> > een goede keus van je. Mischien was het beter als de tweede boek te
> lezen.
> > Lees dan ook The Windows Device Driver Book van Mason & Viscarola. Dit
is
> nu
> > ‘de bibel’ voor driver programmeurs.
> >
> > Als je interesse in file-systems hebben, of wat dieper willen gaan als
> > studieproject, is er een boek van Rasheed Nagar (Inside the Windows NT
> File
> > Systems). File systemen zijn maar een applicatie van de lessen in de
> > Mason/Viscarola boek, en de uitlegging van dit ingewikkeld subject geeft
> > inzicht aan, en een gevoel van, de praktijk en de werking van Windows in
> een
> > beperkt arena. Dit maakt wat je leert meer concreet.
> >
> > Met die drie, heb je een goed biblioteek thuis, als reference. Er is ook
> een
> > boek van Art Baker die korter en minder goed is maar is ook leesbar en
> > sneller dan de anderen. En andere perspectief is ook handig als je
> problemen
> > hebben om iets te verstaan.
> >
> > Het probleem met boeken is dat ze snel verlopig wordt, maar als je die
> > boeken hebben, lees en verstaan, ben je klaar voor de DDK. Lees snel
> alles
> > in de DDK, and dan begin nog eens, twee of drie keren. Leer wat erin
zit.
> > Dan als je een probleem heeft klinkt een bel in je hoofd. Lezen van de
> DDK
> > kan je nooit gegoeg doen. Ja soms is het droog en vervelend, soms vaag,
> en
> > nee, de DDK is niet helemaal compleet.
> >
> > Subscribe naar “The NT Insider” dit is zonder kosten naar je huis
> gestuurd.
> > Lees ook de archive op hun website www.osronline.com. Hierin stand veel
> > specifieke artikels, ragen een antworden, en alles is (bijna) altijd
> > interessant te lezen.
> > (Op deze website vind je ook een online versie van de laaste DDK help).
> >
> > Maak jezelf thuis met de bouwtools. Classike bouwen van drivers is met
> hulp
> > van MSVC, nu .NET Maar dit alleen als een gemakkelijk en handig IDE met
> > browsing mogelijkheden. Dit kan gekoppeld worden met hulp van een batch
> file
> > (ddkbuild.bat ook van de OSR website) naar de Windows DDK waar de echt
> > compiler en linker zit. Ook heeft de Windows SDK en kleiner rol te
> spelen.
> > De debugger WinDbg is ook heel erg belangrijk om te studieren.
> >
> > In mijn ervaring, zonder een browser en debugger werk je heel
inefficient
> en
> > stom. Maar veel mensen doet het nog steeds. Dus als je de tooling kunnen
> > koppelen, en goed gebruiken heb je al een groot voordeel over de anderen
> > lauwe cowboys.
> >
> > De tools moet je echt gebruiken (niet alleen maar lezen over wat ze
> doet).
> > Je heb dus twee computers nodig, een als test “target” voor je driver en
> de
> > andere (krachtiger) als debugger host en ontwikkel environment. MSVC,
> DDK,
> > SDK en WinDbg heb je nodig. Alleen is de compiler kostbaar, de rest zijn
> > aanwezig (hoop ik) voor de prijs van de CD en leveringskosten.
> >
> > Vind jezelf exemplaren van goede installatie bestanden (INF files). Die
> zijn
> > nodig voor drivers en er is weinig greschreven over precies wat moet
erin
> > zitten. Dus leer van exemplaren.
> >
> > Laatst zijn er nu al veel handige gereedschappen van Russinovich zie
> > http://www.sysinternals.com/ntw2k/utilities.shtml
> > en ook veel extra test tools zoals driver verifier, chkinf enz, nu bvb
> met
> > de DDK geleverd.
> >
> > En MSDN subscription kost, jammer, boven de 2K Euro merk p.a. maar dat
is
> > ook van waarde. Echt onmisbaar als je professioneel driver werk moeten
> doen.
> >
> > Ik wens je veel plesier (en bedankt voor de kans om mijn gebroken
> nederlands
> > te oefenen)!
> >
> > Groeten,
> >
> > Jack.
> >
> > “Marten Lootsma” wrote in message news:xxxxx@ntdev…
> > > Hi,
> > >
> > > I have a question about ‘leaning’ to develop drivers.
> > > I’m still student and in my stage (practical) period I went to a
> company
> > > who develops measurement devices. Also on USB.
> > > They used a standaard (example) usb driver from Cypress. All the
> > > hardware settings where done by a Delpy program, just past through the
> > > driver and without change the driver put it to the device.
> > >
> > > After a while they asked me if I could make the driver ‘smart’. So the
> > > driver needed to have a global interface who is the same for different
> > > kind of devices. Well ofcouse very interesting for me, so I started. I
> > > made it and the preformance are much more better. For so far my stage.
> > >
> > > Now after my stage I’m still interested in writing driver and I’m now
> > > working partially in that company. I learned the most from examples
and
> > > the book “Ms Windows driver model” from Walter Oney.
> > >
> > > Now I know a little more about driver I find out how less I know from
> > > all the possibilities.
> > >
> > > Where can I start, is there some study? Or is the only way to learn it
> > > from examples? I read on OSR that cowboy programming in drivers is
‘not
> > > possible’, but how I become better than that?
> > >
> > > Greetings
> > > Marten Lootsma
> > >
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at http://www.
> > osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@3dlabs.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
> > ForwardSourceID:NT0000B3B6
>
>

Thanks for all suggestions.

I’m my stage I used already WinDbg etc… First through Com1 and later
FireWire. That’s make it a lot easier and clear. Especially when you can
put breakpoints. :smiley:

The bad thing is maybe that start with wrting (changing) a driver for a
non-standaard device with a non-standaard interface to the use
application (with events and shared memory). I think it’s good to look
at standaard systems, all the possibilties that already exists.

I’ll keep reading and trying :slight_smile:

All suggestions are welcome.
Thanks
Marten