NDIS_OFFLOAD_PARAMETERS 結構 (ntddndis.h)

NDIS_OFFLOAD_PARAMETERS 結構會指定目前的工作卸除組態設定,以回應OID_TCP_OFFLOAD_PARAMETERS的 OID 集合要求。

語法

typedef struct _NDIS_OFFLOAD_PARAMETERS {
  NDIS_OBJECT_HEADER                 Header;
  UCHAR                              IPv4Checksum;
  UCHAR                              TCPIPv4Checksum;
  UCHAR                              UDPIPv4Checksum;
  UCHAR                              TCPIPv6Checksum;
  UCHAR                              UDPIPv6Checksum;
  UCHAR                              LsoV1;
  UCHAR                              IPsecV1;
  UCHAR                              LsoV2IPv4;
  UCHAR                              LsoV2IPv6;
  UCHAR                              TcpConnectionIPv4;
  UCHAR                              TcpConnectionIPv6;
  ULONG                              Flags;
  UCHAR                              IPsecV2;
  UCHAR                              IPsecV2IPv4;
  struct {
    UCHAR RscIPv4;
    UCHAR RscIPv6;
  };
  struct {
    UCHAR EncapsulatedPacketTaskOffload;
    UCHAR EncapsulationTypes;
  };
  union {
    struct {
      USHORT VxlanUDPPortNumber;
    } VxlanParameters;
    ULONG Value;
  } EncapsulationProtocolParameters;
  _ENCAPSULATION_PROTOCOL_PARAMETERS _ENCAPSULATION_PROTOCOL_PARAMETERS;
  struct {
    UCHAR IPv4;
    UCHAR IPv6;
  } UdpSegmentation;
  struct {
    UCHAR Enabled;
  } UdpRsc;
} NDIS_OFFLOAD_PARAMETERS, *PNDIS_OFFLOAD_PARAMETERS;

成員

Header

NDIS_OFFLOAD_PARAMETERS 結構的NDIS_OBJECT_HEADER結構。 設定 Header 指定要NDIS_OBJECT_TYPE_DEFAULT之結構的 Type 成員。

若要指出 NDIS_OFFLOAD_PARAMETERS 結構的版本,請將 Revision 成員設定為下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_REVISION_6
6
支援 NDIS 6.89 的 UdpRsc 成員。 將 Size 成員設定為 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_6。
NDIS_OFFLOAD_PARAMETERS_REVISION_5
5
支援 IPv4 的 UdpSegmentation 和 NDIS 6.83 的 IPv6。 將 Size 成員設定為 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_5。
NDIS_OFFLOAD_PARAMETERS_REVISION_4
4
支援 NDIS 6.50 的 EncapsulationProtocolParameters 及其巢狀 VxlanParameters 。 將 Size 成員設定為 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_4。
NDIS_OFFLOAD_PARAMETERS_REVISION_3
3
支援 NDIS 6.30 的 RscIPv4RscIPv6EncapsulatedPacketTaskOffloadEncapsulationTypes 成員。 將 Size 成員設定為 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_3。
NDIS_OFFLOAD_PARAMETERS_REVISION_2
2
支援 NDIS 6.1 的 IPsecV2IPsecV2IPv4Reserved1Reserved2 成員。 將 Size 成員設定為 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2。
NDIS_OFFLOAD_PARAMETERS_REVISION_1
1
NDIS 6.0 的原始版本。 將 Size 成員設定為 NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_1。

IPv4Checksum

迷你埠適配卡的IPv4總和檢查碼設定。 如需詳細資訊,請參閱接下來的<備註>一節。

TCPIPv4Checksum

TCP 封包之迷你埠配接器的 IPv4 總和檢查碼設定。 如需詳細資訊,請參閱接下來的<備註>一節。

UDPIPv4Checksum

UDP 封包之迷你埠配接器的 IPv4 總和檢查碼設定。 如需詳細資訊,請參閱接下來的<備註>一節。

TCPIPv6Checksum

TCP 封包之迷你埠配接器的 IPv6 總和檢查碼設定。 如需詳細資訊,請參閱接下來的<備註>一節。

UDPIPv6Checksum

UDP 封包之迷你埠配接器的 IPv6 總和檢查碼設定。 如需詳細資訊,請參閱接下來的<備註>一節。

LsoV1

大型傳送卸除第 1 版 (LSOV1) 迷你埠配接器設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_LSOV1_DISABLED LSOV1 已停用。
NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED LSOV1 已啟用。

IPsecV1

