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 封包分割。 |
Receive Segment Coalescing (RSC) | 卸載 IPv4 和 IPv6 接收之 TCP 區段序列的聯合。 |
如需設定卸載和更新卸載的詳細資訊,請參閱對應的卸載參考頁面,當 TCP/IP 堆疊或過度通訊協定驅動程式要求變更 net 配接器的作用中功能時。