Re: MiniportReturnPacket() not getting called in NT D- eserialized miniport Driver

> ----------

From: xxxxx@midcore.com[SMTP:xxxxx@midcore.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, February 22, 2002 10:08 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] Re: MiniportReturnPacket() not getting called in NT
D eserialized miniport Driver

> The missing part is that in a deserialized driver,
> MiniportReturnPacket() can be called even before
> NdisMIndicateReceivePacket() returns! That is, the packet passed up
> might have been returned to the Miniport before it has a chance to
> inspect the ‘Status’ member of any packet. The packet’s memory might
> even have been freed already - boom!

You can set the packet’s status to NDIS_STATUS_RESOURCES before indicating
the packet to prevent this from occurring (this is documented in the XP
DDK).

Yes, but it in turn causes a call to ProtocolReceive handler instead of
ProtocolReceivePacket. It may not be desired and can cause performance
problems. Anyway, it can be a good compromise for NT4 if somebody wants to
follow docs for newer OSes and still make driver working there :wink:

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.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

Setting NDIS_STATUS_RESOURCES *does* have an enormous impact on
performance. At least with Gigabit Ethernet…

Stephan

On Fri, 22 Feb 2002 22:29:34 +0100, Michal Vodicka
wrote:

>
>> ----------
>> From: xxxxx@midcore.com[SMTP:xxxxx@midcore.com]
>> Reply To: xxxxx@lists.osr.com
>> Sent: Friday, February 22, 2002 10:08 PM
>> To: xxxxx@lists.osr.com
>> Subject: [ntdev] Re: MiniportReturnPacket() not getting called in NT
>> D eserialized miniport Driver
>>
>> > The missing part is that in a deserialized driver,
>> > MiniportReturnPacket() can be called even before
>> > NdisMIndicateReceivePacket() returns! That is, the packet passed up
>> > might have been returned to the Miniport before it has a chance to
>> > inspect the ‘Status’ member of any packet. The packet’s memory might
>> > even have been freed already - boom!
>>
>> You can set the packet’s status to NDIS_STATUS_RESOURCES before indicating
>> the packet to prevent this from occurring (this is documented in the XP
>> DDK).
>>
>Yes, but it in turn causes a call to ProtocolReceive handler instead of
>ProtocolReceivePacket. It may not be desired and can cause performance
>problems. Anyway, it can be a good compromise for NT4 if somebody wants to
>follow docs for newer OSes and still make driver working there :wink:
>
>Best regards,
>
>Michal Vodicka
>STMicroelectronics Design and Application s.r.o.
>[michal.vodicka@st.com, http:://www.st.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