NDIS_RECEIVE_THROTTLE_PARAMETERS struttura (ndis.h)
La struttura NDIS_RECEIVE_THROTTLE_PARAMETERS specifica il numero massimo di strutture NET_BUFFER_LIST che un driver miniport deve indicare in una chiamata di procedura posticipata (DPC).
Sintassi
typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
ULONG MaxNblsToIndicate;
ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;
Members
MaxNblsToIndicate
Numero massimo di strutture NET_BUFFER_LIST che un driver miniport deve includere in un'indicazione di ricezione. Se questo valore è NDIS_INDICATE_ALL_NBLS, il miniport può indicare tutte le strutture NET_BUFFER_LIST che ha.
MoreNblsPending
Valore che, quando TRUE, specifica che il driver miniport ha NET_BUFFER_LIST strutture in sospeso dopo aver elaborato il numero massimo o le strutture richieste da NDIS nel membro MaxNblsToIndicate .
Commenti
Parametri ReceiveThrottleParameters di MiniportInterruptDPC e MiniportMessageInterruptDPC Le funzioni del gestore DPC puntano a una struttura NDIS_RECEIVE_THROTTLE_PARAMETERS. Questa struttura specifica i parametri della RST (Receive Side Throttle) in NDIS 6.20 e versioni successive.
Nella voce del gestore DPC il membro MaxNblsToIndicate della struttura NDIS_RECEIVE_THROTTLE_PARAMETERS specifica il numero massimo di strutture NET_BUFFER_LIST che il driver miniport deve indicare nel DPC. Se questo valore è NDIS_INDICATE_ALL_NBLS, il driver miniport può indicare tutte le strutture NET_BUFFER_LIST presenti nelle code.
Dopo che il driver miniport elabora il numero massimo specificato di strutture NET_BUFFER_LIST, il driver miniport potrebbe avere più pacchetti nelle code di ricezione. In questo caso, il driver miniport deve impostare il membro MoreNblsPending su TRUE e non deve riattivare gli interruzioni prima che venga restituito dal DPC. Questo vale sia per gli interruzioni di tipo line-based che per i messaggi con pregiudizi.
Il driver miniport deve seguire queste linee guida quando il membro MaxNblsToIndicate è impostato su NDIS_INDICATE_ALL_NBLS:
- Un valore di NDIS_INDICATE_ALL_NBLS consente al driver miniport di determinare il numero di strutture NET_BUFFER_LIST che indica in una chiamata DPC. In questo modo il driver miniport offre le opzioni seguenti:
- Il driver miniport può indicare tutte le strutture NET_BUFFER_LIST in sospeso dalle code di ricezione.
-
Il driver miniport può limitare il numero di strutture NET_BUFFER_LIST che indica in base ai relativi euristici per evitare di spendere un periodo di tempo eccessivo all'interno di una chiamata DPC.
In particolare, il driver deve usare le sue euristiche per evitare un timeout DPC, ovvero la quantità massima di tempo che il driver può trascorrere nel proprio DPC. Al termine dell'intervallo di timeout, si verifica un controllo di bug nel sistema. A partire da Windows 7, il timeout DPC è di 10 secondi.
- Il driver miniport deve impostare MoreNblsPending su FALSE prima che venga restituito dal DPC. Il driver deve eseguire questa operazione indipendentemente dal fatto che abbia strutture NET_BUFFER_LIST in sospeso nelle code di ricezione che non sono state indicate.
Se il driver miniport usa più messaggi MSI per distinguere origini di interruzioni diverse, deve ignorare il membro ReceiveThrottleParameters per i messaggi MSI che non sono associati alle indicazioni di ricezione. Per ricevere messaggi di interruzione, il driver miniport deve indicare alla maggior parte delle strutture MaxNblsToIndicate NET_BUFFER_LIST.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.20 e versioni successive. |
Intestazione | ndis.h (includere Ndis.h) |