共用方式為


非 RSS 接收處理

不支援 RSS 的迷你埠驅動程式將依本主題所述,進行接收處理。

下圖說明非 RSS 的接收處理程序。

顯示沒有 RSS 的發送和接收處理的圖表。

在圖中,虛線路徑代表傳送及接收處理的替代路徑。 由於系統會控制調整,因此處理並不總是發生在提供最佳效能的 CPU 上。 連線在連續中斷時偶然由同一 CPU 處理。

針對每個非 RSS 中斷循環,以下流程將重複:

  1. 這個 NIC 使用 DMA 將接收到的數據填入緩衝區,並中斷系統。

    迷你埠驅動程式在初始化期間在共用記憶體中配置接收緩衝區。

  2. NIC 可以在此中斷週期中隨時繼續填入額外的接收緩衝區。 不過,在迷你埠驅動程式啟用中斷之前,NIC 不會再次中斷。

    系統在一個中斷週期中處理的接收緩衝區可以與許多不同的網路連線相關聯。

  3. NDIS 會在系統指定的 CPU 上呼叫小型端口驅動程式的 MiniportInterrupt 函式 (ISR)。

    理想情況下,ISR 應該轉到最不繁忙的 CPU。 不過,在某些系統中,系統會將 ISR 指派給可用的 CPU 或與 NIC 相關聯的 CPU。

  4. ISR 會停用中斷,並要求 NDIS 將延遲程序呼叫(DPC)排入佇列,以處理接收到的數據。

  5. NDIS 會在目前的 CPU 上呼叫 MiniportInterruptDPC 函式 (DPC) 。

  6. DPC 會組態所有接收緩衝區的接收描述符,並將資料向上傳遞至驅動程式堆疊。 如需詳細資訊,請參閱 接收網路資料

    許多不同的連線可能有許多緩衝區,而且可能需要完成大量處理。 與後續中斷週期相關聯的接收資料可以在其他 CPU 上處理。 指定網路連線的傳送處理也可以在不同的 CPU 上執行。

  7. DPC 會啟用中斷。 此中斷週期完成,且程序會重新開始。