Función NdisAllocateNetBufferListContext (ndis/nblapi.h)

Llame a la función NdisAllocateNetBufferListContext para asignar más espacio de contexto en la estructura NET_BUFFER_LIST_CONTEXT de un objeto

NET_BUFFER_LIST estructura.

Sintaxis

NDIS_EXPORTED_ROUTINE NDIS_STATUS NdisAllocateNetBufferListContext(
  [in] NET_BUFFER_LIST *NetBufferList,
  [in] USHORT          ContextSize,
  [in] USHORT          ContextBackFill,
  [in] ULONG           PoolTag
);

Parámetros

[in] NetBufferList

Puntero a una estructura de NET_BUFFER_LIST asignada previamente.

[in] ContextSize

Cantidad de espacio de contexto que se va a asignar en la estructura NET_BUFFER_LIST_CONTEXT. Esta cantidad debe ser un múltiplo del valor definido por sizeof(void*).

[in] ContextBackFill

Cantidad de memoria, además del valor de ContextSize, para asignar si NDIS debe asignar memoria para satisfacer la solicitud. Esta cantidad debe ser un múltiplo del valor definido por sizeof(void*).

[in] PoolTag

Etiqueta de grupo de kernel que NDIS usa para asignar la memoria para la estructura de NET_BUFFER_LIST_CONTEXT, si se requiere la asignación. La etiqueta es una cadena, delimitada por comillas simples, con hasta cuatro caracteres, normalmente especificada en orden invertido. La etiqueta del grupo de kernel ayuda a NDIS a identificar al propietario de la memoria.

Valor devuelto

NdisAllocateNetBufferListContext devuelve una de las siguientes opciones:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NdisAllocateNetBufferListContext asignó correctamente el espacio de contexto reduciendo el valor del miembro Offset de la estructura NET_BUFFER_LIST_CONTEXT o asignando nueva memoria.
NDIS_STATUS_RESOURCES
Error de NdisAllocateNetBufferListContext debido a recursos insuficientes.
NDIS_STATUS_FAILURE
Error de NdisAllocateNetBufferListContext por motivos distintos de recursos insuficientes.

Comentarios

Si hay suficiente espacio de contexto sin usar disponible en la estructura NET_BUFFER_LIST_CONTEXT para satisfacer la solicitud, NdisAllocateNetBufferListContext simplemente reduce el valor del miembro Offset en la estructura NET_BUFFER_LIST_CONTEXT. De lo contrario, NDIS asigna nueva memoria para el espacio de contexto. Puede especificar ContextBackFill para asignar memoria adicional para que la siguiente llamada a NdisAllocateNetBufferListContext no tenga que asignar memoria.

Nota El espacio de contexto siempre está alineado con "sizeof(void*)". Esta es la alineación adecuada para todos los tipos naturales, pero no es adecuada para los tipos de datos con requisitos de alineación inusuales, como SLIST_ENTRY.

Llamada a Función NdisFreeNetBufferListContext para liberar el espacio de contexto en la estructura de NET_BUFFER_LIST_CONTEXT que se asignó con NdisAllocateNetBufferListContext.

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_LIST

NET_BUFFER_LIST_CONTEXT

NdisFreeNetBufferListContext