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,
- It works fine in 2k,98SE,ME & XP. (This contradicts what 2k ddk says)
- 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).
- 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