Leer en inglés

Compartir a través de


Función NdisRetreatNetBufferDataStart (ndis/nblapi.h)

Llame a la función NdisRetreatNetBufferDataStart para acceder a más espacio de datos 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 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, para asignar.

[in, optional] AllocateMdlHandler

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

Valor devuelto

NdisRetreatNetBufferDataStart devuelve una de las siguientes opciones:

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

Observaciones

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

Si no hay suficiente espacio de datos no utilizado, esta función asigna un nuevo búfer y una MDL para describir el nuevo búfer y encadenar el nuevo MDL al principio de la cadena MDL. NDIS llama a la función de NetAllocateMdl especificada en AllocateMdl para asignar la MDL y la memoria. La función de 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 Valor
cliente mínimo admitido Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Universal
encabezado de ndis/nblapi.h (incluya ndis.h)
biblioteca de Ndis.lib
irQL <= DISPATCH_LEVEL
reglas de cumplimiento de DDI Irql_NetBuffer_Function(ndis)

Consulte también

NET_BUFFER

NdisAdvanceNetBufferDataStart

NetAllocateMdl