Función NdisRetreatNetBufferDataStart (ndis/nblapi.h)

Llame a la función NdisRetreatNetBufferDataStart para acceder al espacio de datos más usado en la cadena MDL de una estructura de NET_BUFFER .

Sintaxis

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
  [in]           NET_BUFFER              *NetBuffer,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);

Parámetros

[in] NetBuffer

Puntero a una estructura de NET_BUFFER asignada previamente.

[in] DataOffsetDelta

Cantidad de espacio de datos usado que se va a agregar. NDIS ajusta el miembro DataOffset de la estructura NET_BUFFER en consecuencia. Si no hay suficiente espacio de datos sin usar para satisfacer la solicitud, NDIS asigna memoria adicional.

[in] DataBackFill

Si NDIS debe asignar memoria, este parámetro especifica la cantidad de espacio de datos, además del valor del parámetro DataOffsetDelta , que se va a asignar.

[in, optional] AllocateMdlHandler

Un punto de entrada opcional para una función NetAllocateMdl . Si el autor de la llamada especifica un punto de entrada para la función NetAllocateMdl , NDIS llama a NetAllocateMdl para asignar una MDL y una memoria.

Valor devuelto

NdisRetreatNetBufferDataStart devuelve una de las siguientes opciones:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferDataStart asignó correctamente el espacio de datos usado mediante el espacio de datos sin usar o asignando un nuevo almacenamiento.
NDIS_STATUS_RESOURCES
Error en NdisRetreatNetBufferDataStart debido a recursos insuficientes.
NDIS_STATUS_FAILURE
Error de NdisRetreatNetBufferDataStart por motivos distintos de recursos insuficientes.

Comentarios

NdisRetreatNetBufferDataStart intenta satisfacer la solicitud reduciendo el valor del miembro DataOffset de la estructura NET_BUFFER .

Si no hay suficiente espacio de datos sin usar, esta función asigna un nuevo búfer y una MDL para describir el nuevo búfer y encadenar la nueva MDL al principio de la cadena MDL. NDIS llama a la función NetAllocateMdl especificada en AllocateMdl para asignar la MDL y la memoria. La función NetAllocateMdl puede usar cualquier método de asignación que cumpla los requisitos de diseño del controlador.

Llamada a Función NdisAdvanceNetBufferDataStart para liberar el espacio de datos usado que se agregó con NdisRetreatNetBufferDataStart.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis/nblapi.h (include ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_NetBuffer_Function(ndis)

Consulte también

NET_BUFFER

NdisAdvanceNetBufferDataStart

NetAllocateMdl