Microsoft KB Archive/285676

= Windows Millennium Edition TCPIP discards packets via dial-up NDIS intermediate drivers =

Article ID: 285676

Article Last Modified on 2/12/2007

-

APPLIES TO


 * Microsoft Windows Millennium Edition Driver Development Kit
 * Microsoft Windows Millennium Edition

-



This article was previously published under Q285676



SUMMARY
Transmission Control Protocol/Internet Protocol (TCP/IP) in Windows Millennium Edition will discard packets that are passed up from an intermediate NDIS driver over dial-up connections if NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA is not set in OID_GEN_MAC_OPTIONS. Intermediate drivers must support OID_GEN_MAC_OPTIONS and set NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA.



MORE INFORMATION
If the entire packet is passed up to TCP/IP, the unnecessary call to NdisTransfer will result in an NDIS_PACKET whose buffer contains invalid data. TCP/IP will discard the packet because of a failed check sum. To verify this condition, connect to a remote host and perform a PING to a known IP address. The PING will time out. Run NETSTAT -S from a command prompt. Internet Control Message Protocol (ICMP) receive errors will increment for each discarded packet (see the following output from NETSTAT.exe). User Datagram Protocol (UDP) receive errors may also indicate this condition.

NetStat -s

IP Statistics

Packets Received                  = 21 Received Header Errors            = 0 [...] Fragments Created                  = 0

ICMP Statistics

Received   Sent Messages                 4 <---      4 Errors                   4 <---      0 Destination Unreachable  0           0 Time Exceeded            0           0 [...] Address Mask Replies      0           0

TCP Statistics

[...]

UDP Statistics

Datagrams Received   = 0 No Ports             = 0 Receive Errors       = 17  <--- Datagrams Sent       = 40

Another indication of this problem can be seen if you use the kernel debugger, load the debug version of TCPIP.sys, and set DbgSettingsZone to ff ff ff ff and DbgSettingsLevel to ff ff ff ff. The output below will be emitted to the debugger. The debug binary for TCPIP.sys can be obtained from the following Microsoft Knowledge Base article:

279356 NDIS debugging tips for Windows ME

This is the output emitted:

+ICMPRcv(..., ..., ...) ICMPRcv: Packet dropped, invalid checksum.

Keywords: kbinfo kbkmode kbndis kbnetwork KB285676

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.