!ndiskd.netrb

The !ndiskd.netrb extension displays information about a NET_RING_BUFFER structure.

For more information about the Network Adapter WDF Class Extension (NetAdapterCx), see Network Adapter WDF Class Extension (Cx).

!ndiskd.netrb -handle <x> [-basic] [-dump] [-elementtype <str>] 

Parameters

-handle
Required. Address of a NET_RING_BUFFER.

-basic
Displays basic information.

-dump
Displays information about each element in the NET_RING_BUFFER.

-elementtype
A string for the data type to use when referring to a ring buffer element.

DLL

Ndiskd.dll

Examples

Note  See Summary of Objects to see a diagram explaining the relationship of the NET_RING_BUFFER object with other objects in the NetAdapterCx.

To obtain a handle for a NET_RING_BUFFER, follow these steps:

  1. Run the !ndiskd.netadapter extension.
  2. Click on the handle for a NetAdapter that has a NetAdapterCx driver installed.
  3. Click the "More Information" link to the right of the NetAdapter's NETADAPTER object to run the !ndiskd.cxadapter extension.
  4. Enter the !ndiskd.cxadapter command with the -datapath parameter to see that NETADAPTER's datapath queues.
  5. Click on the handle for one of the datapath queues.

For details on Steps 1-4 of this procedure, see the examples on the !ndiskd.cxadapter topic. For details on Step 5 of this procedure, see the examples on the !ndiskd.netqueue topic. In the following example, look for the handle for this NETTXQUEUE's ring buffer, ffffd1022d000000.

0: kd> !ndiskd.netqueue ffffd1022f512700

    NETTXQUEUE         00002efdd0aed9a8
    Ring buffer        ffffd1022d000000

    Switch to EC thread

    Event Callbacks                        Function pointer   Symbol (if available)
    EvtQueueAdvance                        fffff80034152af8   RtEthSample+2af8
    EvtQueueArmNotification                fffff80034159a94   RtEthSample+9a94
    EvtQueueCancel                         fffff800341598d8   RtEthSample+98d8

By clicking on the handle for the ring buffer or by entering the !ndiskd.netrb -handle command on the command line, you can see details for this NET_RING_BUFFER, including how many elements it contains and the address of its Begin and End indices.

0: kd> !ndiskd.netrb ffffd1022d000000

    NET_RING    ffffd1022d000000

    Number of elements 0x080
    Owned by OS        0x080
    Owned by Client    00000

    Begin Index        0x078 (ffffd1022d003c40 - NET_PACKET)
    Next Index         0x078 (ffffd1022d003c40 - NET_PACKET)
    End Index          0x078 (ffffd1022d003c40 - NET_PACKET)

    List all elements

To see this NET_RING_BUFFER's elements, either click the "List all elements" link at the bottom of its details or enter the !ndiskd.netrb -dump command on the command line. The following example has had the middle elements excised for brevity.

0: kd> !ndiskd.netrb ffffd1022d000000 -dump

    [000] ffffd1022d000040 - NET_PACKET
    [001] ffffd1022d0000c0 - NET_PACKET
    [002] ffffd1022d000140 - NET_PACKET
    [003] ffffd1022d0001c0 - NET_PACKET
    [004] ffffd1022d000240 - NET_PACKET
    [005] ffffd1022d0002c0 - NET_PACKET
    
    ...

    [07b] ffffd1022d003dc0 - NET_PACKET
    [07c] ffffd1022d003e40 - NET_PACKET
    [07d] ffffd1022d003ec0 - NET_PACKET
    [07e] ffffd1022d003f40 - NET_PACKET
    [07f] ffffd1022d003fc0 - NET_PACKET

See also

Network Driver Design Guide

Windows Vista and Later Networking Reference

Debugging the Network Stack

NDIS extensions (Ndiskd.dll)

!ndiskd.help

Network Adapter WDF Class Extension (Cx)

Summary of Objects

NET_RING_BUFFER

!ndiskd.netadapter

!ndiskd.cxadapter

!ndiskd.netqueue