struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO (ndis/nblchecksum.h)
Struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO menentukan informasi yang digunakan dalam membongkar tugas checksum dari transportasi TCP/IP ke NIC. Struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO adalah bagian dari informasi NET_BUFFER_LIST (data di luar band) yang terkait dengan struktur NET_BUFFER_LIST .
Sintaks
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;
Anggota
Transmit
Struktur yang berisi anggota berikut:
Transmit.IsIPv4
Atur oleh transportasi TCP/IP untuk menunjukkan bahwa paket kirim berisi alamat IPv4.
Transmit.IsIPv6
Atur oleh transportasi TCP/IP untuk menunjukkan bahwa paket kirim berisi alamat IPv6.
Transmit.TcpChecksum
Diatur oleh transportasi TCP/IP untuk menunjukkan bahwa NIC harus menghitung checksum TCP paket.
Transmit.UdpChecksum
Diatur oleh transportasi TCP/IP untuk menunjukkan bahwa NIC harus menghitung checksum UDP paket.
Transmit.IpHeaderChecksum
Atur oleh transportasi TCP/IP untuk menunjukkan bahwa NIC harus menghitung checksum IP untuk header IP pertama dalam paket. Jika paket berisi header IP terowongan dan header IP transportasi, NIC harus menghitung checksum untuk kedua header IP.
Transmit.Reserved
Dicadangkan untuk NDIS.
Transmit.TcpHeaderOffset
Offset, dalam byte, dari header TCP dari awal paket untuk paket TCP. Driver Miniport dapat menggunakan TcpHeaderOffset untuk menentukan lokasi header TCP sehingga tidak perlu mengurai MAC dan header IP.
Receive
Struktur yang berisi anggota berikut:
Receive.TcpChecksumFailed
Diatur oleh driver miniport untuk menunjukkan bahwa checksum TCP yang dihitung oleh NIC tidak cocok dengan checksum di header TCP paket penerima.
Receive.UdpChecksumFailed
Diatur oleh driver miniport untuk menunjukkan bahwa checksum UDP yang dihitung oleh NIC tidak cocok dengan checksum di header UDP paket penerima.
Receive.IpChecksumFailed
Diatur oleh driver miniport untuk menunjukkan bahwa checksum IP yang dihitung oleh NIC tidak cocok dengan checksum di header IP pertama paket penerima. Jika paket terima berisi header IP terowongan dan header IP transportasi, NIC memvalidasi checksum untuk kedua header IP.
Receive.TcpChecksumSucceeded
Atur oleh driver miniport untuk menunjukkan bahwa checksum TCP yang dihitung oleh NIC cocok dengan checksum di header TCP paket penerima.
Receive.UdpChecksumSucceeded
Diatur oleh driver miniport untuk menunjukkan bahwa checksum UDP yang dihitung oleh NIC cocok dengan checksum di header UDP paket penerima.
Receive.IpChecksumSucceeded
Diatur oleh driver miniport untuk menunjukkan bahwa checksum IP yang dihitung oleh NIC cocok dengan checksum di header IP pertama paket penerima. Jika paket terima berisi header IP terowongan dan header IP transportasi, NIC memvalidasi checksum untuk kedua header IP.
Receive.Loopback
NDIS menggunakan bit ini. Driver miniport tidak boleh memeriksa atau mengatur bit ini; driver miniport seharusnya hanya mengabaikan bit ini.
Receive.TcpChecksumValueInvalid
Driver miniport yang mendukung Receive Segment Coalescing (RSC) mengatur bendera ini untuk menunjukkan bahwa checksum header TCP divalidasi oleh NIC tetapi nilai checksum header TCP dalam paket tidak valid. Untuk informasi selengkapnya, lihat Menunjukkan Segmen Coalesced.
Driver miniport yang tidak mendukung RSC harus mengatur bendera ini ke nol.
Receive.IpChecksumValueInvalid
Driver miniport yang mendukung RSC mengatur bendera ini untuk menunjukkan bahwa untuk paket IPv4, checksum header IP divalidasi oleh NIC tetapi nilai checksum header IP dalam paket tidak valid. Untuk paket yang terdiri dari terowongan dan header IP transportasi, bit ini hanya berlaku untuk header IP terowongan. Untuk informasi selengkapnya, lihat Menunjukkan Segmen Coalesced.
Driver miniport yang tidak mendukung RSC harus mengatur bendera ini ke nol.
Value
Versi PVOID dari informasi checksum. Driver Miniport dapat menggunakan anggota ini untuk mengakses informasi mentah alih-alih bidang tertentu.
Keterangan
Struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO menentukan informasi yang digunakan dalam membongkar tugas checksum dari transportasi TCP/IP ke NIC. Struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO adalah bagian dari informasi NET_BUFFER_LIST (data di luar band) yang terkait dengan struktur NET_BUFFER_LIST .
Sebelum transportasi TCP/IP lolos ke driver miniport paket TCP/IP tempat driver miniport akan melakukan tugas checksum, transportasi TCP/IP memperbarui struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO yang terkait dengan struktur NET_BUFFER_LIST . Secara khusus, transportasi TCP/IP menetapkan bendera IsIPv4 atau IsIPv6 untuk menunjukkan bahwa paket kirim adalah paket IPv4 atau IPv6.
yyJika transportasi TCP/IP tidak mengatur bendera IsIPv4 atau IsIPv6 , driver miniport tidak boleh melakukan tugas checksum pada paket. Jika transportasi TCP/IP menetapkan bendera IsIPv4 atau IsIPv6 , itu juga mengatur bendera yang sesuai yang diperlukan untuk menunjukkan checksum mana yang harus dihitung driver miniport untuk paket. Untuk IPv4, ini termasuk bendera IpHeaderChecksum, TcpChecksum, atau UdpChecksum . Untuk IPv6, ini termasuk bendera TcpChecksum atau UdpChecksum . Selain itu, untuk paket TCP, transportasi TCP/IP mengatur bidang TcpHeaderOffset saat bendera IsIPv4 atau IPv6 diatur. Transportasi tidak mengatur bidang ini untuk paket UDP.
Sebelum menunjukkan paket TCP/IP penerima tempatnya melakukan tugas checksum, driver miniport mengatur bendera XxxChecksumFailed atau XxxChecksumSucceeded yang sesuai dalam struktur NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di NDIS 6.0 dan yang lebih baru. |
Header | ndis/nblchecksum.h (sertakan ndis.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk