共用方式為


NDIS_RECEIVE_THROTTLE_PARAMETERS 結構 (ndis.h)

NDIS_RECEIVE_THROTTLE_PARAMETERS 結構會指定迷你埠驅動程式應該在延遲過程調用中指出 (DPC) 的最大 NET_BUFFER_LIST 結構數目。

語法

typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
  ULONG MaxNblsToIndicate;
  ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;

成員

MaxNblsToIndicate

迷你埠驅動程式應該包含在接收指示中的 NET_BUFFER_LIST 結構數目上限。 如果此值是NDIS_INDICATE_ALL_NBLS,迷你埠可以指出其擁有的所有NET_BUFFER_LIST結構。

MoreNblsPending

值為TRUE時,指定迷你埠驅動程序在處理 MaxNblsToIndicate 成員中要求的最大數目或結構之後,NET_BUFFER_LIST結構擱置中。

注意 如果 NDIS 將 MaxNblsToIndicate 成員設定為 NDIS_INDICATE_ALL_NBLS,迷你埠驅動程式應該先將 MoreNblsPending 設定為 FALSE ,再從 DPC 傳回。
 

備註

MiniportInterruptDPC 和 的 ReceiveThrottleParameters 參數 MiniportMessageInterruptDPC DPC 處理程式函式指向NDIS_RECEIVE_THROTTLE_PARAMETERS結構。 此結構會指定 NDIS 6.20 和更新版本中接收 端節流 (RST) 的參數。

在 DPC 處理程式的專案上,NDIS_RECEIVE_THROTTLE_PARAMETERS 結構的 MaxNblsToIndicate 成員會指定迷你埠驅動程式應該在 DPC 中指出 的最大NET_BUFFER_LIST 結構數目。 如果此值是NDIS_INDICATE_ALL_NBLS,迷你埠驅動程式可以指出其佇列中具有的所有NET_BUFFER_LIST結構。

在迷你埠驅動程序處理指定的NET_BUFFER_LIST結構數目上限之後,迷你埠驅動程式在其接收佇列中可能會有更多封包。 在此情況下,迷你埠驅動程序應該將 MoreNblsPending 成員設定為 TRUE ,而且不應該在從 DPC 傳回之前重新啟用中斷。 這適用於行型和訊息偏差中斷。

MaxNblsToIndicate 成員設定為 NDIS_INDICATE_ALL_NBLS 時,迷你埠驅動程式應遵循下列指導方針:

  • NDIS_INDICATE_ALL_NBLS 值可讓迷你埠驅動程序判斷它在 DPC 呼叫中指出的NET_BUFFER_LIST結構數目。 這會為迷你埠驅動程式提供下列選項:
    • 迷你埠驅動程式可以從接收佇列指出其所有擱置NET_BUFFER_LIST結構。
    • 迷你埠驅動程式可以限制其根據啟發學習法所指出的NET_BUFFER_LIST結構數目,以避免在 DPC 呼叫內花費過多的時間。

      特別是,驅動程式應該使用啟發學習法來避免 DPC 逾時,這是驅動程式可在其 DPC 中花費的最大時間量。 逾時間隔到期時,系統會在系統上發生錯誤檢查。 從 Windows 7 開始,DPC 逾時為 10 秒。

  • 迷你埠驅動程序應該先將 MoreNblsPending 設定為 FALSE ,再從 DPC 傳回。 不論驅動程式在其尚未指出的接收佇列中是否有擱置NET_BUFFER_LIST結構,驅動程式都應該這麼做。
如果迷你埠驅動程式使用以行為基礎的中斷或單一 MSI 訊息,它應該針對它擁有的所有中斷來源執行中斷處理。 如果接收佇列中有封包,它應該會指出最多 MaxNblsToIndicate NET_BUFFER_LIST 結構與 NDIS NdisMIndicateReceiveNetBufferLists 函 式。

如果迷你埠驅動程式使用多個 MSI 訊息來區分不同的中斷來源,它應該忽略未與接收指示相關聯之 MSI 訊息的 ReceiveThrottleParameters 成員。 對於接收中斷訊息,迷你埠驅動程序應該會指出最多 MaxNblsToIndicate NET_BUFFER_LIST 結構。

注意 如果迷你埠驅動程式設定 MoreNblsPending,NDIS會再次呼叫 DPC。 不過,不會定義下一個 DPC 呼叫之前經過的時間量。 此外,初始中斷服務路由 (ISR) 傳回與未定義 DPC 之間的時間量。 在迷你埠驅動程式設定 MoreNblsPending之後,它應該會在處理第一個 DPC 時處理下一個 DPC。
 

規格需求

需求
最低支援的用戶端 NDIS 6.20 和更新版本支援。
標頭 ndis.h (包含 Ndis.h)

另請參閱

MiniportInterruptDPC

MiniportMessageInterruptDPC

NET_BUFFER_LIST

NdisMIndicateReceiveNetBufferLists