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 值,表示迷你埠適配卡可以計算包含 TCP 選項的 IPv4 傳送封包的 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 值,表示迷你埠適配卡可以驗證包含 IP 選項的 IPv4 接收封包的 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 值,表示迷你埠適配卡可以計算包含 TCP 選項的 IPv6 傳送封包的 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
指定 IEEE 802.3p 和 IEEE 802.3q 封裝設定是在每個NET_BUFFER_LIST 結構的 NetBufferListInfo 成員中指定。 - 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) |