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