Basic books recommendations

Hi all,

I saw in the the basics some recommendations of books that I should read as a newbie in this field. But the article was last updated in 05 and doesn’t seem to contain much relevance to the new WDF. The following can be found in the article:
"
Inside Microsoft Windows 2000, 3rd Edition,
Windows NT Device Driver Development
Programming the Microsoft Windows Driver Model"

right now my books to tackle looks more like:
-Microsoft Windows internals, by Solomon and Russinovich, Microsoft Press. Good overall introduction to Windows o/s architecture.
-Developing Drivers with Windows Driver Foundation, by Penny Orwick and Guy Smith

would this be a good enough start?

For WDM, those are the places to start (in that order), in my opinion.

Of course, the Orwick book is also your ONLY option.

Good luck,

Mm
On Aug 15, 2011 7:51 PM, wrote:
> Hi all,
>
> I saw in the the basics some recommendations of books that I should read
as a newbie in this field. But the article was last updated in 05 and
doesn’t seem to contain much relevance to the new WDF. The following can be
found in the article:
> “
> Inside Microsoft Windows 2000, 3rd Edition,
> Windows NT Device Driver Development
> Programming the Microsoft Windows Driver Model”
>
> right now my books to tackle looks more like:
> -Microsoft Windows internals, by Solomon and Russinovich, Microsoft Press.
Good overall introduction to Windows o/s architecture.
> -Developing Drivers with Windows Driver Foundation, by Penny Orwick and
Guy Smith
>
> would this be a good enough start?
>
>
> —
> 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

A very useful book for self learner:
Windows via C/C++ (Richter, Nasarre)
http://www.amazon.com/Windows-via-Pro-Jeffrey-Richter/dp/0735624240

It explains precisely and practically how basic Win32 things work: DLLs,
memory API, named objects, I/O and so on.
Must know this (or refresh) before approaching drivers.
What is also great in this book - it helps to start reading MSDN
documentation (which may be intimidating to beginners).

Regards,
– pa

/* “Inside Microsoft Windows” was IMHO rather disappointing.
NT is such a huge system. One book simply cannot cover it all with depth
and quality.
It gives a warm feeling to have it on the shelf, but isn’t a everyday
reference.
When you look in desperation for something “undocumented” - Google is faster
:slight_smile:
*/

wrote in message news:xxxxx@ntdev…
> Hi all,
>
> I saw in the the basics some recommendations of books that I should read
> as a newbie in this field. But the article was last updated in 05 and
> doesn’t seem to contain much relevance to the new WDF. The following can
> be found in the article:
> “
> Inside Microsoft Windows 2000, 3rd Edition,
> Windows NT Device Driver Development
> Programming the Microsoft Windows Driver Model”
>
> right now my books to tackle looks more like:
> -Microsoft Windows internals, by Solomon and Russinovich, Microsoft
> Press. Good overall introduction to Windows o/s architecture.
> -Developing Drivers with Windows Driver Foundation, by Penny Orwick and
> Guy Smith
>
> would this be a good enough start?
>
>

Thanks for the recommendations guys,

Pavel, your recommendation on the book Windows via C/C++ seems to indicate that I need both C and C++. I think i did read somewhere that the UMDF uses C++ and KMDF uses C. Do I need to know both?

wrote in message news:xxxxx@ntdev…
> Thanks for the recommendations guys,
>
> Pavel, your recommendation on the book Windows via C/C++ seems to indicate
> that I need both C and C++. I think i did read somewhere that the UMDF
> uses C++ and KMDF uses C. Do I need to know both?
>

Yes, UMDF uses C++ and KMDF uses C. Hope this answers your question.

But knowing C++ can mean different things to different people. C++
(Microsoft’s) by itself is not that bad, the huge libraries are what make
learning it a big deal. Making copied&pasted code written for other
compilers and library versions work also can be hard.

– pa

>But knowing C++ can mean different things to different people. C++
(Microsoft’s) by itself is not that bad, the huge libraries are what make
learning it a big deal. Making copied&pasted code written for other
compilers and library versions work also can be >hard.

Just an opinion, but I don’t agree with the statement that C+ isn’t that bad
(to learn), assuming that the intent is to use C++ fully - inheritance, et.
c. - and well.

C++ (IMO) has always been fairly difficult to use well (really design
software well). One can create truly horrible stuff that “works” but
otherwise sucks compared to a flat C implementation.

These days, however, with the feature creep/avalanche that’s going on, I
wouldn’t say even just getting a hold of the syntax and basic concepts is
easy.

My two cents.

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Pavel A.
Sent: Tuesday, August 16, 2011 5:03 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Basic books recommendations

wrote in message news:xxxxx@ntdev…
> Thanks for the recommendations guys,
>
> Pavel, your recommendation on the book Windows via C/C++ seems to
> indicate that I need both C and C++. I think i did read somewhere that
> the UMDF uses C++ and KMDF uses C. Do I need to know both?
>

Yes, UMDF uses C++ and KMDF uses C. Hope this answers your question.

But knowing C++ can mean different things to different people. C++
(Microsoft’s) by itself is not that bad, the huge libraries are what make
learning it a big deal. Making copied&pasted code written for other
compilers and library versions work also can be hard.

– 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

> Just an opinion, but I don’t agree with the statement that C+ isn’t that bad (to learn), assuming that the

intent is to use C++ fully - inheritance, et. c. - and well.

Wow!!! Yet another “C vs C++” discussion seems to be commencing…

What about moving it to NTTALK - it seems to be pretty quiet at the moment…

Anton Bassov

Excellent idea.

wrote in message news:xxxxx@ntdev…
>> Just an opinion, but I don’t agree with the statement that C+ isn’t that
>> bad (to learn), assuming that the
>> intent is to use C++ fully - inheritance, et. c. - and well.
>
>
> Wow!!! Yet another “C vs C++” discussion seems to be commencing…
>
> What about moving it to NTTALK - it seems to be pretty quiet at the
> moment…
>
>
> Anton Bassov
>

> C++ (IMO) has always been fairly difficult to use well (really design

software well). One can create truly horrible stuff that “works” but
otherwise sucks compared to a flat C implementation.

I agree.

You must really have a strong sense of the C++ features to use them properly. For instance, you can understand that OOP paradigm (like COM) is better not to be mixed with ADT/metaprogramming (like most of Boost and to some degree STL).


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com