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_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS
NdisMIndicateReceiveNetBufferLists