Don Burn wrote:
If you don’t care about the driver type then I find these questions
worthless. Having interviewed a large number of folks for employers and
clients over the years, when someone asks me for this type of help I refuse,
since it has never helped, but commonly hurt.
Sure I can concede that… I defiantly consider you a pro Don. When I
said I don’t care about the driver
type, I meant more to pick a category. In your below example, if you
were looking for an NDIS 5 candidate
vs an NDIS 4 one, what is the first thing you would ask them?
A number of years ago Ed Dekker and I were interviewing candidates for job
where NDIS experience was needed. The HR department of the firm, decided to
screen for lots of NDIS as a minimal criterion, only problem was all the
candidates were NDIS 4 experts, and we needed NDIS 5, because the systems
were 8 way servers. I later learned some good people with a lot of MP
performance but lite on NDIS applied and were not even shown to us.
Now lets take your specific questions:
Was kinda meaning to exclude these things for the reasons you mentioned,
perhaps I worded that part wrong.
Paged versus Non-paged
I see a lot lately on who care about paged any more since memory is
cheap. Personally I do not subscribe to this concept, but saying someone is
a good or bad driver developer based on this is probably a bad idea.
IRQL
I took classes from OSR, I have taught classes based on the Dekker
and Newcomer book, and have worked with people who were taught by Oney and
Azuis. Guess what, all have subtle differences on what does IRQL mean.
Yes, you can ask questions like what can be done at PASSIVE, APC, DISPATCH
and DIRQL but you are quickly into driver specifics or otherwise this is a
question of the level of “Is water wet?”
Context
The importance of this is highly dependant on the driver class.
Folks who primarily deal with mini-ports seem a lot less interested in
context than those of us who deal with file systems. Is context relavent in
UMDF (I really don’t know).
For at least 5 years a number of senior driver types who inhabit this forum
and other places have chatted about guidelines for determining a good driver
wirter when we got together at things like WinHEC and DevCon. We limited
ourselves to WDM and even then could not find any thing that either was not
so simple that 30 days of study could pass it, or so specific and
controversial that no one would accept it.
And a discussion on WDM coding standards would be great. Reading the
various arguments between you
and other guru’s on what is essential to know about this type of driver
would be great reading for the rest of us.
This questions has the same problems as the “what makes a good programmer”
efforts of 30 to 40 years ago. We don’t try to do that now. Or the great
do you know object oriented programming stuff of 20 years ago, where “if you
programed commercially or college in C++ you obviously knew OO, otherwise
not” yea right!
I spend a lot of my consulting time with new customers explaining that one
size does not fit all, that there is no thing as a “Windows device driver
expert”, but instead there are mutiple types of drivers, and consultants and
developers are experts in some subset. Trying to come up with a general
set of questions will harm the industry not help it. We will see a
resugance of the situation of a few years ago, where off shore firms
advertised “We have a 1000 man years of Windows driver development
experience”, which translated into “we have 2000 developers who took a class
on windows drivers 6 months ago” Firms like this, and cheapo contractors
will now memorize a set of “general questions” and come off as experts.
I apologize for such a broad question that could spark a great deal of
debate. I meant it more as a community
type question. If you were hiring someone to write ANY kernel code, what
would you ask first.
If you were hiring someone to write NDIS code, what would your first
questions be?
Your first file system questions would be?
Your first WDM questions would be about what?
a.) power management
b.) bus protocols
c.) ???
KMDF, what are the first few questions you would ask about that
architecture…
I know this is broad, and is a never ending question, just looking for a
little that could point me in
new areas to study.
In a sense, I’m not exactly looking for Cliff Notes here with answers,
just important points to
study myself regarding different kernel technologies.
Matt