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

> Anytime I catch myself doing ^C/^V on a code segment I start thinking

template or virtual function.

…to make the code less readable. Cut-and-paste code is readable, not so with abusing templates and inheritance.

MS write 99% of their drivers in C, not C++.
This is because they do not like hidden semantics in such important areas.

Max


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

On 10/30/01, ““Maxim S. Shatskih” ” wrote:

> This is because they do not like hidden semantics in such important areas.

Hmm, Microsoft does not like hidden semantics in such important areas? I
don’t believe it. Look in ntddk.h for all this pretties like PAGED_CODE,
ASSERT, IsListEmpty macroses - they really can drive you crazy during
debuging.

And, BTW, DDK docs don’t even mention all this stuff to be “thin ice”
area.

>
> Max

Gennady Mayko.

>
>
>
> —
> 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


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

> Hmm, Microsoft does not like hidden semantics in such important areas? I

don’t believe it. Look in ntddk.h for all this pretties like PAGED_CODE,
ASSERT, IsListEmpty macroses - they really can drive you crazy during
debuging.

Nothing crazy at all.
IsListEmpty is much more sane than any C++ templates.
PAGED_CODE does not influence the execution (unless you’re < DISPATCH_LEVEL).
ASSERT is a usual debugging tool since 70ies - I’m surprised ASSERT drives you crazy.

Max


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

On 10/31/01, ““Maxim S. Shatskih” ” wrote:
> > Hmm, Microsoft does not like hidden semantics in such important areas? I
> > don’t believe it. Look in ntddk.h for all this pretties like PAGED_CODE,
> > ASSERT, IsListEmpty macroses - they really can drive you crazy during
> > debuging.
>
> Nothing crazy at all.

It is a well know fact that using macroses in C (and, BTW, in C++ as well)
is the way to introduce problems in your code and hide semantics.

>
> Max
>


Regards,
Gennady Mayko.

>
>
> —
> 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


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

> It is a well know fact that using macroses in C (and, BTW, in C++ as well)

is the way to introduce problems in your code and hide semantics.

Be accurate and do not abuse them.
IsListEmpty and CONTAINING_RECORD never caused any problems.

Not so with macros which alter something - yes, they are dangerous and require extreme care.

Max


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