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