Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO Struktur gibt Informationen an, die beim Entladen von Prüfsummenaufgaben vom TCP/IP-Transport in eine NIC verwendet werden. Die NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO Struktur ist Teil der NET_BUFFER_LIST Informationen (Out-of-Band-Daten), die einer NET_BUFFER_LIST Struktur zugeordnet sind.
Syntax
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;
Angehörige
Transmit
Eine Struktur, die die folgenden Elemente enthält:
Transmit.IsIPv4
Legen Sie vom TCP/IP-Transport fest, um anzugeben, dass das Sendepaket IPv4-Adressen enthält.
Transmit.IsIPv6
Legen Sie vom TCP/IP-Transport fest, um anzugeben, dass das Sendepaket IPv6-Adressen enthält.
Transmit.TcpChecksum
Legen Sie vom TCP/IP-Transport fest, um anzugeben, dass die NIC die TCP-Prüfsumme des Pakets berechnen soll.
Transmit.UdpChecksum
Legen Sie vom TCP/IP-Transport fest, um anzugeben, dass die NIC die UDP-Prüfsumme des Pakets berechnen soll.
Transmit.IpHeaderChecksum
Legen Sie vom TCP/IP-Transport fest, um anzugeben, dass die NIC die IP-Prüfsumme für den ersten IP-Header im Paket berechnen soll. Wenn das Paket sowohl einen Tunnel-IP-Header als auch einen Transport-IP-Header enthält, sollte die NIC die Prüfsumme für beide IP-Header berechnen.
Transmit.Reserved
Reserviert für NDIS.
Transmit.TcpHeaderOffset
Der Offset (in Bytes) des TCP-Headers vom Anfang des Pakets für TCP-Pakete. Miniport-Treiber können TcpHeaderOffset- verwenden, um den Speicherort des TCP-Headers zu bestimmen, sodass sie den MAC- und IP-Header nicht analysieren müssen.
Receive
Eine Struktur, die die folgenden Elemente enthält:
Receive.TcpChecksumFailed
Legen Sie den Miniporttreiber fest, um anzugeben, dass die von der NIC berechnete TCP-Prüfsumme nicht mit der Prüfsumme im TCP-Header des Empfangspakets übereinstimmte.
Receive.UdpChecksumFailed
Wird vom Miniporttreiber festgelegt, um anzugeben, dass die von der NIC berechnete UDP-Prüfsumme nicht mit der Prüfsumme im UDP-Header des Empfangspakets übereinstimmte.
Receive.IpChecksumFailed
Legen Sie den Miniporttreiber fest, um anzugeben, dass die durch die NIC berechnete IP-Prüfsumme nicht mit der Prüfsumme im ersten IP-Header des Empfangspakets übereinstimmte. Wenn das Empfangspaket sowohl einen Tunnel-IP-Header als auch einen Transport-IP-Header enthält, überprüft die NIC die Prüfsumme für beide IP-Header.
Receive.TcpChecksumSucceeded
Legen Sie den Miniporttreiber fest, um anzugeben, dass die von der NIC berechnete TCP-Prüfsumme mit der Prüfsumme im TCP-Header des Empfangspakets übereinstimmt.
Receive.UdpChecksumSucceeded
Legen Sie den Miniporttreiber fest, um anzugeben, dass die udp-Prüfsumme, die von der NIC berechnet wird, mit der Prüfsumme im UDP-Header des Empfangspakets übereinstimmt.
Receive.IpChecksumSucceeded
Legen Sie den Miniporttreiber fest, um anzugeben, dass die durch die NIC berechnete IP-Prüfsumme mit der Prüfsumme im ersten IP-Header des Empfangspakets übereinstimmt. Wenn das Empfangspaket sowohl einen Tunnel-IP-Header als auch einen Transport-IP-Header enthält, überprüft die NIC die Prüfsumme für die beiden IP-Header.
Receive.Loopback
NDIS verwendet dieses Bit. Der Miniporttreiber darf dieses Bit nicht untersuchen oder festlegen; Der Miniporttreiber sollte dieses Bit einfach ignorieren.
Receive.TcpChecksumValueInvalid
Ein Miniporttreiber, der Receive Segment Coalescing (RSC) unterstützt, legt dieses Flag fest, um anzugeben, dass die TCP-Headerprüfsumme von der NIC überprüft wurde, der TCP-Headerprüfsummenwert im Paket jedoch ungültig ist. Weitere Informationen finden Sie unter Angeben von verkohlten Segmenten.
Miniporttreiber, die RSC nicht unterstützen, sollten dieses Kennzeichen auf Null festlegen.
Receive.IpChecksumValueInvalid
Ein Miniporttreiber, der RSC unterstützt, legt dieses Flag fest, um anzugeben, dass für ein IPv4-Paket die IP-Headerprüfsumme von der NIC überprüft wurde, der IP-Header-Prüfsummenwert im Paket jedoch ungültig ist. Für ein Paket, das aus einem Tunnel und einem Transport-IP-Header besteht, gilt dieses Bit nur für den Tunnel-IP-Header. Weitere Informationen finden Sie unter Angeben von verkohlten Segmenten.
Miniporttreiber, die RSC nicht unterstützen, sollten dieses Kennzeichen auf Null festlegen.
Value
Eine PVOID Version der Prüfsummeninformationen. Miniport-Treiber können dieses Element verwenden, um auf die Rohinformationen anstelle der spezifischen Felder zuzugreifen.
Bemerkungen
Die NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO Struktur gibt Informationen an, die beim Entladen von Prüfsummenaufgaben vom TCP/IP-Transport in eine NIC verwendet werden. Die NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO Struktur ist Teil der NET_BUFFER_LIST Informationen (Out-of-Band-Daten), die einer NET_BUFFER_LIST Struktur zugeordnet sind.
Bevor der TCP/IP-Transport an den Miniporttreiber ein TCP/IP-Paket übergibt, auf dem der Miniporttreiber Prüfsummenaufgaben ausführt, aktualisiert der TCP/IP-Transport die NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO Struktur, die der NET_BUFFER_LIST-Struktur zugeordnet ist. Insbesondere legt der TCP/IP-Transport die IsIPv4 oder IsIPv6- Flag fest, um anzugeben, dass das Sendepaket ein IPv4- oder IPv6-Paket ist.
yyWenn der TCP/IP-Transport weder die IsIPv4- noch IsIPv6--Flag festgelegt, sollte der Miniporttreiber keine Prüfsummenaufgaben für das Paket ausführen. Wenn der TCP/IP-Transport die IsIPv4- oder IsIPv6--Flag festlegt, legt er auch die entsprechenden Flags fest, die erforderlich sind, um anzugeben, welche Prüfsummen der Miniporttreiber für das Paket berechnen soll. Für IPv4 umfasst dies die IpHeaderChecksum-, TcpChecksum-oder UdpChecksum Flags. Für IPv6 umfasst dies die TcpChecksum- oder UdpChecksum- Flags. Darüber hinaus legt der TCP/IP-Transport für TCP-Pakete das TcpHeaderOffset Feld fest, wenn entweder das IsIPv4- oder IPv6- Flag festgelegt ist. Der Transport legt dieses Feld für UDP-Pakete nicht fest.
Bevor sie ein empfangenes TCP/IP-Paket angeben, für das Prüfsummenaufgaben ausgeführt werden, legt ein Miniporttreiber den entsprechenden Xxx-ChecksumFailed oder XxxChecksumSucceeded Flags in der NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO-Struktur fest.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
Header- | ndis/nblchecksum.h (include ndis.h) |