Compartir a través de


Función NdisRetreatNetBufferListDataStart (ndis/nblapi.h)

Llame a la función NdisRetreatNetBufferListDataStart para aumentar el espacio de datos usado en todas las estructuras de NET_BUFFER de una estructura de NET_BUFFER_LIST .

Sintaxis

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferListDataStart(
  [in]           NET_BUFFER_LIST         *NetBufferList,
  [in]           ULONG                   DataOffsetDelta,
  [in]           ULONG                   DataBackFill,
  [in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler,
  [in, optional] NET_BUFFER_FREE_MDL     *FreeMdlHandler
);

Parámetros

[in] NetBufferList

Puntero a una estructura de NET_BUFFER_LIST asignada previamente.

[in] DataOffsetDelta

Cantidad de espacio de datos usado adicional en cada estructura de NET_BUFFER. Si no hay suficiente espacio de datos sin usar para satisfacer la solicitud, NDIS asigna más memoria.

[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.

[in, optional] FreeMdlHandler

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

Valor devuelto

NdisRetreatNetBufferListDataStart devuelve una de las siguientes opciones:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NdisRetreatNetBufferListDataStart asignó correctamente el espacio de datos en todas las estructuras NET_BUFFER, ya sea reduciendo el valor del miembro DataOffset o asignando un nuevo almacenamiento.
NDIS_STATUS_RESOURCES
Error de NdisRetreatNetBufferListDataStart debido a recursos insuficientes.
NDIS_STATUS_FAILURE
Error de NdisRetreatNetBufferListDataStart por motivos distintos de recursos insuficientes.

Comentarios

Llamar a NdisRetreatNetBufferListDataStart es el equivalente de llamar a Función NdisRetreatNetBufferDataStart para cada estructura de NET_BUFFER en la estructura de NET_BUFFER_LIST . NdisRetreatNetBufferListDataStart intenta satisfacer la solicitud reduciendo el valor del miembro DataOffset en cada estructura de NET_BUFFER. Si no hay suficiente espacio de datos sin usar disponible, esta función asigna un nuevo búfer y MDL y, a continuación, encadena la nueva MDL al principio de la cadena MDL en la estructura de NET_BUFFER.

Llamada a Función NdisAdvanceNetBufferListDataStart para liberar el espacio de datos que se afirmó en una llamada anterior a NdisRetreatNetBufferListDataStart . Como alternativa, el controlador puede llamar a Función NdisAdvanceNetBufferDataStart para cada estructura de NET_BUFFER en la estructura de NET_BUFFER_LIST. Llamar a NdisAdvanceNetBufferListDataStart es más eficaz.

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

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisRetreatNetBufferDataStart

NetAllocateMdl

NetFreeMdl