Re: 3rd party Device driver development tool or pure wdm driver development..Which is the best?

I really have to disagree with you on this one. Debugging C++ can be a real
PITA. Debuggers need to be much more sophisticated to deal with things like
inheritance in C++. Having to drill down though several layers of
abstraction in order to find the value of an inherited variable is not my
idea of easy.

Jim

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Moreira, Alberto
Sent: Monday, October 29, 2001 1:21 PM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development tool or pure
wdm driver development…Which is the best???

Let me plug in my own here :slight_smile:

…As for debugging, you’re going to have to do it anyway, and debugging
other
people’s code can be hard - call it DDK or class library, it’s the same. But
debugging C++ is a lot easier than debugging C code…


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>>More, a class library isolates you from nonsense. The fact that one
must know how to drive the model doesn’t mean one must know the whole of
the model, neither does it mean one must know all of the DDK. Using
class libraries makes knowing much of the DDK unnecessary, and you
program to a model that’s much more pliable than the plain vanilla C in
the DDK. You minimize your interface with the OS, and you are left with
a lot more time and energy to concentrate on your own code and on
driving your own hardware.<<

Isolation from nonsense in a device driver is nonsense. I want to know
every little thing the driver does. I do not trust many libraries for
production work in critical kernel-mode environments; maybe OSR. There
is too much room for error. When you encounter an constructor error 8
level deep in some polymorphic device class, all hell breaks lose.

>As for debugging, you’re going to have to do it anyway, and debugging
other people’s code can be hard - call it DDK or class library, it’s the
same. But debugging C++ is a lot easier than debugging C code.<<

You can not compare a class library to anything in the DDK. I have a
choice about the class libraries, I do not have a choice about the DDK.
Enough said?

>So my take is, give me a minimalist and stable API into the OS, that
doesn’t change every OS release. Give me the ability of writing drivers
in C++. Give me an environment where I don’t need to worry about the OS
getting between me and my hardware, give me components that I can use
and avoid reinventing the wheel. Give me a clear separation between
driving my hardware and driving the OS.<<

I suspect you will be looking for a new operating system to develop
under with self-imposed restrictions like that :slight_smile:

>And hey, what’s wrong with our marvellous Numega support ? :-)<<

I love Numega tools and VtoolsD for the wrappers, but I would not be
caught dead using Driver::Works.

Jamey

-----Original Message-----
From: Peter Viscarola [mailto:xxxxx@osr.com]
Sent: Monday, October 29, 2001 3:58 PM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development tool or pure
wdm driver development…Which is the best???

these two things could discuss issues on both the commercial and
technical
advantages and
disadvantages of each of them…

Well, I say go with the base DDK.

I have three reasons:

a) If you use an existing toolkit/class library, you’re increasing what
you have to learn significantly. You’re gonna have to learn how to
write drivers using the DDK no matter what. If you don’t laern how to
write drivers the native DDK way you’ll never be able to read any of the
DDK explanatory material, or any of the books written on NT driver
writing. You certainly can’t expect whatever company you’re sourcing
your toolkit/class library from to be able to supply you info on EVERY
kind of driver, in EVERY situation. Hey, maybe you’d just like to read
somebody else’s description of what’s going on.

b) If you use the ddk, you have lots of potential assistance: There’s MS
support, there’s peer help from this forum, there’s The NT Insider,
there are other forums. With Vendor X’s toolkit/class library you get
help from Vendor X, and maybe their user group.

c) When you have a tough problem, you’re gonna wind-up debugging YOUR
driver, and Vendor X’s toolkit/class library code. Sure, the problem is
almost certainly in your driver, cuz Vendor X has no bugs… let’s
assume that. But the process of debugging a hard problem is gonna cause
you to have to walk through Vendor X’s stuff… cuz, after all, it IS
ultimately Windows that you’re interfacing with and that you need to
make happy. You new a device object and get back STATUS_UNSUCCESSFUL
(or whatever)… where’s the problem?

So you see, to be really effective there’s really no way to escape
knowing the native DDK interface, cuz that’s the interface that the O/S
utilizes. Might as well make it easy on yourself, and “bite the bullet”
and use the DDK.

