NDISTest CheckConnectivity fails with "Corruption detected in the NetBuffer received" on HLK 10.1.26100.8328, also with 3rd party adapters

Abhishek Naik 0 Reputation points
2026-10-14T09:07:40.15+00:00

Subject: NDISTest CheckConnectivity fails with "Corruption detected in the NetBuffer received" on HLK 10.1.26100.8328, also with stock adapters

Hello,

We are preparing an HLK submission for a virtual Ethernet adapter (NetAdapterCx miniport) and the NDISTest CheckConnectivity test fails. After isolating the issue, we believe it comes from NDISTest or the kit, not from our driver, and would like your help confirming that.

Environment

  • HLK controller and HLK Studio: 10.1.26100.8328
  • NDISTest 10.0.26100.8328, protocol driver ndprot683
  • Client (DUT) machine: Windows 11 25H2. Support machine: Windows
  • Test adapter: our virtual Ethernet adapter (NetAdapterCx, NdisMedium802_3, NDIS 6.89, MTU 65550)
  • Support adapter: Marvell AQtion 10Gbit (aqnic650.sys 3.1.10.0)
  • Control adapter: TP-LINK Gigabit Ethernet USB Adapter (rtucx21x64.sys, NDIS 6.89, MTU 1514)
  • Test path is a direct cable between test and support adapters

Symptom

CheckConnectivity fails 3 of 8 sub-tests. In both directions, 250 packets are sent and 250 reach the NDISTest header layer (all accepted), but the payload layer accepts 0 and corrupts 250. The protocol driver hits 250 breakpoints at ndistestpacket.cpp:400, "Corruption detected in the NetBuffer received", always with byte offset 0x14 within the MDL and actual byte value 0x81. The expected value changes per run and equals the first byte of the packet payload (the seed). The same signature appears in MultiCast Address (5,500 breakpoints) and PacketFilters (30,000 breakpoints in the breakpoint check; all other PacketFilters steps pass).

What we verified

  1. Packet captures (pktmon, full frames) taken at the same time on both ends of the test path. All 500 NDISTest frames (250 per direction) are byte-identical at both ends. Each is 1514 bytes, 802.3 with LLC/SNAP (AA AA 03 00 00 00, EtherType 0x8137), a 20-byte NDISTest header, then a payload incrementing from the seed byte, with no corrupted frames.
  2. The payload seed is at frame offset 42, but NDISTest reports the mismatch at offset 0x14 (20), where the frame holds 0x81, the low byte of the SNAP EtherType. The payload check therefore starts 22 bytes early, which equals the Ethernet header (14) plus the LLC/SNAP header (8).
  3. Control experiment: we replaced our adapter with the 3rd party TP-LINK USB adapter against the same Marvell NIC. The failure is identical (same breakpoint, same 0x14 / 0x81), both with a manual NDISTest run and with HLK's own ndistest.exe, for CheckConnectivity, MultiCast Address and PacketFilters.

Questions

  1. Is this a known issue in NDISTest or ndprot683 in HLK 10.1.26100.8328 on Windows 11 25H2? Is there a fixed kit or NDISTest build, and which version is required for submission?
  2. How does the payload module determine where the payload starts for 802.3 frames with LLC/SNAP, and why would it check offset 0x14? Can the full expected and actual frame contents be dumped?
  3. Are there requirements for the support adapter (for example, certified or specific NICs) that our Marvell and USB NICs may not meet?
  4. If this is a defect in the test, how should we proceed with the submission (for example, an errata or waiver process)?

Thank you,
Abhishek Naik

Windows development | Windows Driver Kit (WDK)
0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-10-14T09:08:45.6066667+00:00

    The available Microsoft material does not identify HLK/NDISTest 10.1.26100.8328 as having a confirmed erratum or name a fixed build, so install the latest HLK filters, reapply them to these results, and—if no matching erratum appears—open one HLK Support case per failing test with your cross-adapter reproducer and debugger evidence.

    What your results establish

    Your evidence strongly isolates the failure to the NDISTest receive-validation path rather than to your NetAdapterCx miniport:

    • Captured frames are identical at both endpoints.
    • NDISTest accepts every packet at its header layer but rejects every payload.
    • The reported byte is the first byte of the SNAP EtherType at frame offset 20, while the generated payload begins at frame offset 42.
    • The same deterministic result occurs with an unrelated TP-LINK adapter replacing your virtual adapter.

    That is persuasive evidence for Microsoft’s test owners, but it is not by itself an official erratum. Similar reports exist for ndprot683.sys and the same corruption diagnostic, but neither matching Q&A report currently has an accepted or recommended resolution ^1^ ^2^.

    Check for an erratum before rerunning

    Microsoft publishes an HLK filter when an HLK or OS defect incorrectly fails certification. An errata filter can convert the affected result to pass; a contingency is case-specific; autotriage only adds diagnostic information ^3^.

    On the HLK controller:

    1. Download the latest HCKFilterUpdates.cab.
    2. Extract UpdateFilters.sql.
    3. Copy it into the applicable
      %ProgramFiles(x86)%\Windows Kits\<version>\Hardware Lab Kit\Controller directory.
    4. Close every HLK Studio instance.
    5. Run UpdateFilters.exe from that directory.
    6. Reopen the project.
    7. On Results, select Apply Filters for the existing failures.

    New results receive installed filters automatically, but existing results require Apply Filters. Microsoft’s prescribed HLK failure workflow starts with current updates and filters ^4^.

    If no applicable filter appears, there is no publicly documented basis here for selecting another NDISTest build or claiming that a particular later kit fixes this signature. Use the HLK/playlist combination required by the current compatibility program rather than substituting NDISTest binaries independently ^5^.

    Payload offset and frame dumping

    Public NDISTest documentation describes CheckConnectivity as a bidirectional send/receive stress test, but does not document:

    • its LLC/SNAP payload-offset calculation;
    • why the validator uses MDL offset 0x14;
    • a switch that dumps complete expected and actual frames.

    The test can vary packet size, send IRQL, and packet-list composition ^6^.

    Do not equate MDL offset 0x14 automatically with frame offset 20. A NET_BUFFER identifies its active bytes through CurrentMdl, CurrentMdlOffset, DataOffset, and DataLength; these values must remain mutually consistent with the MDL chain ^7^ ^8^.

    At the breakpoint, preserve these for both adapters:

    • NET_BUFFER_FIRST_MDL
    • NET_BUFFER_CURRENT_MDL
    • NET_BUFFER_CURRENT_MDL_OFFSET
    • NET_BUFFER_DATA_OFFSET
    • NET_BUFFER_DATA_LENGTH
    • MDL byte count and mapped contents
    • parsed Ethernet, LLC/SNAP, NDISTest-header, and payload boundaries

    Also retain the exact expected seed and actual comparison pointer. This lets Microsoft determine whether the problem is an NDISTest parser error or inconsistent receive NET_BUFFER metadata that packet capture would not expose.

    For complete test artifacts, use Results → failed task → Additional files and collect ndistest.wtl, checkconnectivity.htm, and ndistest.htm from the Client folder ^9^.

    Support-adapter requirements

    The published LAN prerequisites require the role/topology rather than naming a certified-NIC allowlist:

    • support NIC connected directly back-to-back to the test NIC;
    • separate message NICs for controller connectivity;
    • support interface alias SupportDevice0 when explicit naming is needed;
    • message interfaces named MessageDevice;
    • unrelated Ethernet ports disabled or disconnected if they interfere with automatic selection ^10^.

    Your direct cable already satisfies the relevant connection requirement, and successful receipt of all 250 packets in both directions makes device-autodetection or basic connectivity an unlikely explanation. The public prerequisites do not establish that either the Marvell or TP-LINK adapter is unsupported merely because of its model or certification status.

    Submission and escalation

    If no errata filter applies, do not package the raw failures as though they were waived. Open separate HLK Support issues for CheckConnectivity, MultiCast Address, and PacketFilters. Microsoft requests the exact test name, .hlkx package, relevant dumps/logs, and all additional debugging evidence ^11^.

    Attach:

    1. Both pktmon captures and a byte-offset annotation.
    2. The TP-LINK control run.
    3. All WTL/HTML/additional files.
    4. Breakpoint details and NET_BUFFER/MDL metadata.
    5. Exact OS, HLK, NDISTest, and ndprot683.sys versions.
    6. A minimal table showing expected payload start 42, observed comparison offset 20, and delta 22.
    7. The unmodified failing .hlkx.

    If Microsoft confirms a test defect, the normal resolution is a published errata filter or a case-specific contingency. A supplemental folder can later be added to the submission package for an errata, contingency message, or manual filter when Microsoft supplies one ^12^.


    References

    1. NDISTest ndprot683.sys validation failure. - Microsoft Q&A
    2. Windows 11 HLK NDISTest6.5: Multiple 2-Machine tests failing with ...
    3. Windows Hardware Lab Kit Filters
    4. Troubleshooting Windows HLK Test Failures
    5. Windows Hardware Lab Kit
    6. NDISTest 6.5 - [2 Machine] - CheckConnectivity
    7. NET_BUFFER structure (ndis/nbl.h)
    8. NdisAllocateNetBuffer function (ndis/nblapi.h)
    9. Troubleshooting LAN Testing | Microsoft Learn
    10. LAN Testing Prerequisites
    11. Windows HLK Support
    12. Step 8: Create a submission package
    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.