NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO struttura (ndis/nblchecksum.h)
La struttura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO specifica le informazioni usate per l'offload delle attività checksum dal trasporto TCP/IP a una scheda di interfaccia di rete. La struttura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO fa parte delle informazioni NET_BUFFER_LIST (dati fuori banda) associati a una struttura NET_BUFFER_LIST .
Sintassi
typedef struct _NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO {
union {
struct {
ULONG IsIPv4 : 1;
ULONG IsIPv6 : 1;
ULONG TcpChecksum : 1;
ULONG UdpChecksum : 1;
ULONG IpHeaderChecksum : 1;
ULONG Reserved : 11;
ULONG TcpHeaderOffset : 10;
} Transmit;
struct {
ULONG TcpChecksumFailed : 1;
ULONG UdpChecksumFailed : 1;
ULONG IpChecksumFailed : 1;
ULONG TcpChecksumSucceeded : 1;
ULONG UdpChecksumSucceeded : 1;
ULONG IpChecksumSucceeded : 1;
ULONG Loopback : 1;
ULONG TcpChecksumValueInvalid : 1;
ULONG IpChecksumValueInvalid : 1;
} Receive;
PVOID Value;
};
} NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO, *PNDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO;
Members
Transmit
Struttura che contiene i membri seguenti:
Transmit.IsIPv4
Impostato dal trasporto TCP/IP per indicare che il pacchetto di invio contiene indirizzi IPv4.
Transmit.IsIPv6
Impostato dal trasporto TCP/IP per indicare che il pacchetto di invio contiene indirizzi IPv6.
Transmit.TcpChecksum
Impostato dal trasporto TCP/IP per indicare che la scheda di interfaccia di rete deve calcolare il checksum TCP del pacchetto.
Transmit.UdpChecksum
Impostare dal trasporto TCP/IP per indicare che la scheda di interfaccia di rete deve calcolare il checksum UDP del pacchetto.
Transmit.IpHeaderChecksum
Impostato dal trasporto TCP/IP per indicare che la scheda di interfaccia di rete deve calcolare il checksum IP per la prima intestazione IP nel pacchetto. Se il pacchetto contiene sia un'intestazione IP del tunnel che un'intestazione IP di trasporto, la scheda di interfaccia di rete deve calcolare il checksum per entrambe le intestazioni IP.
Transmit.Reserved
Riservato per NDIS.
Transmit.TcpHeaderOffset
Offset, in byte, dell'intestazione TCP dall'inizio del pacchetto per i pacchetti TCP. I driver Miniport possono usare TcpHeaderOffset per determinare la posizione dell'intestazione TCP in modo che non debbano analizzare l'intestazione MAC e IP.
Receive
Struttura che contiene i membri seguenti:
Receive.TcpChecksumFailed
Impostato dal driver miniport per indicare che il checksum TCP calcolato dalla scheda di interfaccia di rete non corrisponde al checksum nell'intestazione TCP del pacchetto di ricezione.
Receive.UdpChecksumFailed
Impostato dal driver miniport per indicare che il checksum UDP calcolato dalla scheda di interfaccia di rete non corrisponde al checksum nell'intestazione UDP del pacchetto di ricezione.
Receive.IpChecksumFailed
Impostato dal driver miniport per indicare che il checksum IP calcolato dalla scheda di interfaccia di rete non corrisponde al checksum nella prima intestazione IP del pacchetto di ricezione. Se il pacchetto di ricezione contiene sia un'intestazione IP del tunnel che un'intestazione IP di trasporto, la scheda di interfaccia di rete convalida il checksum per entrambe le intestazioni IP.
Receive.TcpChecksumSucceeded
Impostato dal driver miniport per indicare che il checksum TCP calcolato dalla scheda di interfaccia di rete corrisponde al checksum nell'intestazione TCP del pacchetto di ricezione.
Receive.UdpChecksumSucceeded
Impostare dal driver miniport per indicare che il checksum UDP calcolato dalla scheda di interfaccia di rete corrispondeva al checksum nell'intestazione UDP del pacchetto di ricezione.
Receive.IpChecksumSucceeded
Impostato dal driver miniport per indicare che il checksum IP calcolato dalla scheda di interfaccia di rete corrisponde al checksum nella prima intestazione IP del pacchetto di ricezione. Se il pacchetto di ricezione contiene sia un'intestazione IP del tunnel che un'intestazione IP di trasporto, la scheda di interfaccia di rete convalida il checksum per entrambe le intestazioni IP.
Receive.Loopback
NDIS usa questo bit. Il driver miniport non deve esaminare o impostare questo bit; il driver miniport deve solo ignorare questo bit.
Receive.TcpChecksumValueInvalid
Un driver miniport che supporta Il coalescing del segmento di ricezione imposta questo flag per indicare che il checksum dell'intestazione TCP è stato convalidato dalla scheda di interfaccia di rete, ma il valore checksum dell'intestazione TCP nel pacchetto non è valido. Per altre informazioni, vedere Indicazione di segmenti di carbone.
I driver miniport che non supportano RSC devono impostare questo flag su zero.
Receive.IpChecksumValueInvalid
Un driver miniport che supporta RSC imposta questo flag per indicare che per un pacchetto IPv4, il checksum dell'intestazione IP è stato convalidato dalla scheda di interfaccia di rete, ma il valore checksum dell'intestazione IP nel pacchetto non è valido. Per un pacchetto costituito sia da un tunnel che da un'intestazione IP di trasporto, questo bit è applicabile solo all'intestazione IP del tunnel. Per altre informazioni, vedere Indicazione di segmenti di carbone.
I driver miniport che non supportano RSC devono impostare questo flag su zero.
Value
Versione PVOID delle informazioni sul checksum. I driver miniport possono usare questo membro per accedere alle informazioni non elaborate anziché ai campi specifici.
Commenti
La struttura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO specifica informazioni usate per l'offload delle attività checksum dal trasporto TCP/IP a una scheda di interfaccia di rete. La struttura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO fa parte delle informazioni NET_BUFFER_LIST (dati fuori banda) associati a una struttura NET_BUFFER_LIST .
Prima che il trasporto TCP/IP passi al driver miniport un pacchetto TCP/IP in cui il driver miniport eseguirà attività checksum, il trasporto TCP/IP aggiorna la struttura di NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO associata alla struttura NET_BUFFER_LIST . In particolare, il trasporto TCP/IP imposta il flag IsIPv4 o IsIPv6 per indicare che il pacchetto di invio è un pacchetto IPv4 o IPv6.
yYIf il trasporto TCP/IP non imposta il flag IsIPv4 o IsIPv6 , il driver miniport non deve eseguire attività checksum nel pacchetto. Se il trasporto TCP/IP imposta il flag IsIPv4 o IsIPv6 , imposta anche i flag appropriati necessari per indicare quali checksum il driver miniport deve calcolare per il pacchetto. Per IPv4, questo include i flag IpHeaderChecksum, TcpChecksum o UdpChecksum. Per IPv6, questo include i flag TcpChecksum o UdpChecksum . Inoltre, per i pacchetti TCP, il trasporto TCP/IP imposta il campo TcpHeaderOffset quando viene impostato il flag IsIPv4 o IPv6 . Il trasporto non imposta questo campo per i pacchetti UDP.
Prima di indicare un pacchetto TCP/IP di ricezione in cui esegue attività checksum, un driver miniport imposta i flag XxxChecksumFailed o XxxChecksumSucceeded nella struttura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
Intestazione | ndis/nblchecksum.h (includere ndis.h) |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per