非 RSS 接收處理
不支援 RSS 處理接收處理的迷你埠驅動程式,如本主題所述。
下圖說明非 RSS 接收處理。
在圖中,虛線路徑代表傳送和接收處理的替代路徑。 因為系統會控制調整規模,所以處理不會一律發生在提供最佳效能的 CPU 上。 只有在連續中斷時,才會在相同的 CPU 上處理連線。
下列程式會針對每個非 RSS 中斷週期重複執行:
NIC 會使用 DMA 填入已接收的資料來填滿緩衝區,並中斷系統。
迷你埠驅動程式在初始化期間配置了共用記憶體中的接收緩衝區。
NIC 可以隨時在此中斷週期中繼續填滿其他接收緩衝區。 不過,在迷你埠驅動程式啟用中斷之前,NIC 不會再次中斷。
系統在一個中斷週期中處理的接收緩衝區可以與許多不同的網路連線相關聯。
NDIS 會在系統決定的 CPU 上呼叫 miniport 驅動程式的 MiniportInterrupt 函式 (ISR) 。
在理想情況下,ISR 應該移至最忙碌的 CPU。 不過,在某些系統中,系統會將 ISR 指派給可用的 CPU 或與 NIC 相關聯的 CPU。
ISR 會停用中斷,並要求 NDIS 將延遲的程式調用排入佇列, (DPC) 來處理接收的資料。
NDIS 會呼叫 MiniportInterruptDPC 函式, (目前 CPU 上的 DPC) 。
DPC 建置會接收所有已接收緩衝區的描述項,並指出驅動程式堆疊上的資料。 如需詳細資訊,請參閱 接收網路資料。
有許多不同連線的緩衝區,而且可能有許多處理完成。 與後續中斷週期相關聯的接收資料可以在其他 CPU 上處理。 指定網路連線的傳送處理也可以在不同的 CPU 上執行。
DPC 會啟用中斷。 此中斷週期已完成,而且程式會再次啟動。