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結構擱置中。
備註
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 訊息來區分不同的中斷來源,它應該忽略未與接收指示相關聯之 MSI 訊息的 ReceiveThrottleParameters 成員。 對於接收中斷訊息,迷你埠驅動程序應該會指出最多 MaxNblsToIndicate NET_BUFFER_LIST 結構。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.20 和更新版本支援。 |
標頭 | ndis.h (包含 Ndis.h) |