共用方式為


NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION回呼函式 (ndkpi.h)

NdkControlCqInterruptModeration (NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION) 函式會控制 NDK 完成佇列上的中斷仲裁, (CQ) 。

如需中斷仲裁的詳細資訊,請參閱 中斷仲裁

語法

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION NdkFnControlCqInterruptModeration;

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

參數

[in] pNdkCq

NDK 完成佇列物件的指標, (NDK_CQ) 。

[in] ModerationInterval

提供者可以在進入 CQ 完成之後延遲中斷主機 CPU 的最大毫秒數滿足 arm 要求。 如果 ModerationInterval 為零,則提供者不會在 CQ 上執行中斷仲裁,而不論 ModerationCount 參數的值為何。 如果ModerationInterval是 MAXULONG,ModerationCount 會控制 CQ 上的中斷仲裁。 如果 ModerationInterval 大於適配卡支援的最大仲裁間隔,或適配卡的定時器粒度較大,提供者可以進位間隔值。

[in] ModerationCount

提供者在中斷主機 CPU 以滿足 CQ arm 要求之前,可以在 CQ 中累積的最大完成次數。 如果 ModerationInterval 為零或一,則提供者不會在 CQ 上執行中斷仲裁,而不論 ModerationInterval 參數的值為何。 如果 ModerationCount 是 MAXULONG或大於 CQ 的深度, ModerationInterval 會控制 CQ 上的中斷仲裁。

傳回值

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION函式會傳回下列其中一個NTSTATUS代碼。

傳回碼 Description
STATUS_SUCCESS
作業已成功完成。
STATUS_INSUFFICIENT_RESOURCES
要求因資源不足而失敗。
STATUS_NOT_SUPPORTED
NDK 提供者不支援 使用 NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION 的 CQ 中斷仲裁控件。 在NDK_ADAPTER_INFO結構的AdapterFlags成員中設定NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORT旗標的提供者不得傳回此狀態代碼。
STATUS_INVALID_PARAMETER_MIX
NDK 取用者為 ModerationInterval 和 MAXULONG提供 MAXULONG,或大於 CQ 可以同時保留 ModerationCount 的完成項目數目的值。
其他狀態代碼
發生錯誤。

備註

除非提供者在NDK_ADAPTER_INFO結構的 AdapterFlags 成員中設定NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED旗標,否則 NDK 取用者不得呼叫NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION。 對於設定NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED旗標的提供者,NDK 取用者可以在 CQ 建立之後的任何時間點呼叫此函式。 CQ 的預設行為不會中斷仲裁。 NDK 取用者不得同時在相同的 CQ 上呼叫此函式。

NDK 取用者不得為ModerationInterval和 MAXULONG 指定 MAXULONG,或大於 CQ 可以同時保留ModerationCount (CqDepth) 的完成項目數目。 否則,提供者會傳回STATUS_INVALID_PARAMETER_MIX。

NDK 取用者可以多次呼叫 NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION 。 提供者可能不會在從此函式傳回之前套用設定。 不過,提供者不得無限期延遲設定的應用程式。 如果取用者發出另一個呼叫此函式,但提供者尚未從先前的函式調用套用設定,提供者必須儘快生效最近提供的設定。 也就是說,提供者必須取消先前設定的應用程式並套用新的設定,或等候先前設定的應用程式完成並套用新的設定。

使用 NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED 旗標表示支援中斷仲裁的提供者,通常必須順利處理 NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION ,並傳回STATUS_SUCCESS。 不過,提供者可能會因為資源不足而導致要求失敗,例如記憶體配置失敗。 在此情況下,提供者必須傳回STATUS_INSUFFICIENT_RESOURCES。 提供者無法從此函式傳回STATUS_PENDING。 使用 NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED 旗標不支援此函式的提供者,仍然必須實作此函式。 在此情況下,此函式必須傳回STATUS_NOT_SUPPORTED。

規格需求

需求
最低支援的用戶端 NDIS 6.30 和更新版本中不支援,不支援。
最低支援的伺服器 Windows Server 2012
目標平台 Windows
標頭 ndkpi.h (包含 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另請參閱

NDK_ADAPTER_INFO

NDK_CQ

NDK_CQ_DISPATCH