NDIS_RECEIVE_THROTTLE_PARAMETERS Struktur (ndis.h)
Die NDIS_RECEIVE_THROTTLE_PARAMETERS-Struktur gibt die maximale Anzahl von NET_BUFFER_LIST Strukturen an, die ein Miniporttreiber in einem Verzögerten Prozeduraufruf (DPC) angeben soll.
Syntax
typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
ULONG MaxNblsToIndicate;
ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;
Angehörige
MaxNblsToIndicate
Die maximale Anzahl von NET_BUFFER_LIST Strukturen, die ein Miniporttreiber in eine Empfangsanzeige aufnehmen sollte. Wenn dieser Wert NDIS_INDICATE_ALL_NBLS ist, kann der Miniport alle NET_BUFFER_LIST Strukturen angeben, über die er verfügt.
MoreNblsPending
Ein Wert, der bei TRUE-angibt, dass der Miniporttreiber NET_BUFFER_LIST Strukturen aufweist, die nach dem Verarbeiten der maximierten Anzahl oder Strukturen, die NDIS im MaxNblsToIndicate Member angefordert hat.
Bemerkungen
Die ReceiveThrottleParameters Parameter des MiniportInterruptDPC- und des MiniportMessageInterruptDPC DPC-Handlerfunktionen verweisen auf eine NDIS_RECEIVE_THROTTLE_PARAMETERS Struktur. Diese Struktur gibt die Parameter von Receive Side Throttle (RST) in NDIS 6.20 und höher an.
Beim Eintrag zum DPC-Handler gibt der MaxNblsToIndicate Member der NDIS_RECEIVE_THROTTLE_PARAMETERS-Struktur die maximale Anzahl von NET_BUFFER_LIST Strukturen an, die der Miniporttreiber im DPC angeben soll. Wenn dieser Wert NDIS_INDICATE_ALL_NBLS ist, kann der Miniporttreiber alle NET_BUFFER_LIST Strukturen angeben, die er in seinen Warteschlangen hat.
Nachdem der Miniporttreiber die angegebene maximale Anzahl von NET_BUFFER_LIST Strukturen verarbeitet hat, verfügt der Miniporttreiber möglicherweise über mehr Pakete in den Empfangswarteschlangen. In diesem Fall sollte der Miniporttreiber die MoreNblsPending Member auf TRUE- festlegen, und er sollte keine Unterbrechungen erneut aktivieren, bevor er vom DPC zurückgegeben wird. Dies gilt sowohl für zeilenbasierte als auch für Nachrichtenvoreingenommene Unterbrechungen.
Der Miniporttreiber sollte diese Richtlinien befolgen, wenn das MaxNblsToIndicate- Element auf NDIS_INDICATE_ALL_NBLS festgelegt ist:
- Ein Wert von NDIS_INDICATE_ALL_NBLS ermöglicht es dem Miniporttreiber, die Anzahl der NET_BUFFER_LIST Strukturen zu bestimmen, die er in einem DPC-Aufruf angibt. Dadurch erhält der Miniporttreiber die folgenden Optionen:
- Der Miniporttreiber kann alle ausstehenden NET_BUFFER_LIST Strukturen aus den Empfangswarteschlangen anzeigen.
-
Der Miniporttreiber kann die Anzahl der NET_BUFFER_LIST Strukturen einschränken, die er basierend auf seinen Heuristiken angibt, um eine übermäßige Zeit innerhalb eines DPC-Aufrufs zu vermeiden.
Insbesondere sollte der Treiber seine Heuristik verwenden, um ein DPC-Timeout zu vermeiden, was die maximale Zeit, die der Treiber in seinem DPC verbringen kann. Wenn das Timeoutintervall abläuft, tritt eine Fehlerüberprüfung auf dem System auf. Ab Windows 7 beträgt das DPC-Timeout 10 Sekunden.
- Der Miniporttreiber sollte MoreNblsPending auf FALSE- festlegen, bevor er vom DPC zurückgegeben wird. Der Treiber sollte dies unabhängig davon tun, ob er NET_BUFFER_LIST Strukturen in den Empfangswarteschlangen aussteht, die nicht angegeben wurden.
Wenn der Miniporttreiber mehrere MSI-Nachrichten verwendet, um unterschiedliche Interruptquellen zu unterscheiden, sollte der ReceiveThrottleParameters Mitglied für MSI-Nachrichten ignoriert werden, die nicht mit Empfangsanzeigen verknüpft sind. Für den Empfang von Interruptnachrichten sollte der Miniporttreiber höchstens MaxNblsToIndicate- NET_BUFFER_LIST Strukturen angeben.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.20 und höher. |
Header- | ndis.h (include Ndis.h) |