NDIS_TCP_IP_CHECKSUM_OFFLOAD 結構 (ntddndis.h)
NDIS_TCP_IP_CHECKSUM_OFFLOAD 結構會在 NDIS_OFFLOAD 結構中提供總和檢查碼工作卸除資訊。
語法
typedef struct _NDIS_TCP_IP_CHECKSUM_OFFLOAD {
struct {
ULONG Encapsulation;
ULONG IpOptionsSupported : 2;
ULONG TcpOptionsSupported : 2;
ULONG TcpChecksum : 2;
ULONG UdpChecksum : 2;
ULONG IpChecksum : 2;
} IPv4Transmit;
struct {
ULONG Encapsulation;
ULONG IpOptionsSupported : 2;
ULONG TcpOptionsSupported : 2;
ULONG TcpChecksum : 2;
ULONG UdpChecksum : 2;
ULONG IpChecksum : 2;
} IPv4Receive;
struct {
ULONG Encapsulation;
ULONG IpExtensionHeadersSupported : 2;
ULONG TcpOptionsSupported : 2;
ULONG TcpChecksum : 2;
ULONG UdpChecksum : 2;
} IPv6Transmit;
struct {
ULONG Encapsulation;
ULONG IpExtensionHeadersSupported : 2;
ULONG TcpOptionsSupported : 2;
ULONG TcpChecksum : 2;
ULONG UdpChecksum : 2;
} IPv6Receive;
} NDIS_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_TCP_IP_CHECKSUM_OFFLOAD;
成員
IPv4Transmit
NDIS_TCP_IP_CHECKSUM_OFFLOAD內的 結構,指定 IPv4 傳輸資訊和包含下列成員:
IPv4Transmit.Encapsulation
封裝 IPv4 傳輸的設定。 如需此成員的詳細資訊,請參閱下列一節。
IPv4Transmit.IpOptionsSupported
迷你埠驅動程式設定的 ULONG 值,指出迷你埠適配卡可以計算包含 IP 選項的 IPv4 傳送封包的 IP 總和檢查碼,或指出此功能已啟用或停用。
IPv4Transmit.TcpOptionsSupported
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv4 傳送封包的 TCP 總和檢查碼,其中包含 TCP 選項,或表示已啟用或停用此功能。
IPv4Transmit.TcpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv4 傳送封包的 TCP 總和檢查碼。 TCP/IP 傳輸會將此值設定為啟用此功能,或表示此功能已啟用或停用。
IPv4Transmit.UdpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv4 傳送封包的 UDP 總和檢查碼,或表示此功能已啟用或停用。
IPv4Transmit.IpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv4 傳送封包的 IP 總和檢查碼,或指出此功能已啟用或停用。
IPv4Receive
NDIS_TCP_IP_CHECKSUM_OFFLOAD內的 結構,指定 IPv4 接收資訊和包含下列成員:
IPv4Receive.Encapsulation
封裝 IPv4 接收的設定。 如需此成員的詳細資訊,請參閱下列一節。
IPv4Receive.IpOptionsSupported
迷你埠驅動程式設定的 ULONG 值,指出迷你埠適配卡可以驗證 IPv4 接收封包的 IP 總和檢查碼,其中包含 IP 選項,或表示已啟用或停用此功能。
IPv4Receive.TcpOptionsSupported
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算包含 TCP 選項的 IPv4 接收封包的 TCP 總和檢查碼,或指出此功能已啟用或停用。
IPv4Receive.TcpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以驗證 IPv4 接收封包的 TCP 總和檢查碼,或指出此功能已啟用或停用。
IPv4Receive.UdpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以驗證 IPv4 接收封包的 UDP 總和檢查碼,或表示此功能已啟用或停用。
IPv4Receive.IpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以驗證 IPv4 接收封包的 IP 總和檢查碼,或表示此功能已啟用或停用。
IPv6Transmit
NDIS_TCP_IP_CHECKSUM_OFFLOAD內的 結構,指定 IPv6 傳輸資訊和包含下列成員:
IPv6Transmit.Encapsulation
封裝 IPv6 傳輸的設定。 如需此成員的詳細資訊,請參閱下列一節。
IPv6Transmit.IpExtensionHeadersSupported
迷你埠驅動程式設定的 ULONG 值,表示迷你埠配接器可以在包含擴充功能標頭的 IPv6 封包上計算總和檢查碼。
IPv6Transmit.TcpOptionsSupported
迷你埠驅動程式設定的 ULONG 值,指出迷你埠適配卡可以計算 IPv6 傳送封包的 TCP 總和檢查碼,其中包含 TCP 選項,或指出此功能已啟用或停用。
IPv6Transmit.TcpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv6 傳送封包的 TCP 總和檢查碼,或指出此功能已啟用或停用。
IPv6Transmit.UdpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv6 傳送封包的 UDP 總和檢查碼,或表示此功能已啟用或停用。
IPv6Receive
NDIS_TCP_IP_CHECKSUM_OFFLOAD內的 結構,指定 IPv6 接收資訊和包含下列成員:
IPv6Receive.Encapsulation
封裝 IPv6 接收的設定。 如需此成員的詳細資訊,請參閱下列一節。
IPv6Receive.IpExtensionHeadersSupported
迷你埠驅動程式設定的 ULONG 值,表示迷你埠配接器可以在包含擴充標頭的 IPv6 封包上驗證總和檢查碼。
IPv6Receive.TcpOptionsSupported
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以計算 IPv6 接收封包總和檢查碼,其 TCP 標頭包含 TCP 選項,或表示已啟用或停用此功能。
IPv6Receive.TcpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以驗證 IPv6 接收封包的 TCP 總和檢查碼,或表示此功能已啟用或停用。
IPv6Receive.UdpChecksum
迷你埠驅動程式設定的 ULONG 值,表示迷你埠適配卡可以驗證 IPv6 接收封包的 UDP 總和檢查碼,或指出此功能已啟用或停用。
備註
NDIS_TCP_IP_CHECKSUM_OFFLOAD 結構用於NDIS_OFFLOAD結構的總和檢查碼成員中。 NDIS_TCP_IP_CHECKSUM_OFFLOAD結構會指定迷你埠配接器提供用來計算IP、TCP或UDP總和檢查碼的目前或支援的服務, (或它們) 傳送封包,以及驗證接收封包的這類總和檢查碼。
NDIS_OFFLOAD用於 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 結構、 NDIS_BIND_PARAMETERS 結構、 NDIS_FILTER_ATTACH_PARAMETERS 結構, OID_TCP_OFFLOAD_CURRENT_CONFIG OID 和 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示。
針對 OID_TCP_OFFLOAD_CURRENT_CONFIG,NDIS_OFFLOAD結構會指定迷你埠配接器支援的工作卸除功能。 如果目前的卸除功能變更,迷你埠驅動程式會報告 中的新功能 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示。
NDIS_TCP_IP_CHECKSUM_OFFLOAD封裝成員會定義迷你埠配接器的總和檢查碼卸載封裝設定。
回應 OID_TCP_OFFLOAD_CURRENT_CONFIG 查詢要求,NDIS 會提供封裝旗標的位 OR,指出每個 封裝 成員中支援的封裝設定。 迷你埠驅動程序必須提供乙太網路封裝 (NDIS_ENCAPSULATION_IEEE_802_3) 。 其他類型的封裝是選擇性的。
針對 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示,迷你埠驅動程式會提供封裝旗標的位 OR,這表示每個 封裝 成員中的目前功能。
下列旗標是針對 封裝 成員所定義的:
- NDIS_ENCAPSULATION_NOT_SUPPORTED
指定不支援封裝卸除。 - NDIS_ENCAPSULATION_NULL
指定 NULL 封裝。 - NDIS_ENCAPSULATION_IEEE_802_3
指定 IEEE 802.3 封裝。 - NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q
指定 IEEE 802.3p 和 IEEE 802.3q 封裝。 - NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB
指定在每個NET_BUFFER_LIST結構的 NetBufferListInfo 成員中指定 IEEE 802.3p 和 IEEE 802.3q 封裝設定。 - NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED
指定路由通訊協議的邏輯連結控制 (LLC) 封裝,如 RFC 1483 中所述。 此旗標也用來指出乙太網路 LLC/SNAP 封裝。
IpOptionsSupported、TcpOptionsSupported、IpExtensionHeadersSupported、TcpChecksum、UdpChecksum 和 ipChecksum 成員中 NDIS_TCP_IP_CHECKSUM_OFFLOAD值的意義取決於 OID 或狀態指示包含工作卸除結構。 這些成員可以有下列其中一個值:
- NDIS_OFFLOAD_NOT_SUPPORTED
在 OID_TCP_OFFLOAD_CURRENT_CONFIG中,這個值會指定迷你埠配接器不支持成員所指定的功能。 - NDIS_OFFLOAD_SUPPORTED
在 OID_TCP_OFFLOAD_CURRENT_CONFIG中,這個值會指定迷你埠配接器支持成員指定的功能。 - NDIS_OFFLOAD_SET_OFF
在 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示中,這個值會指定成員指定的功能已停用。 - NDIS_OFFLOAD_SET_ON
在 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示中,這個值會指定成員指定的功能已啟用。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
標頭 | ntddndis.h (包含 Ndis.h) |