From: Subject: Re: Major bug in Win2K NDIS doc Date: Tuesday, October 10, 2000 1:00 PM My knowledge of how things work on 9x system is close to zero. So I don't usually comment on any 9x stuff. However, I checked around about your comments and found out that you are right. We will be publishing a KB article asap summarizing the problem. Here is the draft of it: Handling Receives in a Deserialized Miniport Drivers on 9x platforms Note: Since miniports can't distinguish between Win98Gold and Win98SE and WinMe, so this would apply to all three. The problem: NDIS never calls the MiniportReturnPackets handler of deserialized miniports on Win98Gold. This problem does not exist on Win98SE or WinMe. This can cause a deserialized miniport to run out of receive resources. The solution: Set the status of all indicated received packets to NDIS_STATUS_RESOURCES before calling NdisM[Co]IndicateReceivePacket. When the API returns, call MiniportReturnPacket to reclaim the packet (s) indicated up. Impact: Protocols that receive such packets cannot gain ownership of those packets, i.e. they cannot queue such packets for later processing. If they need to do so, they must make a copy. Considering specifically the TCP/IP implementation on Win98Gold and Win98SE, this will not impact performance. Comments: Binary compatible miniports may condition this behavior based on knowledge of the platform they are running on (by querying the "Environment" variable using NdisReadConfiguration), and avoid setting the status of all packets to NDIS_STATUS_RESOURCES on Windows 2000/Whistler. -Eliyas In article <8ruklt$j2voc$1@ID-636.news.cis.dfn.de>, "Axel Sommerfeldt" wrote: > eliyasy@microsoft.com wrote... > > >Correct sequence for Multipacket Receives from Connectionless and > >Connection-Oriented is given below: > > > >[...] > > > >4. If the miniport had set the packet status to something other than > >NDIS_STATUS_RESOURCES, then NDIS guarantees that its > >MiniportReturnPacket handler will be called at some point of time to > >return this packet to the miniport. > > As I already said: This is *definitly* *not* true for Windows98 Gold. It is > true for Windows98SE, Windows ME and W2k, but not for the 1st edition of > Windows98. Try it out for yourself: Install a *fresh* (this is important, > because the installation of some MS products will update ndis.vxd) Windows98 > Gold and test it! NdisMIndicateReceivePacket() will definitly not result in > calling MiniportReturnPacket() most of the time. > > I can send you some traces (Windows98 Gold vs. W98SE) if you want to. > > Axel > > Sent via Deja.com http://www.deja.com/ Before you buy.