NdisMIndicateReceivePacket in NT help pls!

Hello all!

Is it mandatory that the call
NdisMIndicateReceivePacket be called from
DISPATCH_LEVEL in NT4.0 for Serialized Miniport Driver
?

Any one any clue ?!

reg
ME


Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.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

On 10/31/01, “ME ” wrote:
> Hello all!
>
> Is it mandatory that the call
> NdisMIndicateReceivePacket be called from
> DISPATCH_LEVEL in NT4.0 for Serialized Miniport Driver

From the NT4 DDK docs itself…

“Callers of NdisMIndicateReceivePacket can run at IRQL <= DISPATCH_LEVEL,
but usually callers are running at DISPATCH_LEVEL.”

Scott


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

Thanx for U’r response Scott.
True! The NT4 DDK says so, and the 2k ddk says that
“Serialized callers of NdisMIndicateReceivePacket must run at IRQL
DISPATCH_LEVEL.”

But what i observed is, when NdisMIndicateReceivePacket is caled from
PASSIVE_LEVEL from my serialized virtual miniport driver,

  1. It works fine in 2k,98SE,ME & XP. (This contradicts what 2k ddk says)
  2. But in NT4.0 it causes a ASSERTION Failure in Ndis module (FYI: The
    Assertion is caused when Ndis is trying to acquire a lock associated with
    my adapter object).
  3. If i call NdisMIndicateReceivePacket from DISPATCH_LEVEL in NT4.0
    everything works fine.

My problem is i’m working with a virtual NIC driver, so my receives
indications are at PASSIVE_LEVEL. Raising the IRQL Level to DISPATCH_LEVEL
b4 calling NdisMIndicateReceivePacket & then lowering it also didn’t help,
still an Assert is caused.
But if NdisMIndicateReceivePacket is called from my MiniportSend context
(IRQL=DISPATCH _LEVEL) there is no Assertion.

Anyone any comments ?
Is there any sample code for Virtual Miniport driver available for NT4.0 ?

Thanx in advance
ME


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

The problem may not be with the IRQL at all then. I’ve had similar
problems, and from what I’ve seen, NDIS4 as implemented in NT has a notion
of “NDIS context”. You may not be in an NDIS context somehow or another,
since you’re a virtual miniport. Look at NdisIMQueueMiniportCallback() for
calling NdisMIndicateReceivePacket…

Warning… it’s deprecated in NDIS5.

Oh, and i think the reason that the IRQL for serialized 2K is
DISPATCH_LEVEL is that in theory, it’s supposed to be called from your
DPC…


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