estructura de 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
El número máximo de estructuras de NET_BUFFER_LIST que un controlador de minipuerto debe incluir en una indicación de recepción. Si este valor es NDIS_INDICATE_ALL_NBLS, el miniporte puede indicar todas las estructuras de NET_BUFFER_LIST que tiene.
MoreNblsPending
Valor que, cuando es TRUE, especifica que el controlador de minipuerto tiene NET_BUFFER_LIST estructuras pendientes después de procesar el número máximo o estructuras que NDIS solicitó en el miembro MaxNblsToIndicate .
Comentarios
Parámetros ReceiveThrottleParameters de MiniportInterruptDPC y MiniportMessageInterruptDPC Las funciones del controlador DPC apuntan a una estructura de NDIS_RECEIVE_THROTTLE_PARAMETERS. Esta estructura especifica los parámetros 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 NDIS_RECEIVE_THROTTLE_PARAMETERS especifica el número máximo de estructuras de NET_BUFFER_LIST que el controlador de miniporte debe indicar en el DPC. Si este valor es NDIS_INDICATE_ALL_NBLS, el controlador de minipuerto 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, el controlador de miniporte podría tener 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 las interrupciones basadas en líneas como para los mensajes sesgados.
El controlador de minipuerto debe seguir estas directrices 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 minipuerto las siguientes opciones:
- El controlador de minipuerto puede indicar todas sus estructuras de NET_BUFFER_LIST pendientes de sus colas de recepción.
-
El controlador de minipuerto puede limitar el número de estructuras de NET_BUFFER_LIST que indica en función de su heurística para evitar pasar 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 minipuerto debe establecer MoreNblsPending en FALSE antes de que vuelva del 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 miembro ReceiveThrottleParameters para los mensajes MSI que no están asociados con las indicaciones de recepción. En el caso de los mensajes de interrupción de recepción, el controlador de minipuerto debe indicar como máximo estructuras de NET_BUFFER_LIST MaxNblsToIndicate .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.20 y versiones posteriores. |
Encabezado | ndis.h (incluya Ndis.h) |