estructura NDIS_RECEIVE_THROTTLE_PARAMETERS (ndis.h)
La estructura NDIS_RECEIVE_THROTTLE_PARAMETERS especifica el número máximo de estructuras de NET_BUFFER_LIST que un controlador de miniporte debe indicar en una llamada a procedimiento diferido (DPC).
Sintaxis
typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
ULONG MaxNblsToIndicate;
ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;
Miembros
MaxNblsToIndicate
Número máximo de estructuras de NET_BUFFER_LIST que un controlador de miniporte debe incluir en una indicación de recepción. Si este valor es NDIS_INDICATE_ALL_NBLS, el miniporte puede indicar todas las estructuras NET_BUFFER_LIST que tiene.
MoreNblsPending
Valor que, cuando TRUE, especifica que el controlador de miniport tiene NET_BUFFER_LIST estructuras pendientes después de procesar el número máximo o estructuras que NDIS solicitó en el miembro MaxNblsToIndicate.
Observaciones
Los parámetros ReceiveThrottleParameters del MiniportInterruptDPC y funciones de controlador DPC de MiniportMessageInterruptDPC apuntan a una estructura de NDIS_RECEIVE_THROTTLE_PARAMETERS. Esta estructura especifica los parámetros de de limitación lateral de recepción (RST) en NDIS 6.20 y versiones posteriores.
En la entrada al controlador DPC, el miembro MaxNblsToIndicate de la estructura de NDIS_RECEIVE_THROTTLE_PARAMETERS especifica el número máximo de estructuras de NET_BUFFER_LIST que el controlador de miniport debe indicar en el DPC. Si este valor es NDIS_INDICATE_ALL_NBLS, el controlador de miniport puede indicar todas las estructuras NET_BUFFER_LIST que tiene en sus colas.
Una vez que el controlador de miniporte procesa el número máximo especificado de estructuras de NET_BUFFER_LIST, es posible que el controlador de miniporte tenga más paquetes en sus colas de recepción. En este caso, el controlador de minipuerto debe establecer el miembro MoreNblsPending en TRUE y no debe volver a habilitar las interrupciones antes de que vuelva de la DPC. Esto es cierto tanto para interrupciones basadas en línea como para las interrupciones sesgadas de mensajes.
El controlador de miniport debe seguir estas instrucciones cuando el miembro MaxNblsToIndicate esté establecido en NDIS_INDICATE_ALL_NBLS:
- Un valor de NDIS_INDICATE_ALL_NBLS permite al controlador de miniportar determinar el número de estructuras de NET_BUFFER_LIST que indica en una llamada DPC. Esto proporciona al controlador de miniporte las siguientes opciones:
- El controlador de miniport puede indicar todas sus estructuras de NET_BUFFER_LIST pendientes de sus colas de recepción.
-
El controlador de miniport puede limitar el número de estructuras de NET_BUFFER_LIST que indica en función de su heurística para evitar gastar una cantidad excesiva de tiempo dentro de una llamada DPC.
En concreto, el controlador debe usar su heurística para evitar un tiempo de espera de DPC, que es la cantidad máxima de tiempo que el controlador puede pasar en su DPC. Cuando expira el intervalo de tiempo de espera, se produce una comprobación de errores en el sistema. A partir de Windows 7, el tiempo de espera de DPC es de 10 segundos.
- El controlador de miniport debe establecer MoreNblsPending en FALSE antes de que vuelva de DPC. El controlador debe hacerlo independientemente de si tiene estructuras NET_BUFFER_LIST pendientes en sus colas de recepción que no se han indicado.
Si el controlador de miniporte usa varios mensajes MSI para diferenciar orígenes de interrupción diferentes, debe omitir el ReceiveThrottleParameters miembro para los mensajes MSI que no están asociados a indicaciones de recepción. En el caso de los mensajes de interrupción de recepción, el controlador de miniport debe indicar como máximo estructuras de NET_BUFFER_LIST MaxNblsToIndicate.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.20 y versiones posteriores. |
encabezado de | ndis.h (incluya Ndis.h) |