Compartir a través de


estructura NET_PACKET (packet.h)

Representa un único paquete de red.

Sintaxis

typedef struct _NET_PACKET {
  UINT32            FragmentIndex;
  UINT16            FragmentCount;
  NET_PACKET_LAYOUT Layout;
  UINT8             Ignore : 1;
  UINT8             Scratch : 1;
  UINT8             Reserved1 : 6;
} NET_PACKET;

Miembros

FragmentIndex

Índice en el anillo de fragmento de la primera estructura NET_FRAGMENT de la carga de este paquete.

FragmentCount

Número de estructuras de NET_FRAGMENT que pertenecen a este paquete.

Layout

Estructura NET_PACKET_LAYOUT .

En el caso de las colas de transmisión, si la pila de hosts ha habilitado una descarga de tareas que usa un encabezado de protocolo, especifica un desplazamiento de solo lectura para cada campo de protocolo. Por ejemplo, si la descarga de suma de comprobación tcp está habilitada, este miembro especifica el desplazamiento al encabezado TCP. De lo contrario, este miembro está vacío.

Para las colas de recepción, si la pila de hosts ha habilitado una descarga de tareas que usa un encabezado de protocolo, establezca las marcas Layer2Type, Layer3Type y Layer4Type . Cuando no hay descargas de tareas, este miembro está vacío.

Ignore

Para las colas de recepción, el cliente establece este campo para evitar que el paquete se indique en el host. Por ejemplo, si el hardware encontró un error DMA al escribir bytes en este búfer de datos para los fragmentos de este paquete, el cliente puede establecer este campo para quitar el paquete parcial.

En el caso de las colas de transmisión, este campo es de solo lectura. Si se establece, indica que el cliente no debe transmitir el paquete.

Scratch

Valor de campo de bits que el cliente puede usar para cualquier propósito. Cuando se reutiliza el NET_PACKET , este valor se restablece a cero.

Reserved1

Reservado. Los controladores de cliente no deben leer ni escribir este valor.

Comentarios

Cada estructura de NET_PACKET representa un único marco de red y contiene metadatos básicos aplicables a todos los paquetes, como el diseño de trama. Un NET_PACKET contiene al menos un NET_FRAGMENT que describe la ubicación en la memoria del sistema donde residen los datos del paquete.

La estructura NET_PACKET puede ser un elemento de una estructura NET_RING .

Requisitos

Requisito Value
Versión mínima de KMDF 1.29
Versión mínima de UMDF 2,33
Encabezado packet.h