Funzione NdisAllocateNetBufferListPool (ndis/nblapi.h)

Chiamare la funzione NdisAllocateNetBufferListPool per allocare un pool di strutture NET_BUFFER_LIST .

Sintassi

NDIS_EXPORTED_ROUTINE NDIS_HANDLE NdisAllocateNetBufferListPool(
  [in, optional] NDIS_HANDLE                           NdisHandle,
  [in]           NET_BUFFER_LIST_POOL_PARAMETERS const *Parameters
);

Parametri

[in, optional] NdisHandle

Handle NDIS ottenuto durante l'inizializzazione del chiamante.

[in] Parameters

Puntatore a una struttura NET_BUFFER_LIST_POOL_PARAMETERS che definisce i parametri per il pool.

Valore restituito

NdisAllocateNetBufferListPool restituisce un handle al pool di strutture NET_BUFFER_LIST allocato da NDIS. Se l'allocazione non è riuscita, questo handle è NULL. Questo handle è un parametro obbligatorio nelle chiamate successive alle funzioni NDIS che allocano e liberano strutture NET_BUFFER_LIST da questo pool.

Commenti

Nella maggior parte dei casi, un chiamante che alloca una struttura NET_BUFFER_LIST alloca e accoda almeno una struttura NET_BUFFER su tale struttura NET_BUFFER_LIST. È più efficiente preallocare NET_BUFFER strutture quando si alloca un pool di strutture NET_BUFFER_LIST rispetto all'allocazione di strutture NET_BUFFER_LIST e NET_BUFFER strutture separatamente.

È possibile chiamare la funzione NdisAllocateNetBufferListPool con il valore fAllocateNetBuffer impostato su TRUE durante la creazione di un pool di strutture NET_BUFFER_LIST. In questo caso, una struttura NET_BUFFER viene preallocata con ogni struttura NET_BUFFER_LIST allocata dal chiamante dal pool. È possibile chiamare il Funzione NdisAllocateNetBufferAndNetBufferList o Funzione NdisAllocateNetBufferList per allocare NET_BUFFER_LIST strutture da un pool di questo tipo. Chiamare NdisAllocateNetBufferAndNetBufferList solo se fAllocateNetBuffer è TRUE e DataSize è zero.

È anche possibile chiamare NdisAllocateNetBufferListPool e impostare il membro DataSize su un valore diverso da zero durante la creazione di un pool di strutture NET_BUFFER_LIST. In questo caso, una struttura NET_BUFFER, MDL e i dati vengono preallocati con ogni struttura NET_BUFFER_LIST allocata dal chiamante dal pool.

NET_BUFFER strutture, mdls e buffer di dati allocati con NdisAllocateNetBufferAndNetBufferList o NdisAllocateNetBufferList non deve essere liberato separato dalla struttura NET_BUFFER_LIST. Tali strutture vengono liberate con la struttura NET_BUFFER_LIST quando si chiama la funzione NdisFreeNetBufferList .

Chiamare il Funzione NdisFreeNetBufferListPool per liberare un pool di strutture NET_BUFFER_LIST.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis/nblapi.h (include ndis.h)
Libreria Ndis.lib
DLL Ndis.sys
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI Irql_NetBuffer_Function(ndis), NdisAllocateNetBufferListPool(ndis), NdisAllocateNetBufferListPool_InitFail(ndis)

Vedi anche

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT

NET_BUFFER_LIST_POOL_PARAMETERS

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisFreeNetBufferList

NdisFreeNetBufferListPool