NET_BUFFER_LIST_RECEIVE_QUEUE_ID macro (ndis.h)

The NET_BUFFER_LIST_RECEIVE_QUEUE_ID macro sets or gets the identifier of a virtual machine queue (VMQ) or single root I/O virtualization (SR-IOV) receive queue identifier within the out-of-band (OOB) data of a NET_BUFFER_LIST structure.

For the SR-IOV interface, the receive queue is created on a default or nondefault virtual port (VPort). Starting with Windows Server 2012, only the default receive queue of a VPort is supported.

Syntax

void NET_BUFFER_LIST_RECEIVE_QUEUE_ID(
   _NBL
);

Parameters

_NBL

A pointer to a NET_BUFFER_LIST structure.

Return value

NET_BUFFER_LIST_RECEIVE_QUEUE_ID returns a USHORT value for a receive queue identifier.

Remarks

Any NDIS 6.20 or later driver can use NET_BUFFER_LIST_RECEIVE_QUEUE_ID to set or get the receive queue identifier from a NET_BUFFER_LIST structure. NET_BUFFER_LIST_RECEIVE_QUEUE_ID accesses the receive queue identifier from the QueueId member of the NDIS_NET_BUFFER_LIST_FILTERING_INFO structure.

Note

When a VMQ is deleted (for example, during VM live migration), it is possible for the miniport driver to receive an NBL that contains an invalid QueueId value. If this happens, the miniport should ignore the invalid queue ID and use 0 (the default queue) instead. The QueueId is found in the NetBufferListFilteringInfo portion of the NBL's OOB data, and is retrieved by using the NET_BUFFER_LIST_RECEIVE_QUEUE_ID macro.

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.20 and later.
Target Platform Universal
Header ndis.h

See also

NET_BUFFER_LIST

NDIS_NET_BUFFER_LIST_FILTERING_INFO