estructura NDIS_PD_QUEUE_PARAMETERS (ndis.h)

Esta estructura se usa para contener parámetros para una cola de transmisión o recepción al llamar a cualquiera de las rutinas de cola.

Sintaxis

typedef struct _NDIS_PD_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER     Header;
  ULONG                  Flags;
  NDIS_PD_QUEUE_TYPE     QueueType;
  ULONG                  QueueSize;
  ULONG                  ReceiveDataLength;
  GROUP_AFFINITY         Affinity;
  ULONG                  TrafficClassId;
  ULONG                  MaximumPartialBufferCount;
  NDIS_PD_COUNTER_HANDLE CounterHandle;
} NDIS_PD_QUEUE_PARAMETERS;

Miembros

Header

Estructura NDIS_OBJECT_HEADER de la estructura NDIS_PD_CONFIG . Establezca los miembros de esta estructura de la siguiente manera:

  • Tipo = NDIS_OBJECT_TYPE_DEFAULT
  • Revisión = NDIS_PD_QUEUE_PARAMETERS_REVISION_1
  • Tamaño = NDIS_SIZEOF_PD_QUEUE_PARAMETERS_REVISION_1

Flags

Este miembro está reservado y el proveedor debe establecerlo en 0.

QueueType

Tipo de la cola. Para obtener más información, consulte NDIS_PD_QUEUE_TYPE.

QueueSize

La cantidad máxima de estructuras de PD_BUFFER que esta cola puede contener y siempre es igual a un número de la forma (2^k)-1 (63, 127, 255, 511, 1023, etc.). Esto se presta a una aritmética de índices circulares eficiente.

ReceiveDataLength

Longitud mínima PD_BUFFER datos.

Affinity

La afinidad del procesador es una sugerencia al proveedor para la optimización del rendimiento. La plataforma procesará principalmente la cola en procesadores indicados por esta máscara. El proveedor debe establecer este valor en el núcleo del procesador derivado de la tabla de direccionamiento indirecto configurada a partir de OID_GEN_RECEIVE_SCALE_PARAMETERS

TrafficClassId

MaximumPartialBufferCount

En el caso de las colas de transmisión, este es el número máximo de estructuras de PD_BUFFER parciales que el cliente puede encadenar para formar un único paquete L2. Este valor debe ser igual al valor MaximumTxPartialBufferCount de la estructura NDIS_PD_CAPABILITIES .

En el caso de las colas de recepción, este es el número máximo de estructuras parciales de PD_BUFFER que el proveedor puede encadenar para formar un único paquete L2 grande con RSC. Debe ser menor o igual que el valor MaximumRxPartialBufferCount de la estructura NDIS_PD_CAPABILITIES .

Nota El cliente nunca publica estructuras PD_BUFFER con la marca parcial en la cola de recepción. El cliente siempre es necesario para publicar PD_BUFFER estructuras con al menos espacio de tamaño MTU, empezando por la posición inicial de los datos. El proveedor realiza el encadenamiento solo en el caso de RSC. Es posible que algunos proveedores no puedan admitir el encadenamiento RSC, estos proveedores establecen un valor de 1 en el miembro MaximumRxPartialBufferCount de la estructura NDIS_PD_CAPABILITIES .
 

CounterHandle

Se trata de un identificador del contador de cola de transmisión para las colas de transmisión y un contador de cola de recepción para las colas de recepción. Durante la creación de la cola, un cliente puede proporcionar opcionalmente un identificador de contador. En este caso y en función del tipo de cola, el proveedor debe actualizar los valores de contador a medida que se produce la actividad en la cola. El cliente es responsable de cerrar el identificador de contador solo después de cerrar la cola.

En el caso de las colas que el cliente no crea directamente, como las colas de recepción RSS obtenidas mediante la rutina NdisPDOnRssReceiveQueues, el proveedor siempre debe tener un identificador de contador asociado con la cola. Es decir, para un conjunto determinado de colas de recepción RSS, el proveedor debe tener un contador de cola de recepción dedicado para cada cola de recepción.

Comentarios

Esta estructura debe alinearse en un límite de 8 bytes.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible Windows Server 2016
Encabezado ndis.h

Consulte también

NDIS_PD_QUEUE_TYPE

NdisPDAllocateQueue