共用方式為


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 成員中 NDIS 所要求的最大數目或結構之後,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 處理程式的專案上,MaxNblsToIndicate NDIS_RECEIVE_THROTTLE_PARAMETERS 結構的成員會指定迷你埠驅動程式應該在 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