estructura NDIS_RECEIVE_QUEUE_PARAMETERS (ntddndis.h)

La estructura NDIS_RECEIVE_QUEUE_PARAMETERS contiene los parámetros de configuración de una cola de recepción.

Sintaxis

typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER          Header;
  ULONG                       Flags;
  NDIS_RECEIVE_QUEUE_TYPE     QueueType;
  NDIS_RECEIVE_QUEUE_ID       QueueId;
  NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
  GROUP_AFFINITY              ProcessorAffinity;
  ULONG                       NumSuggestedReceiveBuffers;
  ULONG                       MSIXTableEntry;
  ULONG                       LookaheadSize;
  NDIS_VM_NAME                VmName;
  NDIS_QUEUE_NAME             QueueName;
  ULONG                       PortId;
  ULONG                       InterruptCoalescingDomainId;
  NDIS_QOS_SQ_ID              QosSqId;
} NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;

Miembros

Header

Tipo, revisión y tamaño de la estructura NDIS_RECEIVE_QUEUE_PARAMETERS . Este miembro tiene formato de estructura NDIS_OBJECT_HEADER .

El controlador de minipuerto debe establecer el miembro Type de Header en NDIS_OBJECT_TYPE_DEFAULT. Para especificar la versión de la estructura de NDIS_NIC_SWITCH_CAPABILITIES , el controlador debe establecer el miembro Revision de Header en uno de los valores siguientes:

NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3

Se agregó el campo QosSqId para NDIS 6.50.

Establezca el miembro Size en NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3.

NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2

Se han agregado miembros adicionales para NDIS 6.30.

Establezca el miembro Size en NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2.

NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1

Versión original de NDIS 6.20.

Establezca el miembro Size en NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1.

Flags

Valor ULONG que contiene un OR bit a bit de las marcas siguientes. Las marcas siguientes son válidas para el OID de OID_RECEIVE_FILTER_ALLOCATE_QUEUE y el OID_RECEIVE_FILTER_QUEUE_PARAMETERS establecido y el OID de consulta:

NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION

El controlador de minipuerto no debe mezclar paquetes de red para otras colas de recepción con los paquetes de esta cola en una sola llamada a la función NdisMIndicateReceiveNetBufferLists .

NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED

El adaptador de red debe dividir un paquete recibido en un desplazamiento igual o mayor que el tamaño de lookahead solicitado y usar DMA para transferir los datos de lookahead y los datos posteriores a la búsqueda a segmentos de memoria compartida independientes.

Nota

A partir de NDIS 6.30, ya no se admite la división de datos de paquetes en búferes de lookahead independientes. Los controladores miniport que admiten NDIS 6.30 o versiones posteriores deben omitir esta marca.

Las marcas siguientes son válidas para el OID_RECEIVE_FILTER_QUEUE_PARAMETERS establecer OID y NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS indicación de estado:

NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED

La configuración del miembro Flags ha cambiado.

NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED

La configuración del miembro ProcessorAffinity ha cambiado.

NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED

La configuración del miembro NumSuggestedReceiveBuffers ha cambiado.

NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED

La configuración del miembro QueueName ha cambiado.

Nota

Un controlador determina qué parámetros de cola de recepción se han cambiado ejecutando una operación AND bit a bit entre la definición de NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK y el valor del miembro Flags . Si el resultado es cero, no se han cambiado los parámetros de la cola de recepción.

QueueType

Valor de enumeración NDIS_RECEIVE_QUEUE_TYPE que especifica el tipo de la cola de recepción.

QueueId

Valor de tipo NDIS_RECEIVE_QUEUE_ID que contiene un identificador de cola de recepción. Este identificador es un valor entero entre cero y el número de colas que admite el adaptador de red. Un valor de NDIS_DEFAULT_RECEIVE_QUEUE_ID especifica la cola de recepción predeterminada.

QueueGroupId

Este miembro está reservado para NDIS.

ProcessorAffinity

Valor GROUP_AFFINITY que especifica el número de grupo y un mapa de bits de las CPU a las que se puede asociar esta cola. Se debe especificar al menos un procesador. Por lo tanto, el valor no debe ser cero.

NumSuggestedReceiveBuffers

Valor de ULONG que contiene un valor sugerido para el número de búferes de recepción que el adaptador de red debe usar para admitir la cola. Este número se puede ajustar en relación con los recursos que el controlador de miniporte tiene disponible o en proporción al número que usa el adaptador de red para otras colas. Por ejemplo, el número real de búferes de recepción puede ser doble o mitad de este valor sugerido.

MSIXTableEntry

Este miembro está reservado para NDIS.

LookaheadSize

Valor de ULONG para el tamaño, en bytes, del requisito de tamaño de lookahead para esta cola. Un adaptador de red que admite lookahead en las colas de máquina virtual divide un paquete recibido en un desplazamiento igual o mayor que el tamaño de lookahead solicitado y usa DMA para transferir los datos de lookahead y los datos posteriores al lookahead a segmentos de memoria compartidos independientes. Si LookaheadSize es cero, el controlador de minipuerto no debe dividir el paquete.

LookaheadSize es válido cuando NDIS establece la marca de NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED en el miembro Flags . Es decir, el controlador de minipuerto debe dividir el paquete en el tamaño de vista anticipada especificado si también se establece la marca. Si la marca está desactivada, un valor distinto de cero para LookaheadSize no es válido.

Nota

A partir de NDIS 6.30, ya no se admite la división de datos de paquetes en búferes de lookahead independientes. El valor de este miembro debe ser cero.

VmName

Valor NDIS_VM_NAME que contiene la descripción de la máquina virtual que los usuarios leen.

QueueName

Valor de NDIS_QUEUE_NAME que contiene la descripción de la cola que los usuarios leen.

PortId

Valor de ULONG que contiene el identificador único de un puerto en el conmutador extensible de Hyper-V al que está conectada la cola de máquinas virtuales.

InterruptCoalescingDomainId

Este miembro está reservado para NDIS.

QosSqId

Asocia una cola de máquinas virtuales (VMQ) a una cola de Scheduler (SQ). Establezca este campo en cero para ninguna asociación DE SQ. Para obtener más información sobre NDIS_QOS_SQ_ID, consulte OID_QOS_OFFLOAD_CREATE_SQ.

No se requiere compatibilidad con calidad de servicio de hardware (QoS) para VMQ heredado. El controlador de minipuerto puede devolver NDIS_STATUS_NOT_SUPPORTED si QosSqId no es cero.

Comentarios

La estructura NDIS_RECEIVE_QUEUE_PARAMETERS se usa en el OID de OID_RECEIVE_FILTER_ALLOCATE_QUEUE y el OID de OID_RECEIVE_FILTER_QUEUE_PARAMETERS .

En NDIS 6.30, la estructura NDIS_RECEIVE_QUEUE_PARAMETERS también se usa en NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS indicaciones de estado.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.20 y versiones posteriores.
Servidor mínimo compatible Windows Server 2022
Encabezado ntddndis.h (include Ndis.h)

Consulte también

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_TYPE

NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS

NdisMIndicateReceiveNetBufferLists

OID_RECEIVE_FILTER_ALLOCATE_QUEUE

OID_RECEIVE_FILTER_QUEUE_PARAMETERS