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:
Encabezado
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.
NdisAllocateNetBufferMdlAndDataLos 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) |