Condividi tramite


Funzione NdisAllocateBufferPool (ndis.h)

Nota NDIS 5. x è stato deprecato e viene sostituito da NDIS 6. x. Per il nuovo sviluppo di driver NDIS, vedere Driver di rete a partire da Windows Vista. Per informazioni sulla conversione di NDIS 5. x driver per NDIS 6. x, vedere Conversione di driver NDIS 5.x in NDIS 6.0.

Questa funzione restituisce un handle con cui il chiamante può allocare descrittori del 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 i descrittori di buffer allocati nel pool.

Valore restituito

nessuno

Osservazioni

Restituisce sempre NDIS_STATUS_SUCCESS.

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

Il parametro NumberOfDescriptors specificato da un driver di scheda di interfaccia di rete 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 sufficientemente grandeNumOfDescriptor per eseguire il mapping dell'anello completo.

I NumberOfDescriptors specificati nella chiamata a questa funzione sono il limite effettivo per quante volte il driver può chiamare NdisAllocateBuffer prima di chiamare la funzione NdisFreeBuffer per restituire un descrittore del 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ù alto che esecuno gli intervalli di memoria virtuale. Se questi descrittori di memoria sono equivalenti ai descrittori di 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.

Requisiti

Requisito Valore
Intestazione ndis.h
IRQL IRQL <= DISPATCH_LEVEL

Vedi anche