NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION Rückruffunktion (ndkpi.h)
Die NdkControlCqInterruptModeration (NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION) -Funktionssteuerelemente unterbrechen die Moderation in einer NDK-Vervollständigungswarteschlange (CQ).
Weitere Informationen zur Unterbrechungsmoderation finden Sie unter Interrupt Moderation.
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 verzögern kann, um die Host-CPU nach Abschluss des CQ zu unterbrechen, erfüllt eine Armanforderung. Wenn ModerationInterval null ist, führt der Anbieter keine Unterbrechungsmoderation für das CQ aus, unabhängig vom Wert des ModerationCount-Parameters. Wenn ModerationInterval MAXULONG ist, steuert die ModerationCount die Unterbrechungsmoderation im CQ. Wenn ModerationInterval größer als das vom Adapter unterstützte maximale Moderationsintervall ist oder die Timer granularität des Adapters größer ist, kann der Anbieter den Intervallwert aufrunden.
[in] ModerationCount
Die maximale Anzahl der Fertigstellungen, die ein Anbieter im CQ sammeln kann, bevor die Host-CPU unterbrochen wird, um eine CQ-Armanforderung zu erfüllen. Wenn ModerationInterval null oder eins ist, führt der Anbieter unabhängig vom Wert des ModerationInterval Parameter keine Unterbrechungsmoderation für das CQ durch. Wenn ModerationCount MAXULONG oder größer als die Tiefe des CQ ist, steuert ModerationInterval die Interruptmoderation im CQ.
Rückgabewert
Die NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION-Funktion gibt einen der folgenden NTSTATUS-Codes zurück.
Rückgabecode | Beschreibung |
---|---|
|
Der Vorgang wurde erfolgreich abgeschlossen. |
|
Fehler bei der Anforderung aufgrund unzureichender Ressourcen. |
|
Der NDK-Anbieter unterstützt das CQ-Moderationssteuerelement nicht mit NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION. Ein Anbieter, der das NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORT Flag im AdapterFlags- Element der NDK_ADAPTER_INFO Struktur festlegt, darf diesen Statuscode nicht zurückgeben. |
|
Der NDK-Consumer hat einen MAXULONG für ModerationInterval und MAXULONG oder einen Wert bereitgestellt, der größer als die Anzahl der Abschlusseinträge ist, die das CQ für ModerationCount- gleichzeitig enthalten kann. |
|
Fehler. |
Bemerkungen
NDK-Verbraucher dürfen keine NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION aufrufen, es sei denn, der Anbieter legt das NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED Flag im AdapterFlags Mitglied der NDK_ADAPTER_INFO Struktur fest. Für einen 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 ein CQ ist keine Unterbrechungsmoderation. Der NDK-Consumer darf diese Funktion nicht gleichzeitig auf demselben CQ aufrufen.
Der NDK-Consumer darf keinen MAXULONG für ModerationInterval und MAXULONG oder einen Wert angeben, der größer als die Anzahl der Abschlusseinträge ist, die das CQ (CqDepth) für ModerationCount gleichzeitig enthalten kann. Andernfalls gibt der Anbieter STATUS_INVALID_PARAMETER_MIX zurück.
Der NDK-Verbraucher kann NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION mehrmals aufrufen. Möglicherweise wendet ein Anbieter die Einstellungen nicht an, bevor sie von dieser Funktion zurückgegeben werden. Der Anbieter darf die Anwendung der Einstellungen jedoch nicht auf unbestimmte Zeit verzögern. Wenn der Verbraucher 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 der Anbieter muss die Anwendung der vorherigen Einstellungen abbrechen und die neuen Einstellungen anwenden, oder warten, bis die Anwendung früherer Einstellungen abgeschlossen ist und die neuen Einstellungen angewendet werden.
Anbieter, die die Unterstützung der 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 fehlschlagen, z. B. aufgrund eines Speicherzuweisungsfehlers. In diesem Fall muss der Anbieter STATUS_INSUFFICIENT_RESOURCES zurückgeben. Anbieter können STATUS_PENDING von dieser Funktion nicht zurückgeben. Anbieter, die keine Unterstützung für diese Funktion 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 |
---|---|
mindestens unterstützte Client- | Keine unterstützt,in NDIS 6.30 und höher unterstützt. |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Fenster |
Header- | ndkpi.h (include Ndkpi.h) |
IRQL- | <=DISPATCH_LEVEL |