Peter
OSR


You are currently subscribed to ntdev as: xxxxx@compuware.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@storagecraft.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Ditto!

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Jim Young
Sent: Monday, October 29, 2001 8:41 PM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development tool or pure
wdm driver development…Which is the best???

I really have to disagree with you on this one. Debugging C++ can be a
real PITA. Debuggers need to be much more sophisticated to deal with
things like inheritance in C++. Having to drill down though several
layers of abstraction in order to find the value of an inherited
variable is not my idea of easy.

Jim

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Moreira, Alberto
Sent: Monday, October 29, 2001 1:21 PM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development tool or pure
wdm driver development…Which is the best???

Let me plug in my own here :slight_smile:

…As for debugging, you’re going to have to do it anyway, and debugging
other people’s code can be hard - call it DDK or class library, it’s the
same. But debugging C++ is a lot easier than debugging C code…


You are currently subscribed to ntdev as: xxxxx@storagecraft.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

hello,

the first thing in earlier days of Windows NT 3.0 for my, was to write
C++ framework for my normal driver and NDIS driver. Ok it was a little
hard than the MS build framework was to stupid for C++ in kernel mode
in 1994.
Each sample in the DDK has over 50 % the same code and a C++ framework
let me concentrate to my problem.

Since VDW was avail, I use it for normal driver development.
Some things are not good enough for me, but now I have a new layer
over VDW and can build a new driver in very short time.

In a C++ framework from 3rd party I can reuse tested code and solve
my special problem for special hardware in the shortest way. Ok the
first driver is hard than you to learn DDK and the framework. But the
second and so on is easier and faster in development.

elli


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Oh, I get it quite well. I was a serious C++ advocate back in the late
80 and I did tons of OOD and OO implementations. You are the one who
does not understand; history tells all.

Jamey

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
Sent: Tuesday, October 30, 2001 8:08 AM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development tool or pure
wdm driver development…Which is the best???

In fact the folks NOT using toolkits either commercial or homegrown
frameworks, who are writing more than one device driver, are almost
invariably either doing cut’n’paste engineering or re-writing code they
have re-written any number of times, with the consequent “cut’n’paste
kahuna” anti-pattern class of defects. You are right, perhaps they just
don’t get the concept or value of re-usable extensible code.

Anytime I catch myself doing ^C/^V on a code segment I start thinking
template or virtual function.

-----Original Message-----
From: xxxxx@bsquare.com [mailto:xxxxx@bsquare.com]
Sent: Tuesday, October 30, 2001 5:58 AM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development tool or pure
wdm driver development…Which is the best???

Not trying to get into a religious war here, I know a lot of people
don’t
like toolkits for whatever reasons, and I am not about to convince
otherwise. But what do you consider non-trivial? I mean WinDK doesn’t
handle FileSystem, SCSI, or NDIS drivers, it just isn’t designed for
those
APIs, although we might add extensions to that effect. But, you can
make
any kernel call you like in a WinDK driver, so there is no device you
can’t
handle if you want to. We have done some fairly knarly custom work.
Extending C++ is basically what C++ was designed for. WinDK may not
help
in all cases, but it won’t hurt in most cases either. Then you still
get
the IRP queues, IRP handling functions, registry functions, DMA
functions,
all that crap that once you know how it works you are just going to cut
and
paste it anyway. I don’t understand why most people don’t get that.
Even
Walter Oney has created a framework for himself. I bet he can get a
contract done a whole lot faster than his competition using the straight

DDK :slight_smile: Every WDM driver is going to have to handle PNP and Power, why
reinvent the wheel?

Bill M.

What kind of driver do you want to develop?
If something non-trivial - then only bare DDK can be used, any toolkit
= will introduce problems and not solve it.

But if something plain - like NDIS/WDM driver for an USB network =
hardware - then try the toolkits like bSquare’s one.

Max

----- Original Message -----=20
From: Shiva prasad T.S.=20
To: NT Developers Interest List=20
Sent: Sunday, September 29, 2002 2:14 PM
Subject: [ntdev] 3rd party Device driver development tool or pure
wdm = driver development…Which is the best???

Hi friends,

I would like to discuss here which would be the best option

whether to go for 3rd party device driver development tool or
Building = own .sys driver using WDM…if anybody more experienced with
these two things could discuss issues on both the commercial and =
technical advantages and disadvantages of each of them…

thanx,

shiv

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com=20


You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

------=_NextPart_000_0096_01C160AB.1B33FAB0
Content-Type: text/html;
charset=“ISO-8859-1”
Content-Transfer-Encoding: quoted-printable

> charset=3Diso-8859-1">

What kind of driver do you want to =
> develop?

If something non-trivial - then only bare DDK
=
> can be=20
> used, any toolkit will introduce problems and not solve
it.

 

But if something plain - like NDIS/WDM driver for
an =
> USB=20
> network hardware - then try the toolkits like bSquare’s =
> one.

 

Max

 

> style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
> BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
>
----- Original Message -----

>
> style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
> black"> From: =20
> > href=3D"mailto:xxxxx@yahoo.com">Shiva=20
> prasad T.S.

>
To: > title=xxxxx@lists.osr.com=20
> href=3D"mailto:xxxxx@lists.osr.com">NT Developers Interest List

>

>
Sent: Sunday, September 29, =
> 2002 2:14=20
> PM

>
Subject: [ntdev] 3rd party =
> Device driver=20
> development tool or pure wdm driver development…Which is the =
> best???

>

>
Hi friends,

>
 

>
I would like to
=
> discuss here=20
> which would be the best option

>
 

>
whether to go for 3rd party device
=
> driver=20
> development tool or Building own .sys driver using WDM…if anybody =
> more=20
> experienced with

>
these two things could discuss
issues =
> on both the=20
> commercial and technical advantages and disadvantages of each of=20
> them…

>
 

>
thanx,

>
 

>
shiv

You are =
> currently=20
> subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe
send =
> a blank=20
> email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@stratus.com

To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@stratus.com
To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)

To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

------=_NextPart_000_0096_01C160AB.1B33FAB0–

I had a huge text from one Russian MS employee (from either CL compiler or SQL Server teams - do not know exactly, not the NT kernel
team surely), who explains why C++ is bad for system programming.
Unfortunately, the text is in Russian and it will require some effort for me to translate, but the main idea is “hidden semantics
makes the code less maintainable, especially in team environment”.

It is hard to maintain a code when the constructor establishes connection with the server.

Max

----- Original Message -----
From: “Jamey Kirby”
To: “NT Developers Interest List”
Sent: Tuesday, October 30, 2001 9:39 PM
Subject: [ntdev] Re: 3rd party Device driver development tool or pure wdm driver development…Which is the best???

> Oh, I get it quite well. I was a serious C++ advocate back in the late
> 80 and I did tons of OOD and OO implementations. You are the one who
> does not understand; history tells all.
>
> Jamey
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Roddy, Mark
> Sent: Tuesday, October 30, 2001 8:08 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: 3rd party Device driver development tool or pure
> wdm driver development…Which is the best???
>
>
> In fact the folks NOT using toolkits either commercial or homegrown
> frameworks, who are writing more than one device driver, are almost
> invariably either doing cut’n’paste engineering or re-writing code they
> have re-written any number of times, with the consequent “cut’n’paste
> kahuna” anti-pattern class of defects. You are right, perhaps they just
> don’t get the concept or value of re-usable extensible code.
>
> Anytime I catch myself doing ^C/^V on a code segment I start thinking
> template or virtual function.
>
> -----Original Message-----
> From: xxxxx@bsquare.com [mailto:xxxxx@bsquare.com]
> Sent: Tuesday, October 30, 2001 5:58 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: 3rd party Device driver development tool or pure
> wdm driver development…Which is the best???
>
>
> Not trying to get into a religious war here, I know a lot of people
> don’t
> like toolkits for whatever reasons, and I am not about to convince
> otherwise. But what do you consider non-trivial? I mean WinDK doesn’t
> handle FileSystem, SCSI, or NDIS drivers, it just isn’t designed for
> those
> APIs, although we might add extensions to that effect. But, you can
> make
> any kernel call you like in a WinDK driver, so there is no device you
> can’t
> handle if you want to. We have done some fairly knarly custom work.
> Extending C++ is basically what C++ was designed for. WinDK may not
> help
> in all cases, but it won’t hurt in most cases either. Then you still
> get
> the IRP queues, IRP handling functions, registry functions, DMA
> functions,
> all that crap that once you know how it works you are just going to cut
> and
> paste it anyway. I don’t understand why most people don’t get that.
> Even
> Walter Oney has created a framework for himself. I bet he can get a
> contract done a whole lot faster than his competition using the straight
>
> DDK :slight_smile: Every WDM driver is going to have to handle PNP and Power, why
> reinvent the wheel?
>
> Bill M.
>
>
> >
> > What kind of driver do you want to develop?
> > If something non-trivial - then only bare DDK can be used, any toolkit
> > = will introduce problems and not solve it.
> >
> > But if something plain - like NDIS/WDM driver for an USB network =
> > hardware - then try the toolkits like bSquare’s one.
> >
> > Max
> >
> > ----- Original Message -----=20
> > From: Shiva prasad T.S.=20
> > To: NT Developers Interest List=20
> > Sent: Sunday, September 29, 2002 2:14 PM
> > Subject: [ntdev] 3rd party Device driver development tool or pure
> > wdm = driver development…Which is the best???
> >
> >
> > Hi friends,
> >
> > I would like to discuss here which would be the best option
> >
> > whether to go for 3rd party device driver development tool or
> > Building = own .sys driver using WDM…if anybody more experienced with
> > these two things could discuss issues on both the commercial and =
> > technical advantages and disadvantages of each of them…
> >
> > thanx,
> >
> > shiv
> > —
> > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > To unsubscribe send a blank email to
> > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com=20
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@stratus.com To
> > unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> > ------=_NextPart_000_0096_01C160AB.1B33FAB0
> > Content-Type: text/html;
> > charset=“ISO-8859-1”
> > Content-Transfer-Encoding: quoted-printable
> >
> >
> > > > charset=3Diso-8859-1">
> >

> >

> >
> >
> >

What kind of driver do you want to =
> > develop?


> >
If something non-trivial - then only bare DDK
> =
> > can be=20
> > used, any toolkit will introduce problems and not solve
> it.


> >



> >
But if something plain - like NDIS/WDM driver for
> an =
> > USB=20
> > network hardware - then try the toolkits like bSquare’s =
> > one.


> >



> >
Max


> >



> >
> > style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
> > BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
> >
----- Original Message -----


> >
> > style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
> > black">From:=20
> > > > href=3D"mailto:xxxxx@yahoo.com">Shiva=20
> > prasad T.S.


> >

> >

Sent: Sunday, September 29, =
> > 2002 2:14=20
> > PM


> >

Subject: [ntdev] 3rd party =
> > Device driver=20
> > development tool or pure wdm driver development…Which is the =
> > best???


> >



> >
Hi friends,


> >


> >
I would like to
> =
> > discuss here=20
> > which would be the best option


> >


> >
whether to go for 3rd party device
> =
> > driver=20
> > development tool or Building own .sys driver using WDM…if anybody =
> > more=20
> > experienced with


> >
these two things could discuss
> issues =
> > on both the=20
> > commercial and technical advantages and disadvantages of each of=20
> > them…


> >


> >
thanx,


> >


> >
shiv

You are =
> > currently=20
> > subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe
> send =
> > a blank=20
> > email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


> > —

> > You are currently subscribed to ntdev as: xxxxx@stratus.com

> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> —

> You are currently subscribed to ntdev as: xxxxx@stratus.com
To
> unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —

> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To
> unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —

> You are currently subscribed to ntdev as: xxxxx@storagecraft.com

> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)

To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> >
> >
> > ------=_NextPart_000_0096_01C160AB.1B33FAB0–
>
>
>
>