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_LIST_POOL_PARAMETERS
NdisAllocateNetBufferAndNetBufferList