Beware: NDIS 4.0 problem ( is smb at MS listening!! ?)

Subject: [ntdev] NdisSend() succeeds, MiniportSendPackets() is NOT
driven, Ndis returns SUCCESS to the protocol?

BUT!!! – not always: When debug statement added/removed, or some (as it
turned out, irrelevant) changes made to the miniport code, Ndis starts to
pass some packets to the miniport! Also, sometimes you can make Ndis to
pass packets to the miniport by simply moving mouse/dragging windows!
Also, the symptom changes if you step through protocol/Ndis.sys in
debugger (i.e. packets start being passed to the miniport).

I posted this twice problem awhile ago, and ever since was dutifully
pulling my hair out – and boy, what did not I do to find out what was going
on (ran under checked build, traced Ndis.sys code, change every every thing
I could think of in the 3-rd party miniport that exhibited the problem).

Finally, after being tipped on how to enable Ndis internal tracing
by a professional Ndis driver writer (I only wrote non-network Ndis drivers
“ad hoc”), I discovered that the problem was that the miniport set
NDIS_OPTION_NO_LOOPBACK in OID_GEN_MAC_OPTIONS.

There is nothing wrong with that – especially so the medium
(Infrared) doesn’t support loopback in h/w.
The problem – I’m convinced – is in Ndis 40. For some reasons
sometimes it decides to pass packets to the miniport, but “most of the time”
it does not. However, I was able to build debugged version of the miniport,
which is called roughly 90% of the time. So, no matter how you cut it, Ndis
is at fault – even if one assumes that it is proper behavior (how could it
be!?) to loop-back every single packet.

However, the same driver works just fine under Ndis 5.0 in W98, W2K!
If it not a bug in Ndis 40, what is it?

Now, I think MS recently complained that smb was secretly examining
their
source code online. Poor babies! Talking about crime and punishment in one.

Anatoly

LOL :slight_smile:

----- Original Message -----
From: Anatoly Katsev
To: NT Developers Interest List
Sent: Wednesday, November 01, 2000 11:24 AM
Subject: [ntdev] Beware: NDIS 4.0 problem ( is smb at MS listening!! ?)

>
>
> Subject: [ntdev] NdisSend() succeeds, MiniportSendPackets() is NOT
> driven, Ndis returns SUCCESS to the protocol?
>
> BUT!!! – not always: When debug statement added/removed, or some (as it
> turned out, irrelevant) changes made to the miniport code, Ndis starts to
> pass some packets to the miniport! Also, sometimes you can make Ndis to
> pass packets to the miniport by simply moving mouse/dragging windows!
> Also, the symptom changes if you step through protocol/Ndis.sys in
> debugger (i.e. packets start being passed to the miniport).
>
>
> I posted this twice problem awhile ago, and ever since was dutifully
> pulling my hair out – and boy, what did not I do to find out what was
going
> on (ran under checked build, traced Ndis.sys code, change every every
thing
> I could think of in the 3-rd party miniport that exhibited the problem).
>
> Finally, after being tipped on how to enable Ndis internal tracing
> by a professional Ndis driver writer (I only wrote non-network Ndis
drivers
> “ad hoc”), I discovered that the problem was that the miniport set
> NDIS_OPTION_NO_LOOPBACK in OID_GEN_MAC_OPTIONS.
>
>
> There is nothing wrong with that – especially so the medium
> (Infrared) doesn’t support loopback in h/w.
> The problem – I’m convinced – is in Ndis 40. For some reasons
> sometimes it decides to pass packets to the miniport, but “most of the
time”
> it does not. However, I was able to build debugged version of the
miniport,
> which is called roughly 90% of the time. So, no matter how you cut it,
Ndis
> is at fault – even if one assumes that it is proper behavior (how could
it
> be!?) to loop-back every single packet.
>
> However, the same driver works just fine under Ndis 5.0 in W98, W2K!
> If it not a bug in Ndis 40, what is it?
>
> Now, I think MS recently complained that smb was secretly examining
> their
> source code online. Poor babies! Talking about crime and punishment in
one.
>
>
> Anatoly
>
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)