Compartir a través de


estructura de NET_FRAGMENT (fragment.h)

Representa un búfer contiguo en la memoria.

Sintaxis

typedef struct _NET_FRAGMENT {
  UINT64 ValidLength : 26;
  UINT64 Capacity : 26;
  UINT64 Offset : 10;
  UINT64 Scratch : 1;
  UINT64 OsReserved_Bounced : 1;
} NET_FRAGMENT;

Miembros

ValidLength

Contiene la longitud de la carga del paquete. Este valor es menor o igual que el valor de Capacity.

Para las colas de transmisión, este valor es de solo lectura.

Capacity

Contiene la longitud total del búfer de paquetes.

Para las colas de transmisión, este valor es de solo lectura.

Offset

Contiene el desplazamiento desde el inicio de VirtualAddress y DmaLogicalAddress hasta el inicio de la carga de paquete válida. Este valor es menor o igual que el valor de Capacity.

Para obtener la dirección virtual de este fragmento, llame a NetExtensionGetFragmentVirtualAddress.

Para obtener la dirección lógica DMA de este fragmento, llame a NetExtensionGetFragmentLogicalAddress.

Para las colas de transmisión, este valor es de solo lectura.

Scratch

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

OsReserved_Bounced

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

Comentarios

Una única estructura de NET_PACKET contiene referencias a una o varias estructuras de NET_FRAGMENT .

Aunque cada fragmento es un búfer de memoria prácticamente contiguo, un paquete que contiene más de un fragmento es prácticamente desconcertante.

Requisitos

Requisito Value
Versión mínima de KMDF 1.29
Encabezado fragment.h