NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION Rückruffunktion (ndkpi.h)

Die Funktion NdkControlCqInterruptModeration (NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION) steuert die Unterbrechungsmoderation für eine NDK-Vervollständigungswarteschlange (CQ).

Weitere Informationen zur Interruptmoderation finden Sie unter InterruptModeration.

Syntax

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION NdkFnControlCqInterruptModeration;

NTSTATUS NdkFnControlCqInterruptModeration(
  [in] NDK_CQ *pNdkCq,
  [in] ULONG ModerationInterval,
  [in] ULONG ModerationCount
)
{...}

Parameter

[in] pNdkCq

Ein Zeiger auf ein NDK-Vervollständigungswarteschlangenobjekt (NDK_CQ).

[in] ModerationInterval

Die maximale Anzahl von Mikrosekunden, die ein Anbieter die Unterbrechung der Host-CPU nach einer im CQ platzierten Vervollständigung zurückstellen kann, erfüllt eine Armanforderung. Wenn ModerationInterval 0 ist, führt der Anbieter keine Unterbrechungsmoderation für den CQ aus, unabhängig vom Wert des ModerationCount-Parameters . Wenn ModerationInterval MAXULONG ist, steuert ModerationCount die Interruptmoderation für den CQ. Wenn ModerationInterval größer als das vom Adapter unterstützte maximale Moderationsintervall ist oder die Timergranularität des Adapters größer ist, kann der Anbieter den Intervallwert abrunden.

[in] ModerationCount

Die maximale Anzahl von Vervollständigungen, die ein Anbieter im CQ akkumulieren kann, bevor die Host-CPU unterbrochen wird, um eine CQ-Armanforderung zu erfüllen. Wenn ModerationInterval null oder 1 ist, führt der Anbieter keine Unterbrechungsmoderation für den CQ aus, unabhängig vom Wert des ModerationInterval-Parameters . Wenn ModerationCount MAXULONG oder größer als die Tiefe des CQ ist, steuert ModerationInterval die Interruptmoderation für das CQ.

Rückgabewert

Die NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_INSUFFICIENT_RESOURCES
Fehler bei der Anforderung aufgrund unzureichender Ressourcen.
STATUS_NOT_SUPPORTED
Der NDK-Anbieter unterstützt keine CQ-Unterbrechungsmoderationssteuerung mit NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION. Ein Anbieter, der das NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORT-Flag im AdapterFlags-Member der NDK_ADAPTER_INFO-Struktur festlegt, darf diesen status Code nicht zurückgeben.
STATUS_INVALID_PARAMETER_MIX
Der NDK-Consumer hat einen MAXULONG für ModerationInterval und MAXULONG oder einen Wert bereitgestellt, der größer als die Anzahl der Vervollständigungseinträge ist, die der CQ gleichzeitig für ModerationCount enthalten kann.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

NDK-Consumer dürfen NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION nicht aufrufen, es sei denn, der Anbieter legt das NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED-Flag im AdapterFlags-Member der NDK_ADAPTER_INFO-Struktur fest. Bei einem Anbieter, der das NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED-Flag festlegt, kann der NDK-Consumer diese Funktion jederzeit aufrufen, nachdem ein CQ erstellt wurde. Das Standardverhalten für einen CQ ist keine Unterbrechungsmoderation. Der NDK-Consumer darf diese Funktion nicht gleichzeitig für dieselbe CQ aufrufen.

Der NDK-Consumer darf keinen MAXULONG für ModerationInterval und MAXULONG oder einen Wert angeben, der größer als die Anzahl der Vervollständigungseinträge ist, die der CQ (CqDepth) für ModerationCount gleichzeitig enthalten kann. Andernfalls gibt der Anbieter STATUS_INVALID_PARAMETER_MIX zurück.

Der NDK-Consumer kann NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION mehrmals aufrufen. Möglicherweise wendet ein Anbieter die Einstellungen nicht an, bevor er von dieser Funktion zurückgibt. Der Anbieter darf die Anwendung der Einstellungen jedoch nicht auf unbestimmte Zeit verzögern. Wenn der Consumer einen weiteren Aufruf dieser Funktion ausgibt, während der Anbieter die Einstellungen aus einem vorherigen Aufruf der Funktion noch nicht angewendet hat, muss der Anbieter die zuletzt bereitgestellten Einstellungen so schnell wie möglich wirksam machen. Das heißt, entweder muss der Anbieter die Anwendung der vorherigen Einstellungen abbrechen und die neuen Einstellungen anwenden, oder warten, bis die Anwendung der vorherigen Einstellungen abgeschlossen und die neuen Einstellungen angewendet wird.

Anbieter, die die Unterstützung für die Unterbrechungsmoderation mit dem NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED-Flag angeben, müssen normalerweise NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION erfolgreich verarbeiten und STATUS_SUCCESS zurückgeben. Ein Anbieter kann die Anforderung jedoch aufgrund eines Ressourcenmangels, z. B. eines Fehlers bei der Speicherzuordnung, fehlschlagen. In diesem Fall muss der Anbieter STATUS_INSUFFICIENT_RESOURCES zurückgeben. Anbieter können von dieser Funktion keine STATUS_PENDING zurückgeben. Anbieter, die die Unterstützung für diese Funktion nicht mit dem NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED-Flag angeben, müssen diese Funktion weiterhin implementieren. In diesem Fall muss diese Funktion STATUS_NOT_SUPPORTED zurückgeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Keine unterstützt, wird in NDIS 6.30 und höher unterstützt.
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Windows
Kopfzeile ndkpi.h (include Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

NDK_ADAPTER_INFO

NDK_CQ

NDK_CQ_DISPATCH