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 de 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 la estructura que Header especifica para NDIS_OBJECT_TYPE_DEFAULT, el miembro Revision en NET_BUFFER_POOL_PARAMETERS_REVISION_1 y el miembro Size en NDIS_SIZEOF_NET_BUFFER_POOL_PARAMETERS_REVISION_1.

PoolTag

Etiqueta de grupo de kernel que usa el autor de la llamada 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 al 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 estructuras de NET_BUFFER de este grupo.

Comentarios

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

NdisAllocateNetBuffer

NdisAllocateNetBufferMdlAndData
Tenga en cuentaNET_BUFFER y NET_BUFFER_LIST estructuras 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 dataSize al crear un grupo de estructuras de NET_BUFFER. En este caso, los datos y MDL se asignan previamente con cada estructura de NET_BUFFER que asigna el autor de la llamada desde el grupo. Debe llamar a la función NdisAllocateNetBufferMdlAndData para asignar NET_BUFFER estructuras de dicho grupo.

Los búferes de datos y MDL asignados con NdisAllocateNetBufferMdlAndData no deben liberarse separados 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 NET_BUFFER grupos de estructuras creados con NdisAllocateNetBufferPool.

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

Consulte también

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateNetBuffer

NdisAllocateNetBufferMdlAndData

NdisFreeNetBuffer

NdisFreeNetBufferPool