共用方式為


NetAdapterCx 硬體卸載簡介

為了提升其效能,Windows TCP/IP 堆疊可以將某些工作卸載至具有適當工作卸載功能的網路適配器 (NIC)。

NetAdapterCx 著重於簡化卸載組態和管理卸載功能。 客戶端驅動程式只需為其硬體卸載功能設定簡單的配置,並註冊回呼,以獲得功能變更的通知。

本指南提供 NetAdapterCx 中硬體卸除的重要概念概觀。

  • 硬體卸載功能會在初始化過程中由網路適配器硬體宣告,並且必須在呼叫 NetAdapterStart 之前宣告。
  • 驅動程式不需要檢查標準登錄關鍵詞。 NetAdapterCx 會檢查登錄關鍵詞,並在啟用作用中的卸除功能時接受它們。
  • 目前啟用的 網路適配器卸載功能是網路適配器已被程式設計來執行的功能。 這些是先前客戶端驅動程式公告的硬體功能子集。
  • TCP/IP 堆疊或上層協議驅動程式可以要求變更網路適配器的活動功能。 客戶端驅動程式會向 NetAdapterCx 註冊回呼,以被通知活動中卸載功能變更的情況。
  • 如果卸載需要封包延伸功能,當網路介面卡宣告支援硬體卸載時,它會自動註冊。

用戶端驅動程式會針對其硬體可以卸除的網路封包類型,向 NetAdapterCx 公告一組細微的功能。 例如,這可以是支援 IPv4 選項、IPv6 延伸模組、TCP 選項或這類任何組合等等。某些硬體只能在已知封包標頭位移時執行卸除,而這類硬體的用戶端驅動程式也可以指定其封包標頭位移的限制。 例如,如果硬體描述元只有 8 位可儲存第 4 層標頭位移,則用戶端驅動程式會將 Layer4HeaderOffset 設定為 255。 用戶端驅動程式功能未涵蓋的任何封包,都會在 NetAdapterCx 的軟體中卸除。

如果硬體無法處理特定組合,用戶端驅動程式就不應該在遇到這類封包時,宣告對該功能的支援,也不會自行執行軟體後援。 相反地,它應該讓 NetAdapterCx 自動執行任何必要的軟體後援。

注意

如果您希望 NetAdapterCx 為硬體不支援的卸載功能執行使用軟體後備計畫,用戶端驅動程式必須在 INF 檔案中包含該卸載功能的標準化關鍵詞。 例如,如果客戶端驅動程式無法在硬體中執行 RSC 卸除,而且需要 NetAdapterCx 才能在軟體中執行此卸除,則必須在 INF 中包含 *RscIpv4 和 *RscIpv6 關鍵詞。

NetAdapterCx 和 Windows TCP/IP 協定堆疊支援下列卸載功能:

卸除名稱 描述
總和檢查碼 將 IP 和 TCP 檢查碼的檢查和驗證轉交至 NIC。
泛型傳送卸除 (GSO) 卸除 IPv4 和 IPv6 的大型 TCP/UDP 封包分割。
接收區段聯合 (RSC) 卸除 IPv4 和 IPv6 一連串已接收 TCP 區段的聯合。

如需有關配置負載分擔和在 TCP/IP 堆疊或上層協議驅動程式請求更改網路適配器的啟用功能時更新負載分擔的更多資訊,請參閱對應的負載分擔參考頁面。