Compartir a través de


Función NdisAllocateNetBufferPool (ndis/nblapi.h)

Llame a la función NdisAllocateNetBufferPool para asignar un grupo de estructuras de NET_BUFFER.

Sintaxis

NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferPool(
  [in, optional] NDIS_HANDLE                      NdisHandle,
  [in]           NET_BUFFER_POOL_PARAMETERS const *Parameters
);

Parámetros

[in, optional] NdisHandle

Identificador NDIS que se obtuvo durante la inicialización del autor de la llamada.

[in] Parameters

Puntero a una estructura NET_BUFFER_POOL_PARAMETERS que define los parámetros del grupo. La estructura se define de la siguiente manera:

typedef struct _NET_BUFFER_POOL_PARAMETERS {
  NDIS_OBJECT_HEADER  Header;
  ULONG  PoolTag;
  ULONG  DataSize;
} NET_BUFFER_POOL_PARAMETERS, *PNET_BUFFER_POOL_PARAMETERS;

Esta estructura incluye los siguientes miembros:

Estructura NDIS_OBJECT_HEADER de la estructura NET_BUFFER_POOL_PARAMETERS. Establezca el miembro Type de de la estructura que Encabezado especifica para NDIS_OBJECT_TYPE_DEFAULT, el miembro Revision en NET_BUFFER_POOL_PARAMETERS_REVISION_1 y el miembro Size de en NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1.

PoolTag

Etiqueta de grupo de kernel que el autor de la llamada usa cuando asigna NET_BUFFER estructuras de este grupo. La etiqueta es una cadena, delimitada por comillas simples, con hasta cuatro caracteres, normalmente especificadas en orden inverso. La etiqueta del grupo de kernel ayuda a NDIS a identificar el propietario de las estructuras de NET_BUFFER asignadas desde este grupo.

DataSize

Tamaño de datos predeterminado para los búferes de datos asociados a este grupo. El autor de la llamada debe establecer este valor si llama a función NdisAllocateNetBufferMdlAndData. NDIS usa este valor para establecer el tamaño del búfer de datos que asigna para la estructura de NET_BUFFER. Si el autor de la llamada no usa esta característica, este valor debe establecerse en cero.

Valor devuelto

NdisAllocateNetBufferPool devuelve un identificador al grupo de estructuras de NET_BUFFER que asigna NDIS. Si la asignación no se realizó correctamente, este identificador es NULL. Este identificador es un parámetro necesario en llamadas posteriores a funciones NDIS que asignan y liberan NET_BUFFER estructuras de este grupo.

Observaciones

Llame a las siguientes funciones para asignar NET_BUFFER estructuras desde el grupo de estructuras de NET_BUFFER.

NdisAllocateNetBuffer

NdisAllocateNetBufferMdlAndData
Las estructurasNET_BUFFER y NET_BUFFER_LIST deben asignarse desde un grupo de búferes NDIS. Un controlador no debe asignar ni inicializar una estructura de NET_BUFFER o NET_BUFFER_LIST desde su grupo de memoria privada o la pila.
 
Puede llamar a NdisAllocateNetBufferPool y establecer el valor de DataSize al crear un grupo de estructuras de NET_BUFFER. En este caso, MDL y los datos se asignan previamente con cada estructura de NET_BUFFER que el autor de la llamada asigna desde el grupo. Debe llamar a la función NdisAllocateNetBufferMdlAndData para asignar estructuras de NET_BUFFER desde este grupo.

Los búferes de datos y MDL asignados con NdisAllocateNetBufferMdlAndData no deben liberarse de la estructura de NET_BUFFER. Estas estructuras se liberan con la estructura NET_BUFFER cuando se llama a la función NdisFreeNetBuffer.

Llame a la función NdisFreeNetBufferPool para liberar grupos de estructuras de NET_BUFFER creados con NdisAllocateNetBufferPool.

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), NdisAllocateNetBufferPool(ndis), NdisAllocateNetBufferPool_InitFail(ndis)

Consulte también

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateNetBuffer

NdisAllocateNetBufferMdlAndData

NdisFreeNetBuffer

NdisFreeNetBufferPool