因特網通訊協定安全性 (IPsec) 迷你埠適配卡的卸除設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_IPSECV1_DISABLED IPsec 卸除已停用。
NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_ENABLED 應該啟用 IPsec 卸除驗證標頭 (AH) 功能以進行傳輸和接收。
NDIS_OFFLOAD_PARAMETERS_IPSECV1_ESP_ENABLED 應該啟用傳輸和接收的 IPsec 卸載封裝安全性承載 (ESP) 功能。
NDIS_OFFLOAD_PARAMETERS_IPSECV1_AH_AND_ESP_ENABLED IPsec 卸除 AH 和 ESP 功能已啟用傳輸和接收。

LsoV2IPv4

IPv4 大型傳送卸除第 2 版 (LSOV2) 迷你埠適配卡的設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED IPv4 的 LSOV2 已停用。
NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED 已啟用 IPv4 的 LSOV2。

LsoV2IPv6

迷你埠適配卡的 IPv6 LSOV2 設定。 這些設定會指定為下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_LSOV2_DISABLED IPv6 的 LSOV2 已停用。
NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED 已啟用 IPv6 的 LSOV2。

TcpConnectionIPv4

迷你埠適配卡的IPv4連線卸除設定。 這些設定會指定為下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。

TcpConnectionIPv6

迷你埠適配卡的IPv6連線卸除設定。 這些設定會指定為下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。

Flags

一組旗標,可以與位 OR 運算結合。 將此成員設定為零或下列值:

意義
NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE
0x00000001
允許只在運行時間停用 UDP 接收區段聯合卸載 (URO) 。 使用此旗標所做的變更不會儲存至登錄。

IPsecV2

因特網通訊協定安全性 (IPsec) 卸除支援 IPv6 和 IPv4 的迷你埠適配卡第 2 版設定。 此成員會指定 IPv6 和 IPv4 支援的設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED IPsec 卸除第 2 版已停用。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED 應該啟用 IPsec 卸除第 2 版驗證標頭 (AH) 功能以進行傳輸和接收。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED 應啟用 IPsec 卸除第 2 版封裝安全性承載 (ESP) 功能以進行傳輸和接收。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED IPsec 卸除第 2 版 AH 和 ESP 功能已啟用傳輸和接收。

IPsecV2IPv4

因特網通訊協定安全性 (IPsec) 卸除支援 IPv4 且不支援 IPv6 的迷你埠適配卡第 2 版設定。 如果迷你埠驅動程序支援 IPv6,IPsecV2 成員會指定 IPv4 設定,而且不會使用此成員。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_DISABLED IPsec 卸除第 2 版已停用。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_ENABLED 應該啟用 IPsec 卸除第 2 版驗證標頭 (AH) 功能以進行傳輸和接收。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_ESP_ENABLED 應啟用 IPsec 卸除第 2 版封裝安全性承載 (ESP) 功能以進行傳輸和接收。
NDIS_OFFLOAD_PARAMETERS_IPSECV2_AH_AND_ESP_ENABLED IPsec 卸除第 2 版 AH 和 ESP 功能已啟用傳輸和接收。

RscIPv4

指出 IPv4 的接收區段聯合狀態。

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE RSC 狀態未變更。
NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED RSC 狀態已啟用。
NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED RSC 狀態已停用。

RscIPv6

指出 IPv6 的接收區段聯合狀態。

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE RSC 狀態未變更。
NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED RSC 狀態已啟用。
NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED RSC 狀態已停用。

EncapsulatedPacketTaskOffload

通訊協議驅動程式會設定 EncapsulatedPacketTaskOffload ,如下所示:

注意:針對 VMQ 和 RSS 之類的接收側載,通訊協定驅動程式會傳送其他 OID,以啟用和設定卸除參數 (例如,佇列、哈希和間接數據表) 。 EncapsulatedPacketTaskOffload 成員是這些 OID 的補充,並指示 NIC 也針對封裝封包執行這些卸除。

意義
NDIS_OFFLOAD_SET_NO_CHANGE
0
NVGRE 和 VXLAN 工作卸除狀態保持不變。
NDIS_OFFLOAD_SET_ON
1
啟用 NVGRE 和 VXLAN 工作卸除。
NDIS_OFFLOAD_SET_OFF
2
停用 NVGRE 和 VXLAN 工作卸除。

EncapsulationTypes

只有當 EncapsulatedPacketTaskOffload 設定為 NDIS_OFFLOAD_SET_ON時,此字段才有效。 如果 EncapsulatedPacketTaskOffload 成員未設定為 NDIS_OFFLOAD_SET_ON,則此成員為零。 通訊協定驅動程序必須將 EncapsulationTypes 設定為對應至所需封裝類型之旗標的位 OR。 它可以從下列項目選取旗標:

意義
NDIS_ENCAPSULATION_TYPE_GRE_MAC
0x00000001
指定 NVGRE) (GRE MAC 封裝。
NDIS_ENCAPSULATION_TYPE_VXLAN
0x00000002
指定 VXLAN 封裝。

EncapsulationProtocolParameters

聯集,描述 VXLAN 封裝的封裝參數。

如果迷你埠驅動程式將 VxlanUDPPortNumerConfigurable 公告為 TRUE,則通訊協定驅動程式可以將 EncapsulationProtocolParameters.VxlanParameters.VxlanUDPPortNumber 設定為非 0 值。 迷你埠驅動程序必須在成功 OID 之後,使用此埠號碼來比對和產生 VXLAN 畫面格,並在其功能中公告更新的值。 如果通訊協定驅動程式傳遞值為 0,迷你埠驅動程式會繼續使用從標準化關鍵詞初始化的埠號碼。

EncapsulationProtocolParameters.VxlanParameters

結構,包含 VxlanUDPPortNumber

EncapsulationProtocolParameters.VxlanParameters.VxlanUDPPortNumber

VXLAN 目的地埠值。 此值預設會設定為 IANA 指派的 4789 值。 如果迷你埠驅動程序支援 可在NDIS_OFFLOAD 結構中公告的可設定埠號碼,通訊協定驅動程式可以發出 OID_TCP_OFFLOAD_PARAMETERS OID,以在 VxlanUDPPortNumber 中以不同的值啟用NDIS_ENCAPSULATION_TYPE_VXLAN。 迷你埠驅動程序必須使用 VxlanUDPPortNumber 來判斷用來執行接收卸除的 VXLAN 封裝封包。

EncapsulationProtocolParameters.Value

如果 EncapsulationTypes 未設定為 NDIS_ENCAPSULATION_TYPE_VXLAN,則為埠值。

_ENCAPSULATION_PROTOCOL_PARAMETERS

EncapsulationProtocolParameters 的類型名稱。

UdpSegmentation

結構,描述迷你埠配接器的 UDP 分割卸除 (USO) 設定。

UdpSegmentation.IPv4

迷你埠適配卡的 IPv4 UDP 分割卸除 (USO) 設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_DISABLED USO 已停用。
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_ENABLED 已啟用 USO。

UdpSegmentation.IPv6

迷你埠適配卡的 IPv6 UDP 分割卸除 (USO) 設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE 迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_DISABLED USO 已停用。
NDIS_OFFLOAD_PARAMETERS_UDP_SEG_ENABLED 已啟用 USO。

UdpRsc

結構,描述迷你埠配接器的 UDP 接收區段聯合卸除 (URO) 設定。

UdpRsc.Enabled

迷你埠配接器的URO設定。 此設定應該是下列其中一個值:

意義
NDIS_OFFLOAD_PARAMETERS_UDP_RSC_NO_CHANGE
0
迷你埠驅動程序不應該變更目前的設定。
NDIS_OFFLOAD_PARAMETERS_UDP_RSC_DISABLED
1
URO 已停用。
NDIS_OFFLOAD_PARAMETERS_UDP_RSC_ENABLED
2
已啟用URO。

備註

為了回應 OID_TCP_OFFLOAD_PARAMETERS OID 集合要求,迷你埠驅動程式會使用 NDIS_OFFLOAD_PARAMETERS 結構中的設定來設定迷你埠適配卡的目前組態。

NDIS 會在卸除標準化關鍵詞的登錄中保留要求的設定。 當 NDIS 重新啟動迷你埠配接器時,迷你埠驅動程式會讀取卸除標準化關鍵詞,並使用它們來設定 NIC 的預設卸除組態。

若要存取總和檢查碼卸除設定,請使用 NDIS_OFFLOAD_PARAMETERS 結構的下列成員:

IPv4Checksum

TCPIPv4Checksum

UDPIPv4Checksum

TCPIPv6Checksum

UDPIPv6Checksum

上述成員可以有下列其中一個值:

NDIS_OFFLOAD_PARAMETERS_NO_CHANGE
迷你埠驅動程序不應該變更目前的設定。

NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED
成員指定的功能已停用。

NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED
成員指定的功能已啟用傳輸,並停用接收功能。

NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED
成員指定的功能已啟用接收,並停用傳輸功能。

NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED
成員指定的功能已啟用傳輸和接收。

規格需求

需求
最低支援的用戶端 Windows Vista,在 NDIS 6.0 和更新版本中支援。
最低支援的伺服器 Windows Server 2008
標頭 ntddndis.h (包括 Ndis.h)

另請參閱

NDIS_OBJECT_HEADER

OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES

OID_TCP_OFFLOAD_PARAMETERS