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 .
NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisRetreatNetBufferDataStart(
[in] NET_BUFFER *NetBuffer,
[in] ULONG DataOffsetDelta,
[in] ULONG DataBackFill,
[in, optional] NET_BUFFER_ALLOCATE_MDL *AllocateMdlHandler
);
[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.
NdisRetreatNetBufferDataStart devuelve una de las siguientes opciones:
Código devuelto | Descripción |
---|---|
|
NdisRetreatNetBufferDataStart asignó correctamente el espacio de datos usado mediante el espacio de datos sin usar o asignando un nuevo almacenamiento. |
|
Error en NdisRetreatNetBufferDataStart debido a recursos insuficientes. |
|
Error de NdisRetreatNetBufferDataStart por motivos distintos de recursos insuficientes. |
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.
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) |