NET_RING_ITERATOR structure

Warning

Some information in this topic relates to prereleased product, which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

NetAdapterCx is preview only in Windows 10, version 1903.

A NET_RING_ITERATOR is a small structure that contains references to the post and drain indices of a NET_RING to which it belongs.

Syntax

typedef struct _NET_RING_ITERATOR {
  NET_RING_COLLECTION const *Rings;
  UINT32                    *IndexToSet;
  UINT32                    Index;
  UINT32                    End;
} NET_RING_ITERATOR;

Members

Rings

A NET_RING_COLLECTION structure that describes the NET_RING structure to which this net ring iterator belongs.

IndexToSet

The beginning of the range of elements that are covered by this iterator. This index does not move until after the client driver has finished processing elements in the ring and sets the iterator, which advances IndexToSet to Index.

Client drivers call NetPacketIteratorSet to set a packet iterator, or NetFragmentIteratorSet to set a fragment iterator.

Index

The iterator's current index in the NET_RING. This index is advanced as the client driver processes elements in the ring.

Client drivers typically call NetPacketIteratorAdvance to advance a packet iterator, or NetFragmentIteratorAdvance to advance a fragment iterator.

End

The end of the range of elements in the net ring that is covered by this iterator.

Remarks

NetAdapterCx client drivers should not use the NET_RING_ITERATOR structure directly. Instead, they should either use a *NET_RING_PACKET_ITERATOR for a packet ring or a NET_RING_FRAGMENT_ITERATOR for a fragment ring.

Requirements

   
Minimum KMDF version 1.29
Header netringiterator.h

See Also

Net rings and net ring iterators

*NET_RING_PACKET_ITERATOR

NET_RING_FRAGMENT_ITERATOR