Condividi tramite


Funzione NdisAllocateBufferPool (ndis.h)

Nota NDIS 5. x è stato deprecato e sostituito da NDIS 6. x. Per i nuovi driver NDIS, vedere Driver di rete a partire da Windows Vista. Per informazioni sulla conversione di NDIS 5. driver x a NDIS 6. x, vedere Porting NDIS 5.x Drivers to NDIS 6.0.

Questa funzione restituisce un handle con cui il chiamante può allocare descrittori di buffer chiamando la funzione NdisAllocateBuffer.

Sintassi

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

Parametri

[out] Status

Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce lo stato finale dell'allocazione del pool di buffer.

[out] PoolHandle

Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce un handle al pool di buffer. Questo handle è un parametro obbligatorio per le funzioni del buffer NDIS chiamate successivamente dal driver.

[in] NumberOfDescriptors

Specifica il numero di descrittori di buffer che il chiamante prevede di allocare dal pool di buffer senza rilasciare alcun descrittore di buffer allocato nel pool.

Valore restituito

Nessuno

Osservazioni

Restituisce sempre NDIS_STATUS_SUCCESS.

Al termine di questa funzione, il driver chiama la funzione NdisAllocateBu ffer una o più volte per allocare i descrittori del buffer richiesti. Un driver deve chiamare questa funzione durante l'inizializzazione.

Il NumberOfDescriptors parametro specificato da un driver NIC dipende in genere dalle funzionalità della scheda di interfaccia di rete. Ad esempio, il driver di una scheda di interfaccia di rete DMA master del bus con buffer circolari specifica almeno un numero sufficiente NumberOfDescriptors per eseguire il mapping dell'anello completo.

Il NumberOfDescriptors specificato nella chiamata a questa funzione è il limite effettivo per quante volte il driver può chiamare NdisAllocateBuffer prima di chiamare la funzione NdisFreeBuffer per restituire un descrittore di buffer all'elenco gratuito per il pool di buffer.

Quando un driver non necessita più del pool di buffer allocato, chiama la funzione NdisFreeBufferPool per rilasciare l'handle del pool di buffer.

Il driver deve rilasciare qualsiasi blocco spin che mantiene prima di chiamare questa funzione.

Tutti i driver NDIS di livello inferiore devono allocare tutti i descrittori di buffer concatenati ai pacchetti da un pool di buffer. Ai descrittori dipendenti dal sistema operativo possono essere assegnati solo i driver di protocollo di livello più elevato che esecuno gli intervalli di memoria virtuale. Se questi descrittori di memoria sono equivalenti ai descrittori del buffer NDIS, un protocollo di livello più alto può passare tali descrittori come parametri alle funzioni NDIS.

versioni del sistema operativo: Windows CE .NET 4.0 e versioni successive.

Fabbisogno

Requisito Valore
intestazione ndis.h
IRQL IRQL <= DISPATCH_LEVEL

Vedere